void tst_WindowsMobile::testSimpleWidget() { if (qt_wince_is_smartphone()) QSKIP("This test is only for Windows Mobile", SkipAll); QMenuBar menubar; menubar.show(); QWidget maximized; QPalette pal = maximized.palette(); pal.setColor(QPalette::Background, Qt::red); maximized.setPalette(pal); maximized.showMaximized(); QWidget widget; widget.setGeometry(100, 100, 200, 200); widget.setWindowTitle("Widget"); widget.show(); qApp->processEvents(); QTest::qWait(1000); QWidget widget2; widget2.setGeometry(100, 380, 300, 200); widget2.setWindowTitle("Widget 2"); widget2.setWindowFlags(Qt::Popup); widget2.show(); qApp->processEvents(); QTest::qWait(1000); takeScreenShot("testSimpleWidget_current.png"); compareScreenshots("testSimpleWidget_current.png", ":/testSimpleWidget_current.png"); }
void tst_QMenu::mouseActivation() { #ifdef Q_OS_WINCE_WM QSKIP("We have a separate mouseActivation test for Windows mobile.", SkipAll); #endif QMenu menu; menu.addAction("Menu Action"); menu.show(); QTest::mouseClick(&menu, Qt::LeftButton, 0, QPoint(5, 5), 300); QVERIFY(!menu.isVisible()); //context menus can allways be accessed with right click except on windows menu.show(); QTest::mouseClick(&menu, Qt::RightButton, 0, QPoint(5, 5), 300); QVERIFY(!menu.isVisible()); #ifdef Q_OS_WIN //on windows normal mainwindow menus Can only be accessed with left mouse button QMenuBar menubar; QMenu submenu("Menu"); submenu.addAction("action"); QAction *action = menubar.addMenu(&submenu); menubar.show(); QTest::mouseClick(&menubar, Qt::LeftButton, 0, menubar.actionGeometry(action).center(), 300); QVERIFY(submenu.isVisible()); QTest::mouseClick(&submenu, Qt::LeftButton, 0, QPoint(5, 5), 300); QVERIFY(!submenu.isVisible()); QTest::mouseClick(&menubar, Qt::LeftButton, 0, menubar.actionGeometry(action).center(), 300); QVERIFY(submenu.isVisible()); QTest::mouseClick(&submenu, Qt::RightButton, 0, QPoint(5, 5), 300); QVERIFY(submenu.isVisible()); #endif }
void tst_QMenu::mouseActivation() { QWidget topLevel; QMenu menu(&topLevel); topLevel.show(); menu.addAction("Menu Action"); menu.show(); QTest::mouseClick(&menu, Qt::LeftButton, 0, menu.rect().center(), 300); QVERIFY(!menu.isVisible()); //context menus can always be accessed with right click except on windows menu.show(); QTest::mouseClick(&menu, Qt::RightButton, 0, menu.rect().center(), 300); QVERIFY(!menu.isVisible()); #ifdef Q_OS_WIN //on windows normal mainwindow menus Can only be accessed with left mouse button QMenuBar menubar; QMenu submenu("Menu"); submenu.addAction("action"); QAction *action = menubar.addMenu(&submenu); menubar.show(); QTest::mouseClick(&menubar, Qt::LeftButton, 0, menubar.actionGeometry(action).center(), 300); QVERIFY(submenu.isVisible()); QTest::mouseClick(&submenu, Qt::LeftButton, 0, QPoint(5, 5), 300); QVERIFY(!submenu.isVisible()); QTest::mouseClick(&menubar, Qt::LeftButton, 0, menubar.actionGeometry(action).center(), 300); QVERIFY(submenu.isVisible()); QTest::mouseClick(&submenu, Qt::RightButton, 0, QPoint(5, 5), 300); QVERIFY(submenu.isVisible()); #endif }
void FullscreenSpacerLabel::mouseMoveEvent (QMouseEvent *event) { MainWindow *wnd = Core::Instance ().GetReallyMainWindow (); if (wnd && (wnd->windowState () == Qt::WindowFullScreen)) { QMenuBar *menu = wnd->findChild<QMenuBar*> ("MenuBar_"); if (!menu) { qWarning () << Q_FUNC_INFO << "menu is null"; return; } QToolBar *toolbar = wnd->findChild<QToolBar*> ("MainToolbar_"); if (!toolbar) { qWarning () << Q_FUNC_INFO << "toolbar is null"; return; } LeechCraft::TabWidget *tabwidget = wnd->GetTabWidget (); if (!tabwidget) { qWarning () << Q_FUNC_INFO << "tabwidget is null"; return; } QToolBar *bar = Core::Instance ().GetToolBar (tabwidget->currentIndex ()); if (!bar) { qWarning () << Q_FUNC_INFO << "bar is null"; return; } const bool asButton = XmlSettingsManager::Instance ()->property ("ShowMenuBarAsButton").toBool (); if (event->y () < 5) { if (asButton) menu->hide (); else if (menu->isHidden ()) menu->show (); if (toolbar->isHidden ()) toolbar->show (); if (bar && bar->isHidden ()) bar->show (); } else { if (!menu->isHidden ()) menu->hide (); if (!toolbar->isHidden ()) toolbar->hide (); if (bar && !bar->isHidden ()) bar->hide (); } } }
void MainWindow::on_actionShowMenubar_toggled(bool enable) { QMenuBar *mb = menuBar(); if (enable) mb->show(); else mb->hide(); }
void addMenus(QWidget *w){ // QToolBar *tb ; QMenu *file = new QMenu("Fichier", 0); QMenuBar *menubar; menubar = new QMenuBar(w); QAction *open = new QAction("Ouvrir", 0); QAction *mode = new QAction("Mode libre", 0); QAction *quit = new QAction("Quitter", 0); QAction *stats = new QAction("Historique des scores", 0); quit->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q)); open -> setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O)); w->connect(quit, SIGNAL(triggered()), w, SLOT(close())); w->connect(open, &QAction::triggered, openExplorer); file->addAction(open); file->addAction(mode); file->addAction(stats); file->addAction(quit); QMenu*part = new QMenu("Partition", 0); QAction *elise = new QAction("Lettre à Elise", 0); QAction *fort = new QAction("Fort Boyard", 0); QAction *noob = new QAction("Initiation", 0); w -> connect(elise, &QAction::triggered, setElise); w -> connect(fort, &QAction::triggered, setBoyard); w -> connect(noob, &QAction::triggered, setNooby); part->addAction(elise); part->addAction(noob); part->addAction(fort); menubar->addMenu(file); menubar->addMenu(part); menubar->show(); }
FrontView::FrontView(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); ui->listView->setAttribute(Qt::WA_MacShowFocusRect, false); listModel = new MatrixModel(this); ui->listView->setModel(listModel); ui->listView->setSelectionMode(QAbstractItemView::ExtendedSelection); QMenu *fileMenu = new QMenu("File", this); auto importFromFileAction = new QAction("Import From...", this); importFromFileAction->setShortcut(tr("Ctrl+O")); auto saveToFileAction = new QAction("Save As...", this); saveToFileAction->setShortcut(tr("Ctrl+S")); fileMenu->addAction(importFromFileAction); fileMenu->addAction(saveToFileAction); QMenuBar *menuBar = new QMenuBar(this); menuBar->addMenu(fileMenu); menuBar->show(); connect(ui->addBtn, SIGNAL(clicked()), SLOT(addButtonClicked())); connect(ui->addToTopBtn, SIGNAL(clicked()), SLOT(addToTopButtonClicked())); connect(ui->findBtn, SIGNAL(clicked()), SLOT(findBtnClicked())); connect(saveToFileAction, SIGNAL(triggered()), SLOT(saveToFile())); connect(importFromFileAction, SIGNAL(triggered()), SLOT(importFromFile())); connect(ui->listView, SIGNAL(doubleClicked(QModelIndex)), SLOT(matrixItemDblClicked(QModelIndex))); }
void MainWindow::run() { // Allow the user to enable or disable debugging // We handle this before the other parameters, as it may affect some // early debug messages QLoggingCategory::defaultCategory()->setEnabled(QtDebugMsg, parser->isSet("debug")); readSettings(); setAttribute(Qt::WA_DeleteOnClose, true); // menu structure QMenuBar *menuBar = QMainWindow::menuBar(); collection = new KActionCollection(this); QMenu *menu = new QMenu(i18n("&File"), this); menuBar->addMenu(menu); QAction *action = KStandardAction::open(this, SLOT(open()), collection); menu->addAction(collection->addAction(QLatin1String("file_open"), action)); action = new QAction(QIcon::fromTheme(QLatin1String("text-html"), QIcon(":text-html")), i18nc("@action:inmenu", "Open URL..."), collection); action->setShortcut(Qt::CTRL | Qt::Key_U); connect(action, SIGNAL(triggered(bool)), this, SLOT(openUrl())); menu->addAction(collection->addAction(QLatin1String("file_open_url"), action)); actionOpenRecent = KStandardAction::openRecent(this, SLOT(openUrl(QUrl)), collection); actionOpenRecent->loadEntries(KSharedConfig::openConfig()->group("Recent Files")); menu->addAction(collection->addAction(QLatin1String("file_open_recent"), actionOpenRecent)); menu->addSeparator(); action = new QAction(QIcon::fromTheme(QLatin1String("media-optical-audio"), QIcon(":media-optical-audio")), i18n("Play Audio CD"), collection); connect(action, SIGNAL(triggered(bool)), this, SLOT(openAudioCd())); menu->addAction(collection->addAction(QLatin1String("file_play_audiocd"), action)); action = new QAction(QIcon::fromTheme(QLatin1String("media-optical"), QIcon(":media-optical")), i18n("Play Video CD"), collection); connect(action, SIGNAL(triggered(bool)), this, SLOT(openVideoCd())); menu->addAction(collection->addAction(QLatin1String("file_play_videocd"), action)); action = new QAction(QIcon::fromTheme(QLatin1String("media-optical"), QIcon(":media-optical")), i18n("Play DVD"), collection); connect(action, SIGNAL(triggered(bool)), this, SLOT(openDvd())); menu->addAction(collection->addAction(QLatin1String("file_play_dvd"), action)); action = new QAction(QIcon::fromTheme(QLatin1String("media-optical"), QIcon(":media-optical")), i18nc("@action:inmenu", "Play DVD Folder"), collection); connect(action, SIGNAL(triggered()), this, SLOT(playDvdFolder())); menu->addAction(collection->addAction(QLatin1String("file_play_dvd_folder"), action)); menu->addSeparator(); action = KStandardAction::quit(this, SLOT(close()), collection); menu->addAction(collection->addAction(QLatin1String("file_quit"), action)); QMenu *playerMenu = new QMenu(i18n("&Playback"), this); menuBar->addMenu(playerMenu); QMenu *playlistMenu = new QMenu(i18nc("menu bar", "Play&list"), this); menuBar->addMenu(playlistMenu); #if HAVE_DVB == 1 QMenu *dvbMenu = new QMenu(i18n("&Television"), this); menuBar->addMenu(dvbMenu); #endif /* HAVE_DVB == 1 */ menu = new QMenu(i18n("&Settings"), this); menuBar->addMenu(menu); action = KStandardAction::keyBindings(this, SLOT(configureKeys()), collection); menu->addAction(collection->addAction(QLatin1String("settings_keys"), action)); action = KStandardAction::preferences(this, SLOT(configureKaffeine()), collection); menu->addAction(collection->addAction(QLatin1String("settings_kaffeine"), action)); menuBar->addSeparator(); KHelpMenu *helpMenu = new KHelpMenu(this, *aboutData); menuBar->addMenu(helpMenu->menu()); // navigation bar - keep in sync with TabIndex enum! navigationBar = new QToolBar(QLatin1String("navigation_bar")); this->addToolBar(Qt::LeftToolBarArea, navigationBar); connect(navigationBar, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(navigationBarOrientationChanged(Qt::Orientation))); tabBar = new QTabBar(navigationBar); tabBar->addTab(QIcon::fromTheme(QLatin1String("start-here-kde"), QIcon(":start-here-kde")), i18n("Start")); tabBar->addTab(QIcon::fromTheme(QLatin1String("kaffeine"), QIcon(":kaffeine")), i18n("Playback")); tabBar->addTab(QIcon::fromTheme(QLatin1String("view-media-playlist"), QIcon(":view-media-playlist")), i18n("Playlist")); #if HAVE_DVB == 1 tabBar->addTab(QIcon::fromTheme(QLatin1String("video-television"), QIcon(":video-television")), i18n("Television")); #endif /* HAVE_DVB == 1 */ tabBar->setShape(QTabBar::RoundedWest); tabBar->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); connect(tabBar, SIGNAL(currentChanged(int)), this, SLOT(activateTab(int))); navigationBar->addWidget(tabBar); // control bar controlBar = new QToolBar(QLatin1String("control_bar")); this->addToolBar(Qt::BottomToolBarArea, controlBar); controlBar->setToolButtonStyle(Qt::ToolButtonIconOnly); autoHideControlBar = false; cursorHideTimer = new QTimer(this); cursorHideTimer->setInterval(1500); cursorHideTimer->setSingleShot(true); connect(cursorHideTimer, SIGNAL(timeout()), this, SLOT(hideCursor())); // main area QWidget *widget = new QWidget(this); stackedLayout = new StackedLayout(widget); setCentralWidget(widget); mediaWidget = new MediaWidget(playerMenu, controlBar, collection, widget); connect(mediaWidget, SIGNAL(displayModeChanged()), this, SLOT(displayModeChanged())); connect(mediaWidget, SIGNAL(changeCaption(QString)), this, SLOT(setWindowTitle(QString))); connect(mediaWidget, SIGNAL(resizeToVideo(MediaWidget::ResizeFactor)), this, SLOT(resizeToVideo(MediaWidget::ResizeFactor))); // tabs - keep in sync with TabIndex enum! TabBase *startTab = new StartTab(this); tabs.append(startTab); stackedLayout->addWidget(startTab); playerTab = new PlayerTab(mediaWidget); playerTab->activate(); tabs.append(playerTab); stackedLayout->addWidget(playerTab); playlistTab = new PlaylistTab(playlistMenu, collection, mediaWidget); tabs.append(playlistTab); stackedLayout->addWidget(playlistTab); #if HAVE_DVB == 1 dvbTab = new DvbTab(dvbMenu, collection, mediaWidget); connect(this, SIGNAL(mayCloseApplication(bool*,QWidget*)), dvbTab, SLOT(mayCloseApplication(bool*,QWidget*))); tabs.append(dvbTab); stackedLayout->addWidget(dvbTab); #endif /* HAVE_DVB == 1 */ currentTabIndex = StartTabId; // actions also have to work if the menu bar is hidden (fullscreen) collection->addAssociatedWidget(this); // restore custom key bindings collection->readSettings(); // Tray menu menu = new QMenu(i18n("Kaffeine"), this); action = new QAction(i18n("Play &File"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(open())); menu->addAction(action); action = new QAction(i18n("Play &Audio CD"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(openAudioCd())); menu->addAction(action); action = new QAction(i18n("Play &Video CD"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(openVideoCd())); menu->addAction(action); action = new QAction(i18n("Play &DVD"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(openDvd())); menu->addAction(action); #if HAVE_DVB == 1 action = new QAction(i18n("&Watch Digital TV"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(playDvb())); menu->addAction(action); #endif action = new QAction(i18n("&Quit"), this); connect(action, SIGNAL(triggered(bool)), this, SLOT(close())); menu->addAction(action); // Tray Icon and its menu QMenu *trayMenu = new QMenu(this); trayIcon = new QSystemTrayIcon(this); trayIcon->setContextMenu(trayMenu); trayIcon->setIcon(QIcon::fromTheme(QLatin1String("kaffeine"), QIcon(":kaffeine"))); trayIcon->setToolTip(i18n("Kaffeine")); trayIcon->setContextMenu(menu); // make sure that the bars are visible (fullscreen -> quit -> restore -> hidden) menuBar->show(); navigationBar->show(); controlBar->show(); trayIcon->show(); // workaround setAutoSaveSettings() which doesn't accept "IconOnly" as initial state controlBar->setToolButtonStyle(Qt::ToolButtonIconOnly); // initialize random number generator qsrand(QTime(0, 0, 0).msecsTo(QTime::currentTime())); // initialize dbus objects QDBusConnection::sessionBus().registerObject(QLatin1String("/"), new MprisRootObject(this), QDBusConnection::ExportAllContents); QDBusConnection::sessionBus().registerObject(QLatin1String("/Player"), new MprisPlayerObject(this, mediaWidget, playlistTab, this), QDBusConnection::ExportAllContents); QDBusConnection::sessionBus().registerObject(QLatin1String("/TrackList"), new MprisTrackListObject(playlistTab, this), QDBusConnection::ExportAllContents); #if HAVE_DVB == 1 QDBusConnection::sessionBus().registerObject(QLatin1String("/Television"), new DBusTelevisionObject(dvbTab, this), QDBusConnection::ExportAllContents); #endif /* HAVE_DVB == 1 */ QDBusConnection::sessionBus().registerService(QLatin1String("org.mpris.kaffeine")); show(); // set display mode switch (Configuration::instance()->getStartupDisplayMode()) { case Configuration::StartupNormalMode: // nothing to do break; case Configuration::StartupMinimalMode: mediaWidget->setDisplayMode(MediaWidget::MinimalMode); break; case Configuration::StartupFullScreenMode: mediaWidget->setDisplayMode(MediaWidget::FullScreenMode); break; case Configuration::StartupRememberLastSetting: { int value = KSharedConfig::openConfig()->group("MainWindow").readEntry("DisplayMode", 0); switch (value) { case 0: // nothing to do break; case 1: mediaWidget->setDisplayMode(MediaWidget::MinimalMode); break; case 2: mediaWidget->setDisplayMode(MediaWidget::FullScreenMode); break; } break; } } parseArgs(); }