clean up initialization code

This commit is contained in:
laserpants 2016-03-19 16:41:06 +03:00
parent a031920cd0
commit 5fc481e1e4
2 changed files with 79 additions and 13 deletions

View File

@ -3,29 +3,32 @@
#include <QMenu>
#include <QMenuBar>
#include <QLabel>
#include <QStackedLayout>
#include <QDebug>
#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 *)));
}

View File

@ -3,6 +3,12 @@
#include <QMainWindow>
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