From d002b38dddc05e466d3f41580957ede3de209dd4 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Sun, 17 Oct 2010 18:03:29 +0000 Subject: get rid of pushButton triangle when menu is set --- examples/GuiClient/mainDialog.cpp | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'examples/GuiClient/mainDialog.cpp') diff --git a/examples/GuiClient/mainDialog.cpp b/examples/GuiClient/mainDialog.cpp index c7e5c7dc..fbf7ae43 100644 --- a/examples/GuiClient/mainDialog.cpp +++ b/examples/GuiClient/mainDialog.cpp @@ -51,7 +51,8 @@ mainDialog::mainDialog(QWidget *parent): QDialog(parent, Qt::Window), m_rosterItemSortFilterModel(this), m_vCardCache(&m_xmppClient), m_capabilitiesCache(&m_xmppClient), m_accountsCache(this), m_trayIcon(this), m_trayIconMenu(this), m_quitAction("Quit", this), - m_signOutAction("Sign out", this) + m_signOutAction("Sign out", this), + m_settingsMenu(0) { ui->setupUi(this); createTrayIconAndMenu(); @@ -184,6 +185,11 @@ mainDialog::mainDialog(QWidget *parent): QDialog(parent, Qt::Window), &m_consoleDlg, SLOT(message(QXmppLogger::MessageType, const QString &))); Q_ASSERT(check); + + check = connect(ui->pushButton_settings, + SIGNAL(pressed()), + SLOT(action_settingsPressed())); + Q_ASSERT(check); } void mainDialog::rosterChanged(const QString& bareJid) @@ -662,21 +668,21 @@ void mainDialog::createTrayIconAndMenu() void mainDialog::createSettingsMenu() { - QMenu* settingsMenu = new QMenu(ui->pushButton_settings); - ui->pushButton_settings->setMenu(settingsMenu); + m_settingsMenu = new QMenu(ui->pushButton_settings); +// ui->pushButton_settings->setMenu(m_settingsMenu); QAction* aboutDlg = new QAction("About", ui->pushButton_settings); connect(aboutDlg, SIGNAL(triggered()), SLOT(action_aboutDlg())); - settingsMenu->addAction(aboutDlg); + m_settingsMenu->addAction(aboutDlg); - settingsMenu->addSeparator(); + m_settingsMenu->addSeparator(); QAction* showXml = new QAction("Show XML Console...", ui->pushButton_settings); connect(showXml, SIGNAL(triggered()), SLOT(action_showXml())); - settingsMenu->addAction(showXml); + m_settingsMenu->addAction(showXml); QMenu* viewMenu = new QMenu("View", ui->pushButton_settings); - settingsMenu->addMenu(viewMenu); + m_settingsMenu->addMenu(viewMenu); QAction* showOfflineContacts = new QAction("Show offline contacts", ui->pushButton_settings); showOfflineContacts->setCheckable(true); @@ -692,8 +698,8 @@ void mainDialog::createSettingsMenu() &m_rosterItemSortFilterModel, SLOT(sortByName(bool))); viewMenu->addAction(sortByName); - settingsMenu->addSeparator(); - settingsMenu->addAction(&m_quitAction); + m_settingsMenu->addSeparator(); + m_settingsMenu->addAction(&m_quitAction); } void mainDialog::closeEvent(QCloseEvent *event) @@ -880,3 +886,8 @@ void mainDialog::action_aboutDlg() aboutDialog abtDlg(this); abtDlg.exec(); } + +void mainDialog::action_settingsPressed() +{ + m_settingsMenu->exec(ui->pushButton_settings->mapToGlobal(QPoint(0, ui->pushButton_settings->height()))); +} -- cgit v1.2.3