File indexing completed on 2024-05-05 04:05:48
0001 /* 0002 SPDX-FileCopyrightText: 2010 Stefan Majewsky <majewsky@gmx.net> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "slicermode.h" 0008 #include "slicerproperty.h" 0009 0010 class Pala::SlicerModePrivate 0011 { 0012 public: 0013 QByteArray m_key; 0014 QString m_name; 0015 0016 QHash<QByteArray, bool> m_propertyEnabledExceptions; 0017 }; 0018 0019 Pala::SlicerMode::SlicerMode(const QByteArray& key, const QString& name) 0020 : d_ptr(new Pala::SlicerModePrivate) 0021 { 0022 Q_D(SlicerMode); 0023 d->m_key = key; 0024 d->m_name = name; 0025 } 0026 0027 Pala::SlicerMode::~SlicerMode() = default; 0028 0029 void Pala::SlicerMode::filterProperties(QList<const Pala::SlicerProperty*>& properties) const 0030 { 0031 Q_D(const SlicerMode); 0032 QMutableListIterator<const Pala::SlicerProperty*> iter(properties); 0033 while (iter.hasNext()) 0034 { 0035 const Pala::SlicerProperty* property = iter.next(); 0036 bool isEnabled = property->isEnabled(); 0037 if (d->m_propertyEnabledExceptions.contains(property->key())) 0038 isEnabled = d->m_propertyEnabledExceptions.value(property->key()); 0039 if (!isEnabled) 0040 iter.remove(); 0041 } 0042 } 0043 0044 QByteArray Pala::SlicerMode::key() const 0045 { 0046 Q_D(const SlicerMode); 0047 return d->m_key; 0048 } 0049 0050 QString Pala::SlicerMode::name() const 0051 { 0052 Q_D(const SlicerMode); 0053 return d->m_name; 0054 } 0055 0056 void Pala::SlicerMode::setPropertyEnabled(const QByteArray& property, bool enabled) 0057 { 0058 Q_D(SlicerMode); 0059 d->m_propertyEnabledExceptions.insert(property, enabled); 0060 }