diff options
Diffstat (limited to 'testapp/main.cpp')
-rw-r--r-- | testapp/main.cpp | 65 |
1 files changed, 53 insertions, 12 deletions
diff --git a/testapp/main.cpp b/testapp/main.cpp index 698ec64..732f67c 100644 --- a/testapp/main.cpp +++ b/testapp/main.cpp @@ -8,26 +8,67 @@ int main(int argc, char **argv) { QApplication a(argc, argv); - QListWidget *lw = new QListWidget(); + QListWidget *list = new QListWidget(); for (int i = 0; i < 1000; ++i) - new QListWidgetItem(QString("Oa dsjfhdk jhdsjk hfdskj k %1").arg(i), lw); + new QListWidgetItem(QString("Oa dsjfhdk jhdsjk hfdskj k %1").arg(i), list); QScrollAreaKineticScroller *s = new QScrollAreaKineticScroller(); - s->setWidget(lw); + s->setWidget(list); - QWidget *settings = new SettingsWidget(s); +#if defined(Q_WS_MAEMO_5) || defined(Q_WS_S60) || defined(Q_WS_WINCE) + bool smallScreen = true; +#else + bool smallScreen = false; +#endif + + QWidget *settings = new SettingsWidget(s, smallScreen); QWidget *plot = new PlotWidget(s); - QSplitter *split = new QSplitter(); - split->addWidget(lw); - QTabWidget *tab = new QTabWidget(); - tab->addTab(settings, settings->windowTitle()); - tab->addTab(plot, plot->windowTitle()); - split->addWidget(tab); + if (smallScreen) { + QMainWindow *top = new QMainWindow(); + QStackedWidget *stack = new QStackedWidget(); + stack->addWidget(list); + stack->addWidget(settings); + stack->addWidget(plot); + top->setCentralWidget(stack); + + QActionGroup *pages = new QActionGroup(top); + pages->setExclusive(true); + QSignalMapper *mapper = new QSignalMapper(top); + QObject::connect(mapper, SIGNAL(mapped(int)), stack, SLOT(setCurrentIndex(int))); + + QAction *a = new QAction(QLatin1String("List"), pages); + a->setCheckable(true); + a->setChecked(true); + mapper->setMapping(a, 0); + QObject::connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map())); + + a = new QAction(QLatin1String("Config"), pages); + a->setCheckable(true); + a->setChecked(false); + a->setMenuRole(QAction::NoRole); + mapper->setMapping(a, 1); + QObject::connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map())); + + a = new QAction(QLatin1String("Plot"), pages); + a->setCheckable(true); + a->setChecked(false); + mapper->setMapping(a, 2); + QObject::connect(a, SIGNAL(toggled(bool)), mapper, SLOT(map())); - split->show(); - split->raise(); + top->menuBar()->addMenu("Pages")->addActions(pages->actions()); + top->showMaximized(); + } else { + QSplitter *split = new QSplitter(); + split->addWidget(list); + split->addWidget(settings); + split->addWidget(plot); + split->show(); +#if defined(Q_WS_MAC) + split->raise(); +#endif + } return a.exec(); } |