Implement Icon Button settings editor
This commit is contained in:
parent
445c2e3037
commit
98c2b95a82
|
@ -1,9 +1,9 @@
|
||||||
#include "xx/qtmaterialiconbutton.h"
|
#include "qtmaterialiconbutton.h"
|
||||||
#include "xx/qtmaterialiconbutton_p.h"
|
#include "qtmaterialiconbutton_p.h"
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QEvent>
|
#include <QEvent>
|
||||||
#include "xxlib/qtmaterialstyle.h"
|
#include "lib/qtmaterialstyle.h"
|
||||||
#include "xxlib/qtmaterialrippleoverlay.h"
|
#include "lib/qtmaterialrippleoverlay.h"
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \class QtMaterialIconButtonPrivate
|
* \class QtMaterialIconButtonPrivate
|
||||||
|
|
|
@ -7,14 +7,16 @@ SOURCES = mainwindow.cpp \
|
||||||
checkboxsettingseditor.cpp \
|
checkboxsettingseditor.cpp \
|
||||||
fabsettingseditor.cpp \
|
fabsettingseditor.cpp \
|
||||||
raisedbuttonsettingseditor.cpp \
|
raisedbuttonsettingseditor.cpp \
|
||||||
flatbuttonsettingseditor.cpp
|
flatbuttonsettingseditor.cpp \
|
||||||
|
iconbuttonsettingseditor.cpp
|
||||||
HEADERS = mainwindow.h \
|
HEADERS = mainwindow.h \
|
||||||
avatarsettingseditor.h \
|
avatarsettingseditor.h \
|
||||||
badgesettingseditor.h \
|
badgesettingseditor.h \
|
||||||
checkboxsettingseditor.h \
|
checkboxsettingseditor.h \
|
||||||
fabsettingseditor.h \
|
fabsettingseditor.h \
|
||||||
raisedbuttonsettingseditor.h \
|
raisedbuttonsettingseditor.h \
|
||||||
flatbuttonsettingseditor.h
|
flatbuttonsettingseditor.h \
|
||||||
|
iconbuttonsettingseditor.h
|
||||||
LIBS += ../components/libcomponents.a
|
LIBS += ../components/libcomponents.a
|
||||||
INCLUDEPATH += ../components/
|
INCLUDEPATH += ../components/
|
||||||
TARGET = ../examples-exe
|
TARGET = ../examples-exe
|
||||||
|
@ -27,4 +29,5 @@ FORMS += \
|
||||||
badgesettingsform.ui \
|
badgesettingsform.ui \
|
||||||
checkboxsettingsform.ui \
|
checkboxsettingsform.ui \
|
||||||
fabsettingsform.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 "fabsettingseditor.h"
|
||||||
#include "raisedbuttonsettingseditor.h"
|
#include "raisedbuttonsettingseditor.h"
|
||||||
#include "flatbuttonsettingseditor.h"
|
#include "flatbuttonsettingseditor.h"
|
||||||
|
#include "iconbuttonsettingseditor.h"
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent)
|
MainWindow::MainWindow(QWidget *parent)
|
||||||
: QMainWindow(parent)
|
: QMainWindow(parent)
|
||||||
|
@ -33,12 +34,14 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
FloatingActionButtonSettingsEditor *fab = new FloatingActionButtonSettingsEditor;
|
FloatingActionButtonSettingsEditor *fab = new FloatingActionButtonSettingsEditor;
|
||||||
RaisedButtonSettingsEditor *raisedButton = new RaisedButtonSettingsEditor;
|
RaisedButtonSettingsEditor *raisedButton = new RaisedButtonSettingsEditor;
|
||||||
FlatButtonSettingsEditor *flatButton = new FlatButtonSettingsEditor;
|
FlatButtonSettingsEditor *flatButton = new FlatButtonSettingsEditor;
|
||||||
|
IconButtonSettingsEditor *iconButton = new IconButtonSettingsEditor;
|
||||||
|
|
||||||
stack->addWidget(avatar);
|
stack->addWidget(avatar);
|
||||||
stack->addWidget(badge);
|
stack->addWidget(badge);
|
||||||
stack->addWidget(checkbox);
|
stack->addWidget(checkbox);
|
||||||
stack->addWidget(fab);
|
stack->addWidget(fab);
|
||||||
stack->addWidget(flatButton);
|
stack->addWidget(flatButton);
|
||||||
|
stack->addWidget(iconButton);
|
||||||
stack->addWidget(raisedButton);
|
stack->addWidget(raisedButton);
|
||||||
|
|
||||||
list->addItem("Avatar");
|
list->addItem("Avatar");
|
||||||
|
@ -46,6 +49,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
list->addItem("Checkbox");
|
list->addItem("Checkbox");
|
||||||
list->addItem("Floating Action Button");
|
list->addItem("Floating Action Button");
|
||||||
list->addItem("Flat Button");
|
list->addItem("Flat Button");
|
||||||
|
list->addItem("Icon Button");
|
||||||
list->addItem("Raised Button");
|
list->addItem("Raised Button");
|
||||||
|
|
||||||
list->setCurrentRow(0);
|
list->setCurrentRow(0);
|
||||||
|
|
Loading…
Reference in New Issue