diff --git a/components/qtmaterialiconbutton.cpp b/components/qtmaterialiconbutton.cpp index feffa6d..5ef8fc4 100644 --- a/components/qtmaterialiconbutton.cpp +++ b/components/qtmaterialiconbutton.cpp @@ -1,9 +1,9 @@ -#include "xx/qtmaterialiconbutton.h" -#include "xx/qtmaterialiconbutton_p.h" +#include "qtmaterialiconbutton.h" +#include "qtmaterialiconbutton_p.h" #include #include -#include "xxlib/qtmaterialstyle.h" -#include "xxlib/qtmaterialrippleoverlay.h" +#include "lib/qtmaterialstyle.h" +#include "lib/qtmaterialrippleoverlay.h" /*! * \class QtMaterialIconButtonPrivate diff --git a/examples/examples.pro b/examples/examples.pro index 63d0c29..e6d8989 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -7,14 +7,16 @@ SOURCES = mainwindow.cpp \ checkboxsettingseditor.cpp \ fabsettingseditor.cpp \ raisedbuttonsettingseditor.cpp \ - flatbuttonsettingseditor.cpp + flatbuttonsettingseditor.cpp \ + iconbuttonsettingseditor.cpp HEADERS = mainwindow.h \ avatarsettingseditor.h \ badgesettingseditor.h \ checkboxsettingseditor.h \ fabsettingseditor.h \ raisedbuttonsettingseditor.h \ - flatbuttonsettingseditor.h + flatbuttonsettingseditor.h \ + iconbuttonsettingseditor.h LIBS += ../components/libcomponents.a INCLUDEPATH += ../components/ TARGET = ../examples-exe @@ -27,4 +29,5 @@ FORMS += \ badgesettingsform.ui \ checkboxsettingsform.ui \ fabsettingsform.ui \ - flatbuttonsettingsform.ui + flatbuttonsettingsform.ui \ + iconbuttonsettingsform.ui diff --git a/examples/iconbuttonsettingseditor.cpp b/examples/iconbuttonsettingseditor.cpp new file mode 100644 index 0000000..f320c19 --- /dev/null +++ b/examples/iconbuttonsettingseditor.cpp @@ -0,0 +1,82 @@ +#include "iconbuttonsettingseditor.h" +#include +#include "qtmaterialiconbutton.h" +#include "lib/qtmaterialtheme.h" + +IconButtonSettingsEditor::IconButtonSettingsEditor(QWidget *parent) + : QWidget(parent), + ui(new Ui::IconButtonSettingsForm), + m_button(new QtMaterialIconButton(QtMaterialTheme::icon("toggle", "star"))) +{ + init(); +} + +IconButtonSettingsEditor::~IconButtonSettingsEditor() +{ + delete ui; +} + +IconButtonSettingsEditor::IconButtonSettingsEditor(QtMaterialIconButton *button, QWidget *parent) + : QWidget(parent), + ui(new Ui::IconButtonSettingsForm), + m_button(button) +{ + init(); +} + +void IconButtonSettingsEditor::setupForm() +{ + ui->disabledCheckBox->setChecked(!m_button->isEnabled()); + ui->useThemeColorsCheckBox->setChecked(m_button->useThemeColors()); +} + +void IconButtonSettingsEditor::updateWidget() +{ + m_button->setDisabled(ui->disabledCheckBox->isChecked()); + m_button->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); +} + +void IconButtonSettingsEditor::selectColor() +{ + QColorDialog dialog; + if (dialog.exec()) { + QColor color = dialog.selectedColor(); + QString senderName = sender()->objectName(); + if ("colorToolButton" == senderName) { + m_button->setColor(color); + ui->colorLineEdit->setText(color.name(QColor::HexRgb)); + } else if ("disabledColorButton" == senderName) { + m_button->setDisabledColor(color); + ui->disabledColorLineEdit->setText(color.name(QColor::HexRgb)); + } + } + setupForm(); +} + +void IconButtonSettingsEditor::init() +{ + QVBoxLayout *layout = new QVBoxLayout; + setLayout(layout); + + QWidget *widget = new QWidget; + layout->addWidget(widget); + + QWidget *canvas = new QWidget; + canvas->setStyleSheet("QWidget { background: white; }"); + layout->addWidget(canvas); + + ui->setupUi(widget); + layout->setContentsMargins(20, 20, 20, 20); + + layout = new QVBoxLayout; + canvas->setLayout(layout); + layout->addWidget(m_button); + layout->setAlignment(m_button, Qt::AlignCenter); + + setupForm(); + + connect(ui->disabledCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->useThemeColorsCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateWidget())); + connect(ui->colorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); + connect(ui->disabledColorToolButton, SIGNAL(clicked(bool)), this, SLOT(selectColor())); +} diff --git a/examples/iconbuttonsettingseditor.h b/examples/iconbuttonsettingseditor.h new file mode 100644 index 0000000..d8758f8 --- /dev/null +++ b/examples/iconbuttonsettingseditor.h @@ -0,0 +1,33 @@ +#ifndef ICONBUTTONSETTINGSMANAGER_H +#define ICONBUTTONSETTINGSMANAGER_H + +#include +#include "ui_iconbuttonsettingsform.h" + +class QtMaterialIconButton; + +class IconButtonSettingsEditor : public QWidget +{ + Q_OBJECT + +public: + explicit IconButtonSettingsEditor(QWidget *parent = 0); + ~IconButtonSettingsEditor(); + +protected: + explicit IconButtonSettingsEditor(QtMaterialIconButton *button, QWidget *parent = 0); + + Ui::IconButtonSettingsForm *const ui; + +protected slots: + void setupForm(); + void updateWidget(); + void selectColor(); + +private: + void init(); + + QtMaterialIconButton *const m_button; +}; + +#endif // ICONBUTTONSETTINGSMANAGER_H diff --git a/examples/iconbuttonsettingsform.ui b/examples/iconbuttonsettingsform.ui new file mode 100644 index 0000000..4fa8942 --- /dev/null +++ b/examples/iconbuttonsettingsform.ui @@ -0,0 +1,104 @@ + + + IconButtonSettingsForm + + + + 0 + 0 + 599 + 418 + + + + Form + + + + + 0 + 0 + 234 + 391 + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + Disabled + + + + + + + + + + Use theme colors + + + + + + + + + + Color + + + + + + + + + false + + + + + + + ... + + + + + + + + + Disabled color + + + + + + + + + false + + + + + + + ... + + + + + + + + + + + diff --git a/examples/mainwindow.cpp b/examples/mainwindow.cpp index f5a3227..391c596 100644 --- a/examples/mainwindow.cpp +++ b/examples/mainwindow.cpp @@ -8,6 +8,7 @@ #include "fabsettingseditor.h" #include "raisedbuttonsettingseditor.h" #include "flatbuttonsettingseditor.h" +#include "iconbuttonsettingseditor.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -33,12 +34,14 @@ MainWindow::MainWindow(QWidget *parent) FloatingActionButtonSettingsEditor *fab = new FloatingActionButtonSettingsEditor; RaisedButtonSettingsEditor *raisedButton = new RaisedButtonSettingsEditor; FlatButtonSettingsEditor *flatButton = new FlatButtonSettingsEditor; + IconButtonSettingsEditor *iconButton = new IconButtonSettingsEditor; stack->addWidget(avatar); stack->addWidget(badge); stack->addWidget(checkbox); stack->addWidget(fab); stack->addWidget(flatButton); + stack->addWidget(iconButton); stack->addWidget(raisedButton); list->addItem("Avatar"); @@ -46,6 +49,7 @@ MainWindow::MainWindow(QWidget *parent) list->addItem("Checkbox"); list->addItem("Floating Action Button"); list->addItem("Flat Button"); + list->addItem("Icon Button"); list->addItem("Raised Button"); list->setCurrentRow(0);