diff --git a/paletteeditor/paletteeditor.cpp b/paletteeditor/paletteeditor.cpp index 51ab20f..d167625 100644 --- a/paletteeditor/paletteeditor.cpp +++ b/paletteeditor/paletteeditor.cpp @@ -30,7 +30,7 @@ PaletteEditor::PaletteEditor(QWidget *parent) updatePreviewPalette(); updateStyledButton(); m_ui->paletteView->setModel(m_paletteModel); - ColorDelegate *delegate = new ColorDelegate(this); + auto *const delegate = new ColorDelegate(this); m_ui->paletteView->setItemDelegate(delegate); m_ui->paletteView->setEditTriggers(QAbstractItemView::AllEditTriggers); connect(m_paletteModel, &PaletteModel::paletteChanged, this, &PaletteEditor::paletteChanged); @@ -55,22 +55,24 @@ void PaletteEditor::setPalette(const QPalette &palette) { m_editPalette = palette; const uint mask = palette.resolve(); - for (int i = 0; i < (int)QPalette::NColorRoles; i++) { - if (!(mask & (1 << i))) { - m_editPalette.setBrush( - QPalette::Active, static_cast(i), m_parentPalette.brush(QPalette::Active, static_cast(i))); - m_editPalette.setBrush(QPalette::Inactive, static_cast(i), - m_parentPalette.brush(QPalette::Inactive, static_cast(i))); - m_editPalette.setBrush(QPalette::Disabled, static_cast(i), - m_parentPalette.brush(QPalette::Disabled, static_cast(i))); + for (int i = 0; i < static_cast(QPalette::NColorRoles); ++i) { + if (mask & (1 << i)) { + continue; } + m_editPalette.setBrush( + QPalette::Active, static_cast(i), m_parentPalette.brush(QPalette::Active, static_cast(i))); + m_editPalette.setBrush( + QPalette::Inactive, static_cast(i), m_parentPalette.brush(QPalette::Inactive, static_cast(i))); + m_editPalette.setBrush( + QPalette::Disabled, static_cast(i), m_parentPalette.brush(QPalette::Disabled, static_cast(i))); } m_editPalette.resolve(mask); updatePreviewPalette(); updateStyledButton(); m_paletteUpdated = true; - if (!m_modelUpdated) + if (!m_modelUpdated) { m_paletteModel->setPalette(m_editPalette, m_parentPalette); + } m_paletteUpdated = false; } @@ -80,47 +82,49 @@ void PaletteEditor::setPalette(const QPalette &palette, const QPalette &parentPa setPalette(palette); } -void PaletteEditor::on_buildButton_colorChanged(const QColor &) +void PaletteEditor::handleBuildButtonColorChanged(const QColor &) { buildPalette(); } -void PaletteEditor::on_activeRadio_clicked() +void PaletteEditor::handleActiveRadioClicked() { m_currentColorGroup = QPalette::Active; updatePreviewPalette(); } -void PaletteEditor::on_inactiveRadio_clicked() +void PaletteEditor::handleInactiveRadioClicked() { m_currentColorGroup = QPalette::Inactive; updatePreviewPalette(); } -void PaletteEditor::on_disabledRadio_clicked() +void PaletteEditor::handleDisabledRadioClicked() { m_currentColorGroup = QPalette::Disabled; updatePreviewPalette(); } -void PaletteEditor::on_computeRadio_clicked() +void PaletteEditor::handleComputeRadioClicked() { - if (m_compute) + if (m_compute) { return; + } m_ui->paletteView->setColumnHidden(2, true); m_ui->paletteView->setColumnHidden(3, true); m_compute = true; m_paletteModel->setCompute(true); } -void PaletteEditor::on_detailsRadio_clicked() +void PaletteEditor::handleDetailsRadioClicked() { - if (!m_compute) + if (!m_compute) { return; + } const int w = m_ui->paletteView->columnWidth(1); m_ui->paletteView->setColumnHidden(2, false); m_ui->paletteView->setColumnHidden(3, false); - QHeaderView *header = m_ui->paletteView->header(); + auto *const header = m_ui->paletteView->header(); header->resizeSection(1, w / 3); header->resizeSection(2, w / 3); header->resizeSection(3, w / 3); @@ -167,39 +171,37 @@ void PaletteEditor::updateStyledButton() QPalette PaletteEditor::getPalette(QWidget *parent, const QPalette &init, const QPalette &parentPal, int *ok) { PaletteEditor dlg(parent); - QPalette parentPalette(parentPal); - uint mask = init.resolve(); - for (int i = 0; i < (int)QPalette::NColorRoles; ++i) { - if (!(mask & (1 << i))) { - parentPalette.setBrush( - QPalette::Active, static_cast(i), init.brush(QPalette::Active, static_cast(i))); - parentPalette.setBrush( - QPalette::Inactive, static_cast(i), init.brush(QPalette::Inactive, static_cast(i))); - parentPalette.setBrush( - QPalette::Disabled, static_cast(i), init.brush(QPalette::Disabled, static_cast(i))); + auto parentPalette(parentPal); + const uint mask = init.resolve(); + for (int i = 0; i < static_cast(QPalette::NColorRoles); ++i) { + if (mask & (1 << i)) { + continue; } + parentPalette.setBrush( + QPalette::Active, static_cast(i), init.brush(QPalette::Active, static_cast(i))); + parentPalette.setBrush( + QPalette::Inactive, static_cast(i), init.brush(QPalette::Inactive, static_cast(i))); + parentPalette.setBrush( + QPalette::Disabled, static_cast(i), init.brush(QPalette::Disabled, static_cast(i))); } dlg.setPalette(init, parentPalette); const int result = dlg.exec(); - if (ok) + if (ok) { *ok = result; - + } return result == QDialog::Accepted ? dlg.palette() : init; } -////////////////////// - PaletteModel::PaletteModel(QObject *parent) : QAbstractTableModel(parent) , m_compute(true) { const QMetaObject *meta = metaObject(); - const int index = meta->indexOfProperty("colorRole"); - const QMetaProperty p = meta->property(index); - const QMetaEnum e = p.enumerator(); - for (int r = QPalette::WindowText; r < QPalette::NColorRoles; r++) { - m_roleNames[static_cast(r)] = QLatin1String(e.key(r)); + const QMetaProperty property = meta->property(meta->indexOfProperty("colorRole")); + const QMetaEnum enumerator = property.enumerator(); + for (int r = QPalette::WindowText; r < QPalette::NColorRoles; ++r) { + m_roleNames[static_cast(r)] = QLatin1String(enumerator.key(r)); } } @@ -215,16 +217,14 @@ int PaletteModel::columnCount(const QModelIndex &) const QVariant PaletteModel::data(const QModelIndex &index, int role) const { - if (!index.isValid()) - return QVariant(); - if (index.row() < 0 || index.row() >= QPalette::NColorRoles) - return QVariant(); - if (index.column() < 0 || index.column() >= 4) + if (!index.isValid() || index.row() < 0 || index.row() >= QPalette::NColorRoles || index.column() < 0 || index.column() >= 4) { return QVariant(); + } if (index.column() == 0) { - if (role == Qt::DisplayRole) + if (role == Qt::DisplayRole) { return m_roleNames[static_cast(index.row())]; + } if (role == Qt::EditRole) { const uint mask = m_palette.resolve(); if (mask & (1 << index.row())) @@ -233,15 +233,17 @@ QVariant PaletteModel::data(const QModelIndex &index, int role) const } return QVariant(); } - if (role == BrushRole) + if (role == BrushRole) { return m_palette.brush(columnToGroup(index.column()), static_cast(index.row())); + } return QVariant(); } bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int role) { - if (!index.isValid()) + if (!index.isValid()) { return false; + } if (index.column() != 0 && role == BrushRole) { const QBrush br = qvariant_cast(value); @@ -273,8 +275,6 @@ bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int idxBegin = PaletteModel::index(QPalette::Base, 0); break; case QPalette::Highlight: - // m_palette.setBrush(QPalette::Disabled, QPalette::Highlight, - // c.dark(120)); break; default: m_palette.setBrush(QPalette::Disabled, r, br); @@ -289,16 +289,15 @@ bool PaletteModel::setData(const QModelIndex &index, const QVariant &value, int uint mask = m_palette.resolve(); const bool isMask = qvariant_cast(value); const int r = index.row(); - if (isMask) + if (isMask) { mask |= (1 << r); - else { + } else { m_palette.setBrush( QPalette::Active, static_cast(r), m_parentPalette.brush(QPalette::Active, static_cast(r))); m_palette.setBrush(QPalette::Inactive, static_cast(r), m_parentPalette.brush(QPalette::Inactive, static_cast(r))); m_palette.setBrush(QPalette::Disabled, static_cast(r), m_parentPalette.brush(QPalette::Disabled, static_cast(r))); - mask &= ~(1 << index.row()); } m_palette.resolve(mask); @@ -364,8 +363,6 @@ int PaletteModel::groupToColumn(QPalette::ColorGroup group) const return 3; } -////////////////////////// - BrushEditor::BrushEditor(QWidget *parent) : QWidget(parent) , m_button(new ColorButton(this)) @@ -400,8 +397,6 @@ bool BrushEditor::changed() const return m_changed; } -////////////////////////// - RoleEditor::RoleEditor(QWidget *parent) : QWidget(parent) , m_label(new QLabel(this)) @@ -413,8 +408,7 @@ RoleEditor::RoleEditor(QWidget *parent) layout->addWidget(m_label); m_label->setAutoFillBackground(true); - m_label->setIndent(3); // ### hardcode it should have the same value of - // textMargin in QItemDelegate + m_label->setIndent(3); // same value as textMargin in QItemDelegate setFocusProxy(m_label); auto *const button = new QToolButton(this); @@ -452,7 +446,6 @@ void RoleEditor::emitResetProperty() emit changed(this); } -////////////////////////// ColorDelegate::ColorDelegate(QObject *parent) : QItemDelegate(parent) { @@ -549,4 +542,5 @@ QSize ColorDelegate::sizeHint(const QStyleOptionViewItem &opt, const QModelIndex { return QItemDelegate::sizeHint(opt, index) + QSize(4, 4); } + } // namespace Dialogs diff --git a/paletteeditor/paletteeditor.h b/paletteeditor/paletteeditor.h index 12553bf..99d5579 100644 --- a/paletteeditor/paletteeditor.h +++ b/paletteeditor/paletteeditor.h @@ -34,7 +34,7 @@ class QT_UTILITIES_EXPORT PaletteEditor : public QDialog { Q_OBJECT public: PaletteEditor(QWidget *parent); - ~PaletteEditor(); + ~PaletteEditor() override; static QPalette getPalette(QWidget *parent, const QPalette &init = QPalette(), const QPalette &parentPal = QPalette(), int *result = nullptr); @@ -43,12 +43,12 @@ public: void setPalette(const QPalette &palette, const QPalette &parentPalette); private Q_SLOTS: - void on_buildButton_colorChanged(const QColor &); - void on_activeRadio_clicked(); - void on_inactiveRadio_clicked(); - void on_disabledRadio_clicked(); - void on_computeRadio_clicked(); - void on_detailsRadio_clicked(); + void handleBuildButtonColorChanged(const QColor &); + void handleActiveRadioClicked(); + void handleInactiveRadioClicked(); + void handleDisabledRadioClicked(); + void handleComputeRadioClicked(); + void handleDetailsRadioClicked(); void paletteChanged(const QPalette &palette); @@ -82,12 +82,12 @@ class QT_UTILITIES_EXPORT PaletteModel : public QAbstractTableModel { public: explicit PaletteModel(QObject *parent = nullptr); - int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - QVariant data(const QModelIndex &index, int role) const; - bool setData(const QModelIndex &index, const QVariant &value, int role); - Qt::ItemFlags flags(const QModelIndex &index) const; - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + int rowCount(const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override; + QVariant data(const QModelIndex &index, int role) const override; + bool setData(const QModelIndex &index, const QVariant &value, int role) override; + Qt::ItemFlags flags(const QModelIndex &index) const override; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QPalette getPalette() const; void setPalette(const QPalette &palette, const QPalette &parentPalette); @@ -150,7 +150,7 @@ public: void setEdited(bool on); bool edited() const; -signals: +Q_SIGNALS: void changed(QWidget *widget); private Q_SLOTS: @@ -170,15 +170,15 @@ class QT_UTILITIES_EXPORT ColorDelegate : public QItemDelegate { public: explicit ColorDelegate(QObject *parent = nullptr); - QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; + QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override; - void setEditorData(QWidget *ed, const QModelIndex &index) const; - void setModelData(QWidget *ed, QAbstractItemModel *model, const QModelIndex &index) const; + void setEditorData(QWidget *ed, const QModelIndex &index) const override; + void setModelData(QWidget *ed, QAbstractItemModel *model, const QModelIndex &index) const override; - void updateEditorGeometry(QWidget *ed, const QStyleOptionViewItem &option, const QModelIndex &index) const; + void updateEditorGeometry(QWidget *ed, const QStyleOptionViewItem &option, const QModelIndex &index) const override; - void paint(QPainter *painter, const QStyleOptionViewItem &opt, const QModelIndex &index) const; - QSize sizeHint(const QStyleOptionViewItem &opt, const QModelIndex &index) const; + void paint(QPainter *painter, const QStyleOptionViewItem &opt, const QModelIndex &index) const override; + QSize sizeHint(const QStyleOptionViewItem &opt, const QModelIndex &index) const override; }; } // namespace Dialogs