From 5d8cc368fc133895b79733e3715d4fa2642540bb Mon Sep 17 00:00:00 2001 From: laserpants Date: Thu, 14 Apr 2016 16:47:27 +0300 Subject: [PATCH] add more boilerplate code --- .gitignore | 1 + components/checkbox.cpp | 30 ++++++++++++++++++++++++++++++ components/checkbox.h | 20 ++++++++++++++++++++ components/list.cpp | 30 ++++++++++++++++++++++++++++++ components/list.h | 20 ++++++++++++++++++++ components/radiobutton.cpp | 30 ++++++++++++++++++++++++++++++ components/radiobutton.h | 20 ++++++++++++++++++++ components/textfield.cpp | 30 ++++++++++++++++++++++++++++++ components/textfield.h | 20 ++++++++++++++++++++ examples/checkboxexamples.cpp | 31 +++++++++++++++++++++++++++++++ examples/checkboxexamples.h | 15 +++++++++++++++ examples/listexamples.cpp | 31 +++++++++++++++++++++++++++++++ examples/listexamples.h | 15 +++++++++++++++ examples/radiobuttonexamples.cpp | 31 +++++++++++++++++++++++++++++++ examples/radiobuttonexamples.h | 15 +++++++++++++++ examples/textfieldexamples.cpp | 31 +++++++++++++++++++++++++++++++ examples/textfieldexamples.h | 15 +++++++++++++++ mainwindow.cpp | 25 +++++++++++++++++++++++++ mainwindow.h | 8 ++++++++ qt-material-widgets.pro | 12 ++++++++++-- 20 files changed, 428 insertions(+), 2 deletions(-) create mode 100644 examples/checkboxexamples.cpp create mode 100644 examples/checkboxexamples.h create mode 100644 examples/listexamples.cpp create mode 100644 examples/listexamples.h create mode 100644 examples/radiobuttonexamples.cpp create mode 100644 examples/radiobuttonexamples.h create mode 100644 examples/textfieldexamples.cpp create mode 100644 examples/textfieldexamples.h diff --git a/.gitignore b/.gitignore index c1b62a8..4b6e591 100755 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.pro.user *.pro.user.* +*.svg diff --git a/components/checkbox.cpp b/components/checkbox.cpp index a66497e..e53f870 100644 --- a/components/checkbox.cpp +++ b/components/checkbox.cpp @@ -1 +1,31 @@ +#include +#include #include "checkbox.h" + +Checkbox::Checkbox(QWidget *parent) + : QWidget(parent) +{ +} + +Checkbox::~Checkbox() +{ +} + +void Checkbox::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); +} + +void Checkbox::mouseReleaseEvent(QMouseEvent *event) +{ + QWidget::mouseReleaseEvent(event); +} + +void Checkbox::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + + painter.drawRect(0, 0, 50, 50); + + QWidget::paintEvent(event); +} diff --git a/components/checkbox.h b/components/checkbox.h index e69de29..540910b 100644 --- a/components/checkbox.h +++ b/components/checkbox.h @@ -0,0 +1,20 @@ +#ifndef CHECKBOX_H +#define CHECKBOX_H + +#include + +class Checkbox : public QWidget +{ + Q_OBJECT + +public: + explicit Checkbox(QWidget *parent = 0); + ~Checkbox(); + +protected: + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; +}; + +#endif // CHECKBOX_H diff --git a/components/list.cpp b/components/list.cpp index 471c2a1..1356242 100644 --- a/components/list.cpp +++ b/components/list.cpp @@ -1 +1,31 @@ +#include +#include #include "list.h" + +List::List(QWidget *parent) + : QWidget(parent) +{ +} + +List::~List() +{ +} + +void List::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); +} + +void List::mouseReleaseEvent(QMouseEvent *event) +{ + QWidget::mouseReleaseEvent(event); +} + +void List::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + + painter.drawRect(50, 250, 50, 50); + + QWidget::paintEvent(event); +} diff --git a/components/list.h b/components/list.h index e69de29..25101b2 100644 --- a/components/list.h +++ b/components/list.h @@ -0,0 +1,20 @@ +#ifndef LIST_H +#define LIST_H + +#include + +class List : public QWidget +{ + Q_OBJECT + +public: + explicit List(QWidget *parent = 0); + ~List(); + +protected: + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; +}; + +#endif // LIST_H diff --git a/components/radiobutton.cpp b/components/radiobutton.cpp index 9ac4161..df5ec8c 100644 --- a/components/radiobutton.cpp +++ b/components/radiobutton.cpp @@ -1 +1,31 @@ +#include +#include #include "radiobutton.h" + +RadioButton::RadioButton(QWidget *parent) + : QWidget(parent) +{ +} + +RadioButton::~RadioButton() +{ +} + +void RadioButton::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); +} + +void RadioButton::mouseReleaseEvent(QMouseEvent *event) +{ + QWidget::mouseReleaseEvent(event); +} + +void RadioButton::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + + painter.drawRect(0, 50, 50, 50); + + QWidget::paintEvent(event); +} diff --git a/components/radiobutton.h b/components/radiobutton.h index e69de29..c5d6d42 100644 --- a/components/radiobutton.h +++ b/components/radiobutton.h @@ -0,0 +1,20 @@ +#ifndef RADIOBUTTON_H +#define RADIOBUTTON_H + +#include + +class RadioButton : public QWidget +{ + Q_OBJECT + +public: + explicit RadioButton(QWidget *parent = 0); + ~RadioButton(); + +protected: + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; +}; + +#endif // RADIOBUTTON_H diff --git a/components/textfield.cpp b/components/textfield.cpp index 5d5bbea..3e98b66 100644 --- a/components/textfield.cpp +++ b/components/textfield.cpp @@ -1 +1,31 @@ +#include +#include #include "textfield.h" + +TextField::TextField(QWidget *parent) + : QWidget(parent) +{ +} + +TextField::~TextField() +{ +} + +void TextField::mousePressEvent(QMouseEvent *event) +{ + QWidget::mousePressEvent(event); +} + +void TextField::mouseReleaseEvent(QMouseEvent *event) +{ + QWidget::mouseReleaseEvent(event); +} + +void TextField::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + + painter.drawRect(40, 0, 50, 50); + + QWidget::paintEvent(event); +} diff --git a/components/textfield.h b/components/textfield.h index e69de29..93ead49 100644 --- a/components/textfield.h +++ b/components/textfield.h @@ -0,0 +1,20 @@ +#ifndef TEXTFIELD_H +#define TEXTFIELD_H + +#include + +class TextField : public QWidget +{ + Q_OBJECT + +public: + explicit TextField(QWidget *parent = 0); + ~TextField(); + +protected: + void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE; + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; +}; + +#endif // TEXTFIELD_H diff --git a/examples/checkboxexamples.cpp b/examples/checkboxexamples.cpp new file mode 100644 index 0000000..bb7c51a --- /dev/null +++ b/examples/checkboxexamples.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "checkboxexamples.h" +#include "components/checkbox.h" +#include "exampleview.h" +#include "frame.h" + +CheckboxExamples::CheckboxExamples(QWidget *parent) + : ExampleList(parent) +{ + QLayout *layout = widget()->layout(); + + { + Checkbox *checkbox = new Checkbox; + + ExampleView *view = new ExampleView; + view->setWidget(checkbox); + + Frame *frame = new Frame; + frame->setCodeSnippet( + "hello" + ); + frame->setWidget(view); + + layout->addWidget(frame); + } +} + +CheckboxExamples::~CheckboxExamples() +{ +} diff --git a/examples/checkboxexamples.h b/examples/checkboxexamples.h new file mode 100644 index 0000000..367771d --- /dev/null +++ b/examples/checkboxexamples.h @@ -0,0 +1,15 @@ +#ifndef CHECKBOXEXAMPLES_H +#define CHECKBOXEXAMPLES_H + +#include "examplelist.h" + +class CheckboxExamples : public ExampleList +{ + Q_OBJECT + +public: + explicit CheckboxExamples(QWidget *parent = 0); + ~CheckboxExamples(); +}; + +#endif // CHECKBOXEXAMPLES_H diff --git a/examples/listexamples.cpp b/examples/listexamples.cpp new file mode 100644 index 0000000..58ff66b --- /dev/null +++ b/examples/listexamples.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "listexamples.h" +#include "components/list.h" +#include "exampleview.h" +#include "frame.h" + +ListExamples::ListExamples(QWidget *parent) + : ExampleList(parent) +{ + QLayout *layout = widget()->layout(); + + { + List *list = new List; + + ExampleView *view = new ExampleView; + view->setWidget(list); + + Frame *frame = new Frame; + frame->setCodeSnippet( + "hello" + ); + frame->setWidget(view); + + layout->addWidget(frame); + } +} + +ListExamples::~ListExamples() +{ +} diff --git a/examples/listexamples.h b/examples/listexamples.h new file mode 100644 index 0000000..7872afa --- /dev/null +++ b/examples/listexamples.h @@ -0,0 +1,15 @@ +#ifndef LISTEXAMPLES_H +#define LISTEXAMPLES_H + +#include "examplelist.h" + +class ListExamples : public ExampleList +{ + Q_OBJECT + +public: + explicit ListExamples(QWidget *parent = 0); + ~ListExamples(); +}; + +#endif // LISTEXAMPLES_H diff --git a/examples/radiobuttonexamples.cpp b/examples/radiobuttonexamples.cpp new file mode 100644 index 0000000..81c5d60 --- /dev/null +++ b/examples/radiobuttonexamples.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "radiobuttonexamples.h" +#include "components/radiobutton.h" +#include "exampleview.h" +#include "frame.h" + +RadioButtonExamples::RadioButtonExamples(QWidget *parent) + : ExampleList(parent) +{ + QLayout *layout = widget()->layout(); + + { + RadioButton *radioButton = new RadioButton; + + ExampleView *view = new ExampleView; + view->setWidget(radioButton); + + Frame *frame = new Frame; + frame->setCodeSnippet( + "hello" + ); + frame->setWidget(view); + + layout->addWidget(frame); + } +} + +RadioButtonExamples::~RadioButtonExamples() +{ +} diff --git a/examples/radiobuttonexamples.h b/examples/radiobuttonexamples.h new file mode 100644 index 0000000..3991c4c --- /dev/null +++ b/examples/radiobuttonexamples.h @@ -0,0 +1,15 @@ +#ifndef RADIOBUTTONEXAMPLES_H +#define RADIOBUTTONEXAMPLES_H + +#include "examplelist.h" + +class RadioButtonExamples : public ExampleList +{ + Q_OBJECT + +public: + explicit RadioButtonExamples(QWidget *parent = 0); + ~RadioButtonExamples(); +}; + +#endif // RADIOBUTTONEXAMPLES_H diff --git a/examples/textfieldexamples.cpp b/examples/textfieldexamples.cpp new file mode 100644 index 0000000..2f0a07c --- /dev/null +++ b/examples/textfieldexamples.cpp @@ -0,0 +1,31 @@ +#include +#include +#include "textfieldexamples.h" +#include "components/textfield.h" +#include "exampleview.h" +#include "frame.h" + +TextFieldExamples::TextFieldExamples(QWidget *parent) + : ExampleList(parent) +{ + QLayout *layout = widget()->layout(); + + { + TextField *textField = new TextField; + + ExampleView *view = new ExampleView; + view->setWidget(textField); + + Frame *frame = new Frame; + frame->setCodeSnippet( + "hello" + ); + frame->setWidget(view); + + layout->addWidget(frame); + } +} + +TextFieldExamples::~TextFieldExamples() +{ +} diff --git a/examples/textfieldexamples.h b/examples/textfieldexamples.h new file mode 100644 index 0000000..30eae45 --- /dev/null +++ b/examples/textfieldexamples.h @@ -0,0 +1,15 @@ +#ifndef TEXTFIELDEXAMPLES_H +#define TEXTFIELDEXAMPLES_H + +#include "examplelist.h" + +class TextFieldExamples : public ExampleList +{ + Q_OBJECT + +public: + explicit TextFieldExamples(QWidget *parent = 0); + ~TextFieldExamples(); +}; + +#endif // TEXTFIELDEXAMPLES_H diff --git a/mainwindow.cpp b/mainwindow.cpp index 12e2b67..565d14d 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -12,6 +13,10 @@ #include "examples/tableexamples.h" #include "examples/sliderexamples.h" #include "examples/toggleexamples.h" +#include "examples/radiobuttonexamples.h" +#include "examples/checkboxexamples.h" +#include "examples/textfieldexamples.h" +#include "examples/listexamples.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -24,6 +29,10 @@ MainWindow::MainWindow(QWidget *parent) _tableExamples(new TableExamples), _sliderExamples(new SliderExamples), _toggleExamples(new ToggleExamples), + _radioButtonExamples(new RadioButtonExamples), + _checkboxExamples(new CheckboxExamples), + _textFieldExamples(new TextFieldExamples), + _listExamples(new ListExamples), _about(new About) { _initWidget(); @@ -53,6 +62,14 @@ void MainWindow::showWidget(QAction *action) _layout->setCurrentWidget(_sliderExamples); } else if ("Toggle" == text) { _layout->setCurrentWidget(_toggleExamples); + } else if ("Radio Button" == text) { + _layout->setCurrentWidget(_radioButtonExamples); + } else if ("Checkbox" == text) { + _layout->setCurrentWidget(_checkboxExamples); + } else if ("Text Field" == text) { + _layout->setCurrentWidget(_textFieldExamples); + } else if ("List" == text) { + _layout->setCurrentWidget(_listExamples); } else { _layout->setCurrentWidget(_about); } @@ -72,6 +89,10 @@ void MainWindow::_initWidget() _layout->addWidget(_tableExamples); _layout->addWidget(_sliderExamples); _layout->addWidget(_toggleExamples); + _layout->addWidget(_radioButtonExamples); + _layout->addWidget(_checkboxExamples); + _layout->addWidget(_textFieldExamples); + _layout->addWidget(_listExamples); setCentralWidget(widget); } @@ -79,6 +100,9 @@ void MainWindow::_initWidget() void MainWindow::_initMenu() const { QMenu *file = new QMenu("&File"); + + QAction *exitAction = file->addAction("E&xit"); + QMenu *components = new QMenu("&Components"); QMenu *settings = new QMenu("&Settings"); QMenu *examples = new QMenu("&Examples"); @@ -116,4 +140,5 @@ void MainWindow::_initMenu() const menuBar()->addMenu(help); connect(components, SIGNAL(triggered(QAction *)), this, SLOT(showWidget(QAction *))); + connect(exitAction, SIGNAL(triggered(bool)), qApp, SLOT(quit())); } diff --git a/mainwindow.h b/mainwindow.h index db6afc6..e2b6ed4 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -12,6 +12,10 @@ class TabsExamples; class TableExamples; class SliderExamples; class ToggleExamples; +class RadioButtonExamples; +class CheckboxExamples; +class TextFieldExamples; +class ListExamples; class QStackedLayout; class MainWindow : public QMainWindow @@ -38,6 +42,10 @@ private: TableExamples *const _tableExamples; SliderExamples *const _sliderExamples; ToggleExamples *const _toggleExamples; + RadioButtonExamples *const _radioButtonExamples; + CheckboxExamples *const _checkboxExamples; + TextFieldExamples *const _textFieldExamples; + ListExamples *const _listExamples; About *const _about; }; diff --git a/qt-material-widgets.pro b/qt-material-widgets.pro index b23e922..de28843 100644 --- a/qt-material-widgets.pro +++ b/qt-material-widgets.pro @@ -39,7 +39,11 @@ SOURCES += main.cpp\ examples/raisedbuttonexamples.cpp \ examples/sliderexamples.cpp \ components/toggle.cpp \ - examples/toggleexamples.cpp + examples/toggleexamples.cpp \ + examples/radiobuttonexamples.cpp \ + examples/checkboxexamples.cpp \ + examples/textfieldexamples.cpp \ + examples/listexamples.cpp HEADERS += mainwindow.h \ style.h \ @@ -72,4 +76,8 @@ HEADERS += mainwindow.h \ examples/raisedbuttonexamples.h \ examples/sliderexamples.h \ components/toggle.h \ - examples/toggleexamples.h + examples/toggleexamples.h \ + examples/radiobuttonexamples.h \ + examples/checkboxexamples.h \ + examples/textfieldexamples.h \ + examples/listexamples.h