Implement Icon Button settings editor
This commit is contained in:
parent
445c2e3037
commit
98c2b95a82
|
@ -1,9 +1,9 @@
|
|||
#include "xx/qtmaterialiconbutton.h"
|
||||
#include "xx/qtmaterialiconbutton_p.h"
|
||||
#include "qtmaterialiconbutton.h"
|
||||
#include "qtmaterialiconbutton_p.h"
|
||||
#include <QPainter>
|
||||
#include <QEvent>
|
||||
#include "xxlib/qtmaterialstyle.h"
|
||||
#include "xxlib/qtmaterialrippleoverlay.h"
|
||||
#include "lib/qtmaterialstyle.h"
|
||||
#include "lib/qtmaterialrippleoverlay.h"
|
||||
|
||||
/*!
|
||||
* \class QtMaterialIconButtonPrivate
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
#include "iconbuttonsettingseditor.h"
|
||||
#include <QColorDialog>
|
||||
#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()));
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
#ifndef ICONBUTTONSETTINGSMANAGER_H
|
||||
#define ICONBUTTONSETTINGSMANAGER_H
|
||||
|
||||
#include <QWidget>
|
||||
#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
|
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>IconButtonSettingsForm</class>
|
||||
<widget class="QWidget" name="IconButtonSettingsForm">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>599</width>
|
||||
<height>418</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="formLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>234</width>
|
||||
<height>391</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="disabledLabel">
|
||||
<property name="text">
|
||||
<string>Disabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="disabledCheckBox"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="useThemeColorsLabel">
|
||||
<property name="text">
|
||||
<string>Use theme colors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="useThemeColorsCheckBox"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="colorLabel">
|
||||
<property name="text">
|
||||
<string>Color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="colorLineEdit">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="colorToolButton">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="disabledColorLabel">
|
||||
<property name="text">
|
||||
<string>Disabled color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="disabledColorLineEdit">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="disabledColorToolButton">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue