From 5fc481e1e42dc0acaeceadb03a73cdc67e0d8e30 Mon Sep 17 00:00:00 2001 From: laserpants Date: Sat, 19 Mar 2016 16:41:06 +0300 Subject: [PATCH] clean up initialization code --- mainwindow.cpp | 73 +++++++++++++++++++++++++++++++++++++++++--------- mainwindow.h | 19 +++++++++++++ 2 files changed, 79 insertions(+), 13 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 23b8dd0..bc4b7b6 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -3,29 +3,32 @@ #include #include #include +#include +#include #include "mainwindow.h" #include "components/flatbutton.h" #include "components/iconbutton.h" #include "components/appbar.h" +#include "examples/about.h" +#include "examples/flatbuttonexamples.h" +#include "examples/iconbuttonexamples.h" +#include "examples/appbarexamples.h" MainWindow::MainWindow(QWidget *parent) - : QMainWindow(parent) + : QMainWindow(parent), + _layout(new QStackedLayout), + _flatButtonExamples(new FlatButtonExamples), + _iconButtonExamples(new IconButtonExamples), + _appBarExamples(new AppBarExamples), + _about(new About) { - QMenu *components = new QMenu("Components"); - components->addAction("AppBar"); - - QMenu *buttons = new QMenu("Buttons"); - components->addMenu(buttons); - - buttons->addAction("FlatButton"); - buttons->addAction("IconButton"); - - components->addAction("Tabs"); - - menuBar()->addMenu(components); + _initWidget(); + _initMenu(); // -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- + + /* QVBoxLayout *layout = new QVBoxLayout; QWidget *widget = new QWidget; widget->setLayout(layout); @@ -69,8 +72,52 @@ MainWindow::MainWindow(QWidget *parent) button2->setIcon(icon); // -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- + */ } MainWindow::~MainWindow() { } + +void MainWindow::showWidget(QAction *action) +{ + QString text(action->text()); + if ("AppBar" == text) { + _layout->setCurrentWidget(_about); + } else if ("FlatButton" == text) { + _layout->setCurrentWidget(_flatButtonExamples); + } else if ("IconButton" == text) { + _layout->setCurrentWidget(_about); + } else { + _layout->setCurrentWidget(_about); + } +} + +void MainWindow::_initWidget() +{ + QWidget *widget = new QWidget; + widget->setLayout(_layout); + + _layout->addWidget(_about); + _layout->addWidget(_flatButtonExamples); + + setCentralWidget(widget); +} + +void MainWindow::_initMenu() const +{ + QMenu *components = new QMenu("Components"); + components->addAction("AppBar"); + + QMenu *buttons = new QMenu("Buttons"); + components->addMenu(buttons); + + buttons->addAction("FlatButton"); + buttons->addAction("IconButton"); + + components->addAction("Tabs"); + + menuBar()->addMenu(components); + + connect(components, SIGNAL(triggered(QAction *)), this, SLOT(showWidget(QAction *))); +} diff --git a/mainwindow.h b/mainwindow.h index f834c00..ceca026 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -3,6 +3,12 @@ #include +class About; +class FlatButtonExamples; +class IconButtonExamples; +class AppBarExamples; +class QStackedLayout; + class MainWindow : public QMainWindow { Q_OBJECT @@ -10,6 +16,19 @@ class MainWindow : public QMainWindow public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); + +protected slots: + void showWidget(QAction *action); + +private: + void _initWidget(); + void _initMenu() const; + + QStackedLayout *const _layout; + FlatButtonExamples *const _flatButtonExamples; + IconButtonExamples *const _iconButtonExamples; + AppBarExamples *const _appBarExamples; + About *const _about; }; #endif // MAINWINDOW_H