diff options
Diffstat (limited to 'src')
111 files changed, 1076 insertions, 1252 deletions
diff --git a/src/kvilib/CMakeLists.txt b/src/kvilib/CMakeLists.txt index 9afda7d44..63606393e 100644 --- a/src/kvilib/CMakeLists.txt +++ b/src/kvilib/CMakeLists.txt @@ -33,7 +33,6 @@ SET( tal/KviTalListWidget.h tal/KviTalMainWindow.h tal/KviTalMenuBar.h - tal/KviTalPopupMenu.h tal/KviTalTabDialog.h tal/KviTalTableWidget.h tal/KviTalToolTip.h @@ -133,7 +132,6 @@ SET(kvilib_SRCS tal/KviTalListWidget.cpp tal/KviTalMainWindow.cpp tal/KviTalMenuBar.cpp - tal/KviTalPopupMenu.cpp tal/KviTalSplitter.cpp tal/KviTalTabDialog.cpp tal/KviTalTableWidget.cpp diff --git a/src/kvilib/tal/KviTalPopupMenu.cpp b/src/kvilib/tal/KviTalPopupMenu.cpp deleted file mode 100644 index ef7744dfe..000000000 --- a/src/kvilib/tal/KviTalPopupMenu.cpp +++ /dev/null @@ -1,215 +0,0 @@ -//============================================================================= -// -// File : KviTalPopupMenu.cpp -// Creation date : Mon May 05 2008 11:25:08 by Alessandro Carbone -// -// This file is part of the KVIrc irc client distribution -// Copyright (C) 2008 Alessandro Carbone (elfonol at gmail dot com) -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) any later version. -// -// This program is distributed in the HOPE that it will be USEFUL, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, write to the Free Software Foundation, -// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// -//============================================================================= - -#include "KviTalPopupMenu.h" - -#include <QMenu> -#include <QHash> -#include <QAction> -#include <QWidgetAction> - -KviTalPopupMenu::KviTalPopupMenu(QWidget * pParent,const QString &szName) -: QMenu(pParent) -{ - connect(this,SIGNAL(triggered(QAction *)),this,SLOT(slottriggered(QAction *))); - setObjectName(szName); - identifier = 0; - -} - -KviTalPopupMenu::~KviTalPopupMenu() -{ - clear(); -} - -QAction * KviTalPopupMenu::getAction(int id) -{ - QAction * a = actionsDict.value(id); - return a ? a : 0; -} - -int KviTalPopupMenu::insertItem(const QString &szText) -{ - QAction * a = addAction(szText); - actionsDict[identifier++] = a; - return identifier-1; -} - -int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText) -{ - QAction * a = addAction(QIcon(pix),szText); - actionsDict[identifier++] = a; - return identifier-1; -} - -int KviTalPopupMenu::insertItem(const QString &szText,int id) -{ - QAction * a = addAction(szText); - actionsDict[id] = a; - return id; -} - -int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText,int id) -{ - QAction * a = addAction(QIcon(pix),szText); - actionsDict[id] = a; - return id; -} - -int KviTalPopupMenu::insertItem(const QString &szText,const QObject * pReceiver,const char * szSlot) -{ - QAction * action = addAction(szText); - - // create a compatible slot - signalMapper[action] = new QSignalMapper(this); - signalMapper[action]->setMapping(action, identifier); - - connect(action, SIGNAL(triggered()), signalMapper[action], SLOT(map())); - connect(signalMapper[action], SIGNAL(mapped(int)), pReceiver, szSlot); - - actionsDict[identifier++]=action; - return identifier-1; -} - -int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText,const QObject * pReceiver,const char * szSlot) -{ - QAction * action = addAction(pix, szText); - - // create a compatible slot - signalMapper[action] = new QSignalMapper(this); - signalMapper[action]->setMapping(action, identifier); - - connect(action, SIGNAL(triggered()), signalMapper[action], SLOT(map())); - connect(signalMapper[action], SIGNAL(mapped(int)), pReceiver, szSlot); - - actionsDict.insert(identifier, action); - actionsDict[identifier++] = action; - return identifier-1; -} - -int KviTalPopupMenu::insertItem(const QPixmap &pix,const QString &szText,QMenu *pMenu) -{ - QAction * a = addMenu(pMenu); - a->setText(szText); - a->setIcon(QIcon(pix)); - actionsDict[identifier++] = a; - return identifier-1; -} - -int KviTalPopupMenu::insertItem(const QString &szText,QMenu *pMenu) -{ - QAction * a = addMenu(pMenu); - a->setText(szText); - actionsDict[identifier++] = a; - return identifier-1; -} - -int KviTalPopupMenu::insertItem(QWidget * pWidget) -{ - QWidgetAction * pAct = new QWidgetAction(this); - pAct->setDefaultWidget(pWidget); - addAction(pAct); - return 0; -} - -void KviTalPopupMenu::setItemChecked(int id,bool check) -{ - QAction * action = actionsDict.value(id); - action->setCheckable(true); - action->setChecked(check); -} - -void KviTalPopupMenu::setItemParameter(int id, int param) -{ - QAction * action = actionsDict.value(id); - - // take care of the slot - if (signalMapper[action]) - { - signalMapper[action]->removeMappings(action); - signalMapper[action]->setMapping(action, param); - } - - QVariant par(param); - if (action) action->setData(par); -} - -int KviTalPopupMenu::itemParameter(int id) -{ - QAction * action = actionsDict.value(id); - if (action) - return action->data().toInt(); - else return 0; -} - -void KviTalPopupMenu::clear() -{ - QMenu::clear(); - identifier = 0; - actionsDict.clear(); - signalMapper.clear(); -} - -QString KviTalPopupMenu::text(int id) -{ - QAction * action = actionsDict.value(id); - return action->text(); -} - -void KviTalPopupMenu::setItemEnabled(int id,bool bFlag) -{ - QAction * action = actionsDict.value(id); - action->setEnabled(bFlag); -} - -int KviTalPopupMenu::insertSeparator() -{ - QAction * a = addSeparator(); - actionsDict[identifier++] = a; - return -1; -} - -void KviTalPopupMenu::slottriggered(QAction * a) -{ - if (signalMapper[a]) return; // When signalmapper is used we don't need this event - - int i = actionsDict.key(a, -1); // See if action exists and get ID - if (i != -1) - { - emit activated(i); - } - - return; -} - -void KviTalPopupMenu::slotActionTriggered(bool) -{ - QAction * action = (QAction *)sender(); - slottriggered(action); -} - -#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES - #include "KviTalPopupMenu.moc" -#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES - diff --git a/src/kvilib/tal/KviTalPopupMenu.h b/src/kvilib/tal/KviTalPopupMenu.h deleted file mode 100644 index 2a7361900..000000000 --- a/src/kvilib/tal/KviTalPopupMenu.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef _KVI_TAL_POPUPMENU_H_ -#define _KVI_TAL_POPUPMENU_H_ - -//============================================================================= -// -// File : KviTalPopupMenu.h -// Creation date : Mon May 05 2008 11:25:08 by Alessandro Carbone -// -// This file is part of the KVIrc irc client distribution -// Copyright (C) 2008 Alessandro Carbone (elfonol at gmail dot com) -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) any later version. -// -// This program is distributed in the HOPE that it will be USEFUL, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, write to the Free Software Foundation, -// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -// -//============================================================================= -#include "kvi_settings.h" -#include "KviQString.h" - -#include <QMenu> -#include <QHash> -#include <QSignalMapper> - -class KVILIB_API KviTalPopupMenu : public QMenu -{ - Q_OBJECT -protected: - QHash<int, QAction*> actionsDict; - // We need QSignalMapper to keep slot system for insertItem() - QHash<QAction*, QSignalMapper*> signalMapper; - int identifier; -public: - KviTalPopupMenu(QWidget * pParent=0,const QString &szName = KviQString::Empty); - virtual ~KviTalPopupMenu() ; - int insertItem(const QString &szText); - int insertItem(const QPixmap &pix,const QString &szText); - int insertItem(const QString &szText,int id); - int insertItem(const QPixmap &pix,const QString &szText,int id); - int insertItem(const QString &szText,const QObject * pReceiver,const char * szSlot); - int insertItem(const QPixmap &pix,const QString &szText,const QObject * pReceiver,const char * szSlot); - int insertItem(const QPixmap &pix,const QString &szText,QMenu *pMenu); - int insertItem(const QString &szText,QMenu *pMenu); - int insertItem(QWidget * pWidget); - void setItemChecked(int id,bool check); - void setItemEnabled(int id,bool bFlag); - void setItemParameter(int id, int param); - int itemParameter(int id); - QAction * getAction(int id); - void clear(); - QString text(int); - int insertSeparator(); -protected slots: - void slottriggered(QAction *); - void slotActionTriggered(bool); -signals: - void activated(int); -}; -#endif // _KVI_TAL_POPUPMENU_H_ diff --git a/src/kvirc/kernel/KviAction.cpp b/src/kvirc/kernel/KviAction.cpp index d2480af37..385d4a78c 100644 --- a/src/kvirc/kernel/KviAction.cpp +++ b/src/kvirc/kernel/KviAction.cpp @@ -30,7 +30,7 @@ #include "KviWindow.h" #include "KviChannelWindow.h" #include "KviQueryWindow.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QAction> @@ -448,7 +448,7 @@ void KviAction::activeContextStateChanged() } } -bool KviAction::addToPopupMenu(KviTalPopupMenu * pMenu) +bool KviAction::addToPopupMenu(QMenu * pMenu) { if(!setupDone()) setup(); @@ -459,13 +459,14 @@ bool KviAction::addToPopupMenu(KviTalPopupMenu * pMenu) if(!m_szKeySequence.isEmpty()) szTmp += '\t' + m_szKeySequence; + QAction *pAction; if(pPix) - iId = pMenu->insertItem(*pPix,szTmp,this,SLOT(activate())); + pAction = pMenu->addAction(*pPix,szTmp,this,SLOT(activate())); else - iId = pMenu->insertItem(szTmp,this,SLOT(activate())); + pAction = pMenu->addAction(szTmp,this,SLOT(activate())); if(!isEnabled()) - pMenu->setItemEnabled(iId,false); + pAction->setEnabled(false); return true; } diff --git a/src/kvirc/kernel/KviAction.h b/src/kvirc/kernel/KviAction.h index 4a0998f84..bc14ba9b7 100644 --- a/src/kvirc/kernel/KviAction.h +++ b/src/kvirc/kernel/KviAction.h @@ -40,7 +40,7 @@ class QShortcut; class QPixmap; -class KviTalPopupMenu; +class QMenu; class KviCustomToolBar; #undef None @@ -275,7 +275,7 @@ public: * \param pMenu The menu where to add the action * \return bool */ - virtual bool addToPopupMenu(KviTalPopupMenu * pMenu); + virtual bool addToPopupMenu(QMenu * pMenu); /** * \brief Adds the action to the given toolbar diff --git a/src/kvirc/kernel/KviApplication.cpp b/src/kvirc/kernel/KviApplication.cpp index 52146b7f8..bfae45675 100644 --- a/src/kvirc/kernel/KviApplication.cpp +++ b/src/kvirc/kernel/KviApplication.cpp @@ -83,7 +83,7 @@ #include "KviKvsEventTriggers.h" #include "kvi_sourcesdate.h" #include "KviPointerHashTable.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviQueryWindow.h" @@ -149,7 +149,7 @@ KVIRC_API KviProxyDataBase * g_pProxyDataBase = 0; // Global windows KVIRC_API KviColorWindow * g_pColorWindow = 0; KVIRC_API KviTextIconWindow * g_pTextIconWindow = 0; -KVIRC_API KviTalPopupMenu * g_pInputPopup = 0; +KVIRC_API QMenu * g_pInputPopup = 0; KVIRC_API QStringList * g_pRecentTopicList = 0; KVIRC_API KviPointerHashTable<QString,KviWindow> * g_pGlobalWindowDict = 0; KVIRC_API KviMediaManager * g_pMediaManager = 0; @@ -505,7 +505,7 @@ void KviApplication::setup() //g_pGarbageCollector = new KviGarbageCollector(); // and the input popup - g_pInputPopup = new KviTalPopupMenu(); + g_pInputPopup = new QMenu(); // create the server parser g_pServerParser = new KviIrcServerParser(); @@ -583,8 +583,6 @@ KviApplication::~KviApplication() // Another critical phase. // We shutdown our subsystems in the right order here. - Q_ASSERT(g_pActiveWindow == 0); - m_bClosingDown = true; #ifndef COMPILE_NO_IPC @@ -2094,7 +2092,7 @@ void KviApplication::addRecentServer(const QString & szServer) merge_to_stringlist_option(szServer,KviOption_stringlistRecentServers,KVI_MAX_RECENT_SERVERS); } -void KviApplication::fillRecentServersPopup(KviTalPopupMenu * pMenu) +void KviApplication::fillRecentServersPopup(QMenu * pMenu) { // FIXME: #warning "MAYBE DISABLE THE SERVERS THAT WE ARE ALREADY CONNECTED TO ?" pMenu->clear(); @@ -2102,27 +2100,27 @@ void KviApplication::fillRecentServersPopup(KviTalPopupMenu * pMenu) { if(*it == "") continue; - pMenu->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),*it); + pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),*it); } } -void KviApplication::fillRecentNicknamesPopup(KviTalPopupMenu * pMenu, KviConsoleWindow * pConsole) +void KviApplication::fillRecentNicknamesPopup(QMenu * pMenu, KviConsoleWindow * pConsole) { pMenu->clear(); - int iId; + QAction *pAction; bool bAlreadyFound = false; for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistRecentNicknames).begin(); it != KVI_OPTION_STRINGLIST(KviOption_stringlistRecentNicknames).end(); ++it) { if(*it == "") continue; - iId = pMenu->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Nick)),*it); + pAction= pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Nick)),*it); if(!pConsole->isConnected()) - pMenu->setItemEnabled(iId,false); + pAction->setEnabled(false); else { if(!bAlreadyFound) { bool bIsCurrent = KviQString::equalCS(pConsole->connection()->currentNickName(),*it); - pMenu->setItemEnabled(iId,!bIsCurrent); + pAction->setEnabled(!bIsCurrent); if(bIsCurrent) bAlreadyFound = true; } @@ -2130,9 +2128,10 @@ void KviApplication::fillRecentNicknamesPopup(KviTalPopupMenu * pMenu, KviConsol } } -void KviApplication::fillRecentChannelsPopup(KviTalPopupMenu * pMenu, KviConsoleWindow * pConsole) +void KviApplication::fillRecentChannelsPopup(QMenu * pMenu, KviConsoleWindow * pConsole) { pMenu->clear(); + QAction *pAction; QStringList * pList = recentChannelsForNetwork(pConsole->currentNetworkName()); if(pList) { @@ -2140,11 +2139,11 @@ void KviApplication::fillRecentChannelsPopup(KviTalPopupMenu * pMenu, KviConsole { if(*it == "") continue; // ? - int iId = pMenu->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),*it); + pAction = pMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),*it); if(!pConsole->isConnected()) - pMenu->setItemEnabled(iId,false); + pAction->setEnabled(false); else - pMenu->setItemEnabled(iId,!(pConsole->connection()->findChannel(*it))); + pAction->setEnabled(!(pConsole->connection()->findChannel(*it))); } } } @@ -2155,7 +2154,7 @@ void KviApplication::fillRecentServersListBox(KviTalListBox * l) { l->clear(); for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistRecentServers).begin(); it != KVI_OPTION_STRINGLIST(KviOption_stringlistRecentServers).end(); ++it) - l->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),*it); + l->addAction(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),*it); } */ diff --git a/src/kvirc/kernel/KviApplication.h b/src/kvirc/kernel/KviApplication.h index fe632e843..4a4a5f69b 100644 --- a/src/kvirc/kernel/KviApplication.h +++ b/src/kvirc/kernel/KviApplication.h @@ -57,7 +57,7 @@ #include <QX11Info> #endif -class KviTalPopupMenu; +class QMenu; class KviTalListBox; class KviConsoleWindow; class KviConfigurationFile; @@ -319,9 +319,9 @@ public: void addRecentServer(const QString& server); - void fillRecentServersPopup(KviTalPopupMenu * m); - void fillRecentNicknamesPopup(KviTalPopupMenu * m,KviConsoleWindow * pConsole); - void fillRecentChannelsPopup(KviTalPopupMenu * m,KviConsoleWindow * pConsole); + void fillRecentServersPopup(QMenu * m); + void fillRecentNicknamesPopup(QMenu * m,KviConsoleWindow * pConsole); + void fillRecentChannelsPopup(QMenu * m,KviConsoleWindow * pConsole); // void autoConnectToServers(); diff --git a/src/kvirc/kernel/KviCoreActions.cpp b/src/kvirc/kernel/KviCoreActions.cpp index 133cb323a..bd71fee9a 100644 --- a/src/kvirc/kernel/KviCoreActions.cpp +++ b/src/kvirc/kernel/KviCoreActions.cpp @@ -44,7 +44,7 @@ #include "KviCoreActionNames.h" #include "KviIrcConnectionServerInfo.h" #include "KviKvsScript.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QObject> @@ -449,7 +449,7 @@ void KviIrcContextDisplayAction::setup() connect(g_pMainWindow,SIGNAL(activeConnectionLagChanged()),this,SLOT(activeContextStateChanged())); } -bool KviIrcContextDisplayAction::addToPopupMenu(KviTalPopupMenu *) +bool KviIrcContextDisplayAction::addToPopupMenu(QMenu *) { // QT4SUX: Widgets can be no longer added to popup menus.. what about labels ? return true; @@ -521,10 +521,10 @@ KviSeparatorAction::KviSeparatorAction(QObject * pParent) } -bool KviSeparatorAction::addToPopupMenu(KviTalPopupMenu * p) +bool KviSeparatorAction::addToPopupMenu(QMenu * p) { if(!setupDone()) setup(); - p->insertSeparator(); + p->addSeparator(); return true; } @@ -629,13 +629,11 @@ void KviConnectAction::activate() c->connectOrDisconnect(); } -bool KviConnectAction::addToPopupMenu(KviTalPopupMenu *p) +bool KviConnectAction::addToPopupMenu(QMenu *p) { if(!setupDone())setup(); KviIrcContext * c = g_pMainWindow->activeContext(); - int id; - - + QAction * pAction; QString t; if(c) { @@ -644,31 +642,31 @@ bool KviConnectAction::addToPopupMenu(KviTalPopupMenu *p) case KviIrcContext::Idle: t = m_szConnectString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->insertItem(t,this,SLOT(activate())); + p->addAction(t,this,SLOT(activate())); break; case KviIrcContext::Connecting: case KviIrcContext::LoggingIn: t = m_szAbortConnectionString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->insertItem(t,this,SLOT(activate())); + p->addAction(t,this,SLOT(activate())); break; case KviIrcContext::Connected: t = m_szDisconnectString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->insertItem(t,this,SLOT(activate())); + p->addAction(t,this,SLOT(activate())); break; default: t = m_szConnectString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - id = p->insertItem(t,this,SLOT(activate())); - p->setItemEnabled(id,false); + pAction = p->addAction(t,this,SLOT(activate())); + pAction->setEnabled(false); break; } } else { t = m_szConnectString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - id = p->insertItem(t,this,SLOT(activate())); - p->setItemEnabled(id,false); + pAction = p->addAction(t,this,SLOT(activate())); + pAction->setEnabled(false); } return true; } @@ -723,9 +721,9 @@ void KviSubmenuAction::setup() KviKvsAction::setup(); if(!m_pPopup) { - m_pPopup = new KviTalPopupMenu(); + m_pPopup = new QMenu(); connect(m_pPopup,SIGNAL(aboutToShow()),this,SLOT(popupAboutToShow())); - connect(m_pPopup,SIGNAL(activated(int)),this,SLOT(popupActivated(int))); + connect(m_pPopup,SIGNAL(triggered(QAction *)),this,SLOT(popupActivated(QAction *))); } } @@ -733,15 +731,17 @@ void KviSubmenuAction::popupAboutToShow() { } -void KviSubmenuAction::popupActivated(int) +void KviSubmenuAction::popupActivated(QAction *) { } -bool KviSubmenuAction::addToPopupMenu(KviTalPopupMenu *p) +bool KviSubmenuAction::addToPopupMenu(QMenu *p) { if(!setupDone()) setup(); - int id = p->insertItem(*(smallIcon()),visibleName(),m_pPopup); - if(!isEnabled()) p->setItemEnabled(id,false); + QAction *pAction = p->addAction(*(smallIcon()),visibleName()); + pAction->setMenu(m_pPopup); + if(!isEnabled()) + pAction->setEnabled(false); return true; } @@ -787,18 +787,18 @@ void KviJoinChannelAction::popupAboutToShow() g_pApp->fillRecentChannelsPopup(m_pPopup,c); - m_pPopup->insertSeparator(); - m_pPopup->insertItem(*(smallIcon()),__tr2qs("Other...")); - m_pPopup->insertSeparator(); - m_pPopup->insertItem(__tr2qs("Clear Recent Channels List")); + m_pPopup->addSeparator(); + m_pPopup->addAction(*(smallIcon()),__tr2qs("Other...")); + m_pPopup->addSeparator(); + m_pPopup->addAction(__tr2qs("Clear Recent Channels List")); } -void KviJoinChannelAction::popupActivated(int id) +void KviJoinChannelAction::popupActivated(QAction *pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); if(!c)return; - QString szItemText = m_pPopup->text(id); + QString szItemText = pAction->text(); if(!szItemText.isEmpty()) { QString szText; @@ -842,19 +842,19 @@ void KviChangeNickAction::popupAboutToShow() g_pApp->fillRecentNicknamesPopup(m_pPopup,c); - m_pPopup->insertSeparator(); - m_pPopup->insertItem(*(smallIcon()),__tr2qs("Other...")); + m_pPopup->addSeparator(); + m_pPopup->addAction(*(smallIcon()),__tr2qs("Other...")); - m_pPopup->insertSeparator(); - m_pPopup->insertItem(*(smallIcon()),__tr2qs("Clear Recent Nicks List")); + m_pPopup->addSeparator(); + m_pPopup->addAction(*(smallIcon()),__tr2qs("Clear Recent Nicks List")); } -void KviChangeNickAction::popupActivated(int id) +void KviChangeNickAction::popupActivated(QAction *pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); if(!c)return; - QString text = m_pPopup->text(id); + QString text = pAction->text(); if(!text.isEmpty()) { QString szText; @@ -890,18 +890,18 @@ KviConnectToServerAction::KviConnectToServerAction(QObject * pParent) void KviConnectToServerAction::popupAboutToShow() { g_pApp->fillRecentServersPopup(m_pPopup); - m_pPopup->insertSeparator(); - m_pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs("Other...")); - m_pPopup->insertSeparator(); - m_pPopup->insertItem(__tr2qs("Clear Recent Servers List")); + m_pPopup->addSeparator(); + m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs("Other...")); + m_pPopup->addSeparator(); + m_pPopup->addAction(__tr2qs("Clear Recent Servers List")); } -void KviConnectToServerAction::popupActivated(int id) +void KviConnectToServerAction::popupActivated(QAction *pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); if(!c)return; - QString szItemText = m_pPopup->text(id); + QString szItemText = pAction->text(); if(!szItemText.isEmpty()) { if(szItemText == __tr2qs("Other...")) @@ -942,15 +942,18 @@ void KviChangeUserModeAction::popupAboutToShow() if(!c)return; m_pPopup->clear(); - int id; + QAction *pAction; QString szModes = g_pActiveWindow->connection()->serverInfo()->supportedUserModes(); - id = m_pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::WallOps)),__tr2qs("Wallops (+w)")); - m_pPopup->setItemChecked(id,c->connection()->userInfo()->hasUserMode('w')); - id = m_pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::ServerNotice)),__tr2qs("Server Notices (+s)")); - m_pPopup->setItemChecked(id,c->connection()->userInfo()->hasUserMode('s')); - id = m_pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Invisible)),__tr2qs("Invisible (+i)")); - m_pPopup->setItemChecked(id,c->connection()->userInfo()->hasUserMode('i')); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::WallOps)),__tr2qs("Wallops (+w)")); + pAction->setCheckable(true); + pAction->setChecked(c->connection()->userInfo()->hasUserMode('w')); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::ServerNotice)),__tr2qs("Server Notices (+s)")); + pAction->setCheckable(true); + pAction->setChecked(c->connection()->userInfo()->hasUserMode('s')); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Invisible)),__tr2qs("Invisible (+i)")); + pAction->setCheckable(true); + pAction->setChecked(c->connection()->userInfo()->hasUserMode('i')); szModes.replace("w",""); szModes.replace("s",""); @@ -959,17 +962,18 @@ void KviChangeUserModeAction::popupAboutToShow() { QChar ccc = szModes[0]; szModes.remove(0,1); - id = m_pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Mode)),QString("+%1 Mode").arg(ccc)); - m_pPopup->setItemChecked(id,c->connection()->userInfo()->hasUserMode(ccc.toLatin1())); + pAction = m_pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Mode)),QString("+%1 Mode").arg(ccc)); + pAction->setCheckable(true); + pAction->setChecked(c->connection()->userInfo()->hasUserMode(ccc.toLatin1())); } } -void KviChangeUserModeAction::popupActivated(int id) +void KviChangeUserModeAction::popupActivated(QAction *pAction) { KviConsoleWindow * c = g_pActiveWindow->console(); if(!c)return; - QString text = m_pPopup->text(id); + QString text = pAction->text(); if(!c->isConnected())return; if(!text.isEmpty()) { @@ -1074,11 +1078,11 @@ void KviGoAwayAction::setup() connect(g_pMainWindow,SIGNAL(activeConnectionAwayStateChanged()),this,SLOT(activeContextStateChanged())); } -bool KviGoAwayAction::addToPopupMenu(KviTalPopupMenu *p) +bool KviGoAwayAction::addToPopupMenu(QMenu *p) { if(!setupDone())setup(); KviIrcContext * c = g_pMainWindow->activeContext(); - int id; + QAction *pAction; QString t; if(c) { @@ -1088,23 +1092,23 @@ bool KviGoAwayAction::addToPopupMenu(KviTalPopupMenu *p) { t = m_szBackString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Away)),t,this,SLOT(activate())); + p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Away)),t,this,SLOT(activate())); } else { t = m_szAwayString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - p->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); + p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); } } else { t = m_szAwayString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - id = p->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); - p->setItemEnabled(id,false); + pAction = p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); + pAction->setEnabled(false); } } else { t = m_szAwayString; if(!m_szKeySequence.isEmpty())t += '\t' + m_szKeySequence; - id = p->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); - p->setItemEnabled(id,false); + pAction = p->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::NotAway)),t,this,SLOT(activate())); + pAction->setEnabled(false); } return true; } @@ -1153,7 +1157,7 @@ void KviIrcToolsAction::popupAboutToShow() if(a)a->addToPopupMenu(m_pPopup); } -void KviIrcToolsAction::popupActivated(int) +void KviIrcToolsAction::popupActivated(QAction *) { } @@ -1192,6 +1196,6 @@ void KviIrcOperationsAction::popupAboutToShow() if(a)a->addToPopupMenu(m_pPopup); } -void KviIrcOperationsAction::popupActivated(int) +void KviIrcOperationsAction::popupActivated(QAction *) { } diff --git a/src/kvirc/kernel/KviCoreActions.h b/src/kvirc/kernel/KviCoreActions.h index f62818261..f55d6b753 100644 --- a/src/kvirc/kernel/KviCoreActions.h +++ b/src/kvirc/kernel/KviCoreActions.h @@ -39,7 +39,7 @@ protected: QString m_szAbortConnectionString; QString m_szDisconnectString; public: - virtual bool addToPopupMenu(KviTalPopupMenu * pMenu); + virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); protected: virtual void setup(); @@ -55,11 +55,11 @@ class KviSeparatorAction : public KviAction public: KviSeparatorAction(QObject * pParent); public: - virtual bool addToPopupMenu(KviTalPopupMenu * pMenu); + virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); }; -class KviTalPopupMenu; +class QMenu; class KviSubmenuAction : public KviKvsAction { @@ -78,15 +78,15 @@ public: ); ~KviSubmenuAction(); protected: - KviTalPopupMenu * m_pPopup; + QMenu * m_pPopup; protected: virtual void setup(); public: - virtual bool addToPopupMenu(KviTalPopupMenu * pMenu); + virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); protected slots: virtual void popupAboutToShow(); - virtual void popupActivated(int iId); + virtual void popupActivated(QAction *pAction); }; class KviJoinChannelAction : public KviSubmenuAction @@ -96,7 +96,7 @@ public: KviJoinChannelAction(QObject * pParent); protected slots: virtual void popupAboutToShow(); - virtual void popupActivated(int); + virtual void popupActivated(QAction *pAction); }; class KviChangeNickAction : public KviSubmenuAction @@ -106,7 +106,7 @@ public: KviChangeNickAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(int); + void popupActivated(QAction *pAction); }; class KviConnectToServerAction : public KviSubmenuAction @@ -116,7 +116,7 @@ public: KviConnectToServerAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(int); + void popupActivated(QAction *pAction); }; class KviChangeUserModeAction : public KviSubmenuAction @@ -126,7 +126,7 @@ public: KviChangeUserModeAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(int); + void popupActivated(QAction *pAction); }; class KviIrcToolsAction : public KviSubmenuAction @@ -136,7 +136,7 @@ public: KviIrcToolsAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(int); + void popupActivated(QAction *pAction); }; @@ -147,7 +147,7 @@ public: KviIrcOperationsAction(QObject * pParent); protected slots: void popupAboutToShow(); - void popupActivated(int); + void popupActivated(QAction *pAction); }; #include "KviIrcToolBar.h" @@ -158,7 +158,7 @@ class KviIrcContextDisplayAction : public KviAction public: KviIrcContextDisplayAction(QObject * pParent); public: - virtual bool addToPopupMenu(KviTalPopupMenu * pMenu); + virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); virtual void activeContextStateChanged(); virtual void activeContextChanged(); @@ -176,7 +176,7 @@ protected: QString m_szAwayString; QString m_szBackString; public: - virtual bool addToPopupMenu(KviTalPopupMenu * pMenu); + virtual bool addToPopupMenu(QMenu * pMenu); virtual QAction * addToCustomToolBar(KviCustomToolBar * pTool); protected: virtual void setup(); diff --git a/src/kvirc/kernel/KviFileTransfer.cpp b/src/kvirc/kernel/KviFileTransfer.cpp index ec36ac5db..4f6c18292 100644 --- a/src/kvirc/kernel/KviFileTransfer.cpp +++ b/src/kvirc/kernel/KviFileTransfer.cpp @@ -28,7 +28,7 @@ #include "KviApplication.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" static KviFileTransferManager * g_pFileTransferManager = 0; diff --git a/src/kvirc/kernel/KviFileTransfer.h b/src/kvirc/kernel/KviFileTransfer.h index ec260f195..4cb8ff201 100644 --- a/src/kvirc/kernel/KviFileTransfer.h +++ b/src/kvirc/kernel/KviFileTransfer.h @@ -33,7 +33,7 @@ class KviFileTransfer; class KviWindow; -class KviTalPopupMenu; +class QMenu; class QPainter; // This is for the external extension @@ -107,7 +107,7 @@ public: virtual QString localFileName(); virtual QString retryCommand(); virtual int displayHeight(int iLineSpacing); - virtual void fillContextPopup(KviTalPopupMenu * m) = 0; + virtual void fillContextPopup(QMenu * m) = 0; virtual void die(); }; diff --git a/src/kvirc/kernel/KviIconManager.cpp b/src/kvirc/kernel/KviIconManager.cpp index 084c8da43..e1e25bdd8 100644 --- a/src/kvirc/kernel/KviIconManager.cpp +++ b/src/kvirc/kernel/KviIconManager.cpp @@ -471,7 +471,7 @@ bool KviIconWidget::eventFilter(QObject * pObject, QEvent * pEvent) if(bOk) emit selected(eIcon); - if(parentWidget() && isVisible() && parentWidget()->inherits("KviTalPopupMenu")) + if(parentWidget() && isVisible() && parentWidget()->inherits("QMenu")) { parentWidget()->close(); return true; diff --git a/src/kvirc/kvs/KviKvsPopupMenu.cpp b/src/kvirc/kvs/KviKvsPopupMenu.cpp index 9fed00ab1..5f8286b98 100644 --- a/src/kvirc/kvs/KviKvsPopupMenu.cpp +++ b/src/kvirc/kvs/KviKvsPopupMenu.cpp @@ -33,6 +33,7 @@ #include "KviCommandFormatter.h" #include "KviOptions.h" +#include <QWidgetAction> // popup names // rootname : the root popup @@ -134,7 +135,7 @@ KviKvsPopupMenuItemSeparator::~KviKvsPopupMenuItemSeparator() void KviKvsPopupMenuItemSeparator::fill(KviKvsPopupMenu * pMenu,KviKvsPopupMenuTopLevelData * pData,int) { if(!evaluateCondition(pData))return; - pMenu->insertSeparator(); + ((QMenu*)pMenu)->addSeparator(); } KviKvsPopupMenuItem * KviKvsPopupMenuItemSeparator::clone() const @@ -327,7 +328,7 @@ void KviKvsPopupMenuItemLabel::fill(KviKvsPopupMenu * pMenu,KviKvsPopupMenuTopLe m_pLabel->setStyleSheet("background-color: " + p.color(QPalette::Normal, QPalette::Mid).name()); if(pPix)m_pLabel->setPixmap(*pPix); - pMenu->insertItem(m_pLabel); + pMenu->addAction(new QWidgetAction(m_pLabel)); } @@ -358,10 +359,12 @@ void KviKvsPopupMenuItemItem::fill(KviKvsPopupMenu * pMenu,KviKvsPopupMenuTopLev if(!evaluateCondition(pData))return; QString szText = evaluateText(pData); QPixmap * pPix = evaluateIcon(pData); - int id; - if(pPix)id = pMenu->insertItem(*pPix,szText); - else id = pMenu->insertItem(szText); - pMenu->setItemParameter(id,iIdx); + QAction *pAction; + if(pPix) + pAction = pMenu->addAction(*pPix,szText); + else + pAction = pMenu->addAction(szText); + pAction->setData(iIdx); } KviKvsPopupMenuItem * KviKvsPopupMenuItemItem::clone() const @@ -408,11 +411,14 @@ void KviKvsPopupMenuItemMenu::fill(KviKvsPopupMenu * pMenu,KviKvsPopupMenuTopLev if(!evaluateCondition(pData))return; QString szText = evaluateText(pData); QPixmap * pPix = evaluateIcon(pData); - int id; + QAction *pAction; m_pMenu->setParentPopup(pMenu); - if(pPix)id = pMenu->insertItem(*pPix,szText,m_pMenu); - else id = pMenu->insertItem(szText,m_pMenu); - pMenu->setItemParameter(id,iIdx); + if(pPix) + pAction = pMenu->addAction(*pPix,szText); + else + pAction = pMenu->addAction(szText); + pAction->setMenu(m_pMenu); + pAction->setData(iIdx); } void KviKvsPopupMenuItemMenu::clear() @@ -489,10 +495,14 @@ void KviKvsPopupMenuItemExtMenu::fill(KviKvsPopupMenu * pMenu,KviKvsPopupMenuTop m_pMenu = new KviKvsPopupMenu(tmp); m_pMenu->copyFrom(source); m_pMenu->setParentPopup(pMenu); - int id; - if(pPix)id = pMenu->insertItem(*pPix,szText,m_pMenu); - else id = pMenu->insertItem(szText,m_pMenu); - pMenu->setItemParameter(id,iIdx); + + QAction *pAction; + if(pPix) + pAction = pMenu->addAction(*pPix,szText); + else + pAction = pMenu->addAction(szText); + pAction->setMenu(m_pMenu); + pAction->setData(iIdx); } else { pData->window()->output(KVI_OUT_PARSERWARNING,__tr2qs_ctx("Can't find the external popup '%Q': ignoring","kvs"),&m_szMenuName); } @@ -516,7 +526,7 @@ KviKvsPopupMenuTopLevelData::~KviKvsPopupMenuTopLevelData() KviKvsPopupMenu::KviKvsPopupMenu(const QString &szName) -:KviTalPopupMenu(0,szName) +:QMenu(szName, 0) { m_szName = szName; m_pItemList = new KviPointerList<KviKvsPopupMenuItem>; @@ -529,7 +539,7 @@ KviKvsPopupMenu::KviKvsPopupMenu(const QString &szName) m_pTopLevelData = 0; m_pTempTopLevelData = 0; m_bSetupDone = false; - connect(this,SIGNAL(activated(int)),this,SLOT(itemClicked(int))); + connect(this,SIGNAL(triggered(QAction*)),this,SLOT(itemClicked(QAction *))); connect(this,SIGNAL(aboutToShow()),this,SLOT(setupMenuContents())); } @@ -735,7 +745,7 @@ void KviKvsPopupMenu::doPopup(const QPoint & pnt,KviWindow * wnd,KviKvsVariantLi clearMenuContents(); m_pTempTopLevelData = new KviKvsPopupMenuTopLevelData(pParams,wnd); m_pTempTopLevelData->setTestMode(bTestMode); - KviTalPopupMenu::popup(pnt); + QMenu::popup(pnt); } void KviKvsPopupMenu::clearMenuContents() @@ -884,9 +894,12 @@ void KviKvsPopupMenu::executeEpilogues(KviKvsPopupMenuTopLevelData * pData) } -void KviKvsPopupMenu::itemClicked(int itemId) +void KviKvsPopupMenu::itemClicked(QAction *pAction) { - int param = itemParameter(itemId); + bool bOk=false; + int param = pAction->data().toInt(&bOk); + if(!bOk) + return; KviKvsPopupMenuItem * it = m_pItemList->at(param); KviKvsPopupMenuTopLevelData * d = topLevelData(); if(it && d) diff --git a/src/kvirc/kvs/KviKvsPopupMenu.h b/src/kvirc/kvs/KviKvsPopupMenu.h index 4f40e0a49..2e117864f 100644 --- a/src/kvirc/kvs/KviKvsPopupMenu.h +++ b/src/kvirc/kvs/KviKvsPopupMenu.h @@ -32,7 +32,7 @@ #include "KviKvsScript.h" #include "KviKvsRunTimeContext.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QLabel> #include <QPixmap> @@ -229,7 +229,7 @@ public: }; -class KVIRC_API KviKvsPopupMenu : public KviTalPopupMenu +class KVIRC_API KviKvsPopupMenu : public QMenu { friend class KviKvsPopupMenuItemMenu; friend class KviKvsPopupManager; @@ -260,7 +260,7 @@ public: bool isHardLocked(); void lock(KviKvsPopupMenuTopLevelData::LockStatus eLock); KviKvsPopupMenu * addPopup(const QString &szItemName,const QString &szText,const QString &szIcon,const QString &szCondition); - void addSeparator(const QString &szItemName,const QString &szCondition); + void addSeparator(const QString &szItemName,const QString &szCondition); void addLabel(const QString &szItemName,const QString &szText,const QString &szIcon,const QString &szCondition); void addItem(const QString &szItemName,const QString &szCode,const QString &szText,const QString &szIcon,const QString &szCondition); void addExtPopup(const QString &szItemName,const QString &szPopupName,const QString &szText,const QString &szIcon,const QString &szCondition); @@ -288,7 +288,7 @@ private slots: protected: void clearMenuContents(); protected slots: - void itemClicked(int itemId); + void itemClicked(QAction *pAction); signals: void testModeItemClicked(KviKvsPopupMenuItem * it); }; diff --git a/src/kvirc/ui/KviChannelWindow.cpp b/src/kvirc/ui/KviChannelWindow.cpp index 71afb8617..df4afcb8d 100644 --- a/src/kvirc/ui/KviChannelWindow.cpp +++ b/src/kvirc/ui/KviChannelWindow.cpp @@ -54,7 +54,7 @@ #include "KviPointerHashTable.h" #include "KviKvsScript.h" #include "KviKvsEventTriggers.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #ifdef COMPILE_CRYPT_SUPPORT #include "KviCryptEngine.h" diff --git a/src/kvirc/ui/KviConsoleWindow.cpp b/src/kvirc/ui/KviConsoleWindow.cpp index 9d906376d..1f8673e35 100644 --- a/src/kvirc/ui/KviConsoleWindow.cpp +++ b/src/kvirc/ui/KviConsoleWindow.cpp @@ -68,7 +68,7 @@ #include "KviKvsScript.h" #include "KviKvsEventTriggers.h" #include "KviTalHBox.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviNickColors.h" #ifdef COMPILE_SSL_SUPPORT diff --git a/src/kvirc/ui/KviCustomToolBar.cpp b/src/kvirc/ui/KviCustomToolBar.cpp index fc39897e9..dedd3ca56 100644 --- a/src/kvirc/ui/KviCustomToolBar.cpp +++ b/src/kvirc/ui/KviCustomToolBar.cpp @@ -30,7 +30,7 @@ #include "KviApplication.h" #include "KviActionManager.h" #include "KviCustomToolBarDescriptor.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QCursor> #include <QLayout> diff --git a/src/kvirc/ui/KviImageDialog.cpp b/src/kvirc/ui/KviImageDialog.cpp index f299ed8c1..61a51100d 100644 --- a/src/kvirc/ui/KviImageDialog.cpp +++ b/src/kvirc/ui/KviImageDialog.cpp @@ -127,13 +127,13 @@ KviImageDialog::KviImageDialog(QWidget * par, { tmp += ": "; tmp += __tr2qs("Small icons"); - m_pTypeComboBox->insertItem(0,tmp); + m_pTypeComboBox->insertItem(0,tmp); m_pTypeList->append(KID_TYPE_BUILTIN_IMAGES_SMALL); } if(types & KID_TYPE_FULL_PATH) { - m_pTypeComboBox->insertItem(m_pTypeComboBox->count(),__tr2qs("Full path")); + m_pTypeComboBox->insertItem(m_pTypeComboBox->count(),__tr2qs("Full path")); m_pTypeList->append(KID_TYPE_FULL_PATH); } diff --git a/src/kvirc/ui/KviInput.cpp b/src/kvirc/ui/KviInput.cpp index 51bb01971..8fe7b3f03 100644 --- a/src/kvirc/ui/KviInput.cpp +++ b/src/kvirc/ui/KviInput.cpp @@ -41,7 +41,7 @@ #include "KviHistoryWindow.h" #include "KviUserInput.h" #include "KviShortcut.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalHBox.h" #include "KviTalToolTip.h" @@ -66,7 +66,7 @@ extern KviColorWindow * g_pColorWindow; extern KviTextIconWindow * g_pTextIconWindow; extern KviHistoryWindowWidget * g_pHistoryWindow; -extern KviTalPopupMenu * g_pInputPopup; +extern QMenu * g_pInputPopup; KviInput::KviInput(KviWindow * pPar, KviUserListView * pView) : QWidget(pPar) diff --git a/src/kvirc/ui/KviInput.h b/src/kvirc/ui/KviInput.h index 7bd177894..61422d0eb 100644 --- a/src/kvirc/ui/KviInput.h +++ b/src/kvirc/ui/KviInput.h @@ -43,7 +43,7 @@ class KviUserListView; class KviWindow; class KviInputEditor; class KviTalHBox; -class KviTalPopupMenu; +class QMenu; class KviScriptEditor; /** diff --git a/src/kvirc/ui/KviInputEditor.cpp b/src/kvirc/ui/KviInputEditor.cpp index 723f1f8db..7ddc74453 100644 --- a/src/kvirc/ui/KviInputEditor.cpp +++ b/src/kvirc/ui/KviInputEditor.cpp @@ -42,7 +42,7 @@ #include "KviPixmapUtils.h" #include "KviQString.h" #include "kvi_out.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTextIconWindow.h" #include "KviTextIconManager.h" #include "KviUserInput.h" @@ -64,7 +64,7 @@ #include <QInputContext> // from KviApplication.cpp -extern KviTalPopupMenu * g_pInputPopup; +extern QMenu * g_pInputPopup; extern KviTextIconWindow * g_pTextIconWindow; extern KviColorWindow * g_pColorWindow; @@ -122,8 +122,8 @@ KviInputEditor::KviInputEditor(QWidget * pPar, KviWindow * pWnd, KviUserListView setFocusPolicy(Qt::StrongFocus); setAcceptDrops(true); - m_pIconMenu = new KviTalPopupMenu(); - connect(m_pIconMenu,SIGNAL(activated(int)),this,SLOT(iconPopupActivated(int))); + m_pIconMenu = new QMenu(); + connect(m_pIconMenu,SIGNAL(triggered(QAction*)),this,SLOT(iconPopupActivated(QAction *))); setCursor(Qt::IBeamCursor); @@ -798,37 +798,37 @@ void KviInputEditor::mousePressEvent(QMouseEvent * e) } } - int iId = g_pInputPopup->insertItem(__tr2qs("&Undo") + ACCEL_KEY(Z),this,SLOT(undo())); - g_pInputPopup->setItemEnabled(iId,isUndoAvailable()); - iId = g_pInputPopup->insertItem(__tr2qs("&Redo") + ACCEL_KEY(Y),this,SLOT(redo())); - g_pInputPopup->setItemEnabled(iId,isRedoAvailable()); - iId = g_pInputPopup->insertItem(__tr2qs("Cu&t") + ACCEL_KEY(X),this,SLOT(cut())); - g_pInputPopup->setItemEnabled(iId,hasSelection()); - iId = g_pInputPopup->insertItem(__tr2qs("&Copy") + ACCEL_KEY(C),this,SLOT(copyToClipboard())); - g_pInputPopup->setItemEnabled(iId,hasSelection()); - iId = g_pInputPopup->insertItem(__tr2qs("&Paste") + ACCEL_KEY(V),this,SLOT(pasteClipboardWithConfirmation())); - g_pInputPopup->setItemEnabled(iId,!szClip.isEmpty() && !m_bReadOnly); - iId = g_pInputPopup->insertItem(__tr2qs("Paste (Slowly)"),this,SLOT(pasteSlow())); + QAction * pAction = g_pInputPopup->addAction(__tr2qs("&Undo") + ACCEL_KEY(Z),this,SLOT(undo())); + pAction->setEnabled(isUndoAvailable()); + pAction = g_pInputPopup->addAction(__tr2qs("&Redo") + ACCEL_KEY(Y),this,SLOT(redo())); + pAction->setEnabled(isRedoAvailable()); + pAction = g_pInputPopup->addAction(__tr2qs("Cu&t") + ACCEL_KEY(X),this,SLOT(cut())); + pAction->setEnabled(hasSelection()); + pAction = g_pInputPopup->addAction(__tr2qs("&Copy") + ACCEL_KEY(C),this,SLOT(copyToClipboard())); + pAction->setEnabled(hasSelection()); + pAction = g_pInputPopup->addAction(__tr2qs("&Paste") + ACCEL_KEY(V),this,SLOT(pasteClipboardWithConfirmation())); + pAction->setEnabled(!szClip.isEmpty() && !m_bReadOnly); + pAction = g_pInputPopup->addAction(__tr2qs("Paste (Slowly)"),this,SLOT(pasteSlow())); if ((iType == KviWindow::Channel) || (iType == KviWindow::Query) || (iType == KviWindow::DccChat)) - g_pInputPopup->setItemEnabled(iId,!szClip.isEmpty() && !m_bReadOnly); + pAction->setEnabled(!szClip.isEmpty() && !m_bReadOnly); else - g_pInputPopup->setItemEnabled(iId,false); - iId = g_pInputPopup->insertItem(__tr2qs("Paste &File") + ACCEL_KEY(L),this,SLOT(pasteFile())); + pAction->setEnabled(false); + pAction = g_pInputPopup->addAction(__tr2qs("Paste &File") + ACCEL_KEY(L),this,SLOT(pasteFile())); if ((iType != KviWindow::Channel) && (iType != KviWindow::Query) && (iType != KviWindow::DccChat)) - g_pInputPopup->setItemEnabled(iId,false); + pAction->setEnabled(false); else - g_pInputPopup->setItemEnabled(iId,!m_bReadOnly); + pAction->setEnabled(!m_bReadOnly); if(m_bSpSlowFlag) { - iId = g_pInputPopup->insertItem(__tr2qs("Stop Paste"),this,SLOT(stopPasteSlow())); /*G&N 2005*/ + pAction = g_pInputPopup->addAction(__tr2qs("Stop Paste"),this,SLOT(stopPasteSlow())); /*G&N 2005*/ } - iId = g_pInputPopup->insertItem(__tr2qs("Clear"),this,SLOT(clear())); - g_pInputPopup->setItemEnabled(iId,!m_szTextBuffer.isEmpty() && !m_bReadOnly); - g_pInputPopup->insertSeparator(); - iId = g_pInputPopup->insertItem(__tr2qs("Select All"),this,SLOT(selectAll())); - g_pInputPopup->setItemEnabled(iId,(!m_szTextBuffer.isEmpty())); + pAction = g_pInputPopup->addAction(__tr2qs("Clear"),this,SLOT(clear())); + pAction->setEnabled(!m_szTextBuffer.isEmpty() && !m_bReadOnly); + g_pInputPopup->addSeparator(); + pAction = g_pInputPopup->addAction(__tr2qs("Select All"),this,SLOT(selectAll())); + pAction->setEnabled((!m_szTextBuffer.isEmpty())); - g_pInputPopup->insertSeparator(); + g_pInputPopup->addSeparator(); m_pIconMenu->clear(); KviPointerHashTable<QString,KviTextIcon> * d = g_pTextIconManager->textIconDict(); @@ -851,11 +851,12 @@ void KviInputEditor::mousePressEvent(QMouseEvent * e) if(pIcon) { pPix = pIcon->pixmap(); - if(pPix) m_pIconMenu->insertItem(*pPix,*iter); + if(pPix) m_pIconMenu->addAction(*pPix,*iter); } } - g_pInputPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::BigGrin)),__tr2qs("Insert Icon"),m_pIconMenu); + pAction = g_pInputPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::BigGrin)),__tr2qs("Insert Icon")); + pAction->setMenu(m_pIconMenu); QInputContext *qic = g_pApp->inputContext(); if (qic) { @@ -870,11 +871,11 @@ void KviInputEditor::mousePressEvent(QMouseEvent * e) } } -void KviInputEditor::iconPopupActivated(int iId) +void KviInputEditor::iconPopupActivated(QAction *pAction) { if(!m_bReadOnly) { - QString szText = m_pIconMenu->text(iId); + QString szText = pAction->text(); if(!szText.isEmpty()) { szText.prepend(KviControlCodes::Icon); diff --git a/src/kvirc/ui/KviInputEditor.h b/src/kvirc/ui/KviInputEditor.h index fbaae5e90..c29b879d2 100644 --- a/src/kvirc/ui/KviInputEditor.h +++ b/src/kvirc/ui/KviInputEditor.h @@ -52,7 +52,7 @@ class QKeyEvent; class QDragEnterEvent; class KviUserListView; -class KviTalPopupMenu; +class QMenu; #define KVI_INPUT_MAX_BUFFER_SIZE 400 #define KVI_INPUT_XTRAPADDING 1 @@ -148,7 +148,7 @@ protected: KviCString m_szAltKeyCode; KviWindow * m_pKviWindow; QWidget * m_pInputParent; - KviTalPopupMenu * m_pIconMenu; + QMenu * m_pIconMenu; bool m_bReadOnly; /** @@ -541,7 +541,7 @@ public slots: * \param iId The id of the icon * \return void */ - void iconPopupActivated(int iId); + void iconPopupActivated(QAction *pAction); /** * \brief Copies the text to the system clipboard diff --git a/src/kvirc/ui/KviIrcToolBar.cpp b/src/kvirc/ui/KviIrcToolBar.cpp index 63d25bbe5..b9dd06ae8 100644 --- a/src/kvirc/ui/KviIrcToolBar.cpp +++ b/src/kvirc/ui/KviIrcToolBar.cpp @@ -40,7 +40,7 @@ #include "KviIrcConnectionUserInfo.h" #include "KviIrcContext.h" #include "KviLagMeter.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviMdiManager.h" #include "KviPixmapUtils.h" diff --git a/src/kvirc/ui/KviIrcToolBar.h b/src/kvirc/ui/KviIrcToolBar.h index 2d58852be..f3eda4d66 100644 --- a/src/kvirc/ui/KviIrcToolBar.h +++ b/src/kvirc/ui/KviIrcToolBar.h @@ -35,7 +35,7 @@ #include <QToolButton> #include <QLabel> -class KviTalPopupMenu; +class QMenu; // diff --git a/src/kvirc/ui/KviIrcView.cpp b/src/kvirc/ui/KviIrcView.cpp index 055f79220..0d024f9f9 100644 --- a/src/kvirc/ui/KviIrcView.cpp +++ b/src/kvirc/ui/KviIrcView.cpp @@ -96,7 +96,7 @@ #include "KviIrcConnection.h" #include "KviMdiManager.h" #include "KviUserInput.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviAnimatedPixmap.h" #include "KviPixmapUtils.h" #include "KviTrayIcon.h" @@ -2073,24 +2073,24 @@ QSize KviIrcView::sizeHint() const void KviIrcView::showToolsPopup() { if(!m_pToolsPopup) - m_pToolsPopup = new KviTalPopupMenu(this); + m_pToolsPopup = new QMenu(this); m_pToolsPopup->clear(); if(m_pToolWidget) - m_pToolsPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Search)),__tr2qs("Hide Filter"),this,SLOT(toggleToolWidget())); + m_pToolsPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Search)),__tr2qs("Hide Filter"),this,SLOT(toggleToolWidget())); else - m_pToolsPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Search)),__tr2qs("Show Filter"),this,SLOT(toggleToolWidget())); + m_pToolsPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Search)),__tr2qs("Show Filter"),this,SLOT(toggleToolWidget())); - m_pToolsPopup->insertSeparator(); - m_pToolsPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Plus)),__tr2qs("Zoom In"),this,SLOT(increaseFontSize())); - m_pToolsPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Minus)),__tr2qs("Zoom Out"),this,SLOT(decreaseFontSize())); - m_pToolsPopup->insertItem(__tr2qs("Choose Temporary Font..."),this,SLOT(chooseFont())); - m_pToolsPopup->insertItem(__tr2qs("Choose Temporary Background..."),this,SLOT(chooseBackground())); - int id = m_pToolsPopup->insertItem(__tr2qs("Reset Temporary Background"),this,SLOT(resetBackground())); - m_pToolsPopup->setItemEnabled(id,m_pPrivateBackgroundPixmap != 0); - m_pToolsPopup->insertSeparator(); - m_pToolsPopup->insertItem(__tr2qs("Clear Buffer"),this,SLOT(clearBuffer())); + m_pToolsPopup->addSeparator(); + m_pToolsPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Plus)),__tr2qs("Zoom In"),this,SLOT(increaseFontSize())); + m_pToolsPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Minus)),__tr2qs("Zoom Out"),this,SLOT(decreaseFontSize())); + m_pToolsPopup->addAction(__tr2qs("Choose Temporary Font..."),this,SLOT(chooseFont())); + m_pToolsPopup->addAction(__tr2qs("Choose Temporary Background..."),this,SLOT(chooseBackground())); + QAction * pAction = m_pToolsPopup->addAction(__tr2qs("Reset Temporary Background"),this,SLOT(resetBackground())); + pAction->setEnabled(m_pPrivateBackgroundPixmap != 0); + m_pToolsPopup->addSeparator(); + m_pToolsPopup->addAction(__tr2qs("Clear Buffer"),this,SLOT(clearBuffer())); QSize s = m_pToolsPopup->sizeHint(); diff --git a/src/kvirc/ui/KviIrcView.h b/src/kvirc/ui/KviIrcView.h index 0fe5466ec..79affb269 100644 --- a/src/kvirc/ui/KviIrcView.h +++ b/src/kvirc/ui/KviIrcView.h @@ -37,7 +37,7 @@ class QScrollBar; class QLineEdit; class QFile; class QFontMetrics; -class KviTalPopupMenu; +class QMenu; class KviWindow; class KviMainWindow; @@ -94,7 +94,7 @@ private: QPixmap * m_pPrivateBackgroundPixmap; QScrollBar * m_pScrollBar; QToolButton * m_pToolsButton; - KviTalPopupMenu * m_pToolsPopup; + QMenu * m_pToolsPopup; KviIrcViewToolWidget * m_pToolWidget; diff --git a/src/kvirc/ui/KviIrcView_tools.cpp b/src/kvirc/ui/KviIrcView_tools.cpp index e3cf7e272..a9e182804 100644 --- a/src/kvirc/ui/KviIrcView_tools.cpp +++ b/src/kvirc/ui/KviIrcView_tools.cpp @@ -154,9 +154,9 @@ KviIrcViewToolWidget::KviIrcViewToolWidget(KviIrcView * pParent) pLabel = new QLabel(__tr2qs("Pattern:"),m_pOptionsWidget); pOptionsLayout->addWidget(pLabel,8,0); m_pSearchMode = new QComboBox(m_pOptionsWidget); - m_pSearchMode->insertItem(PlainText, __tr2qs("Plain Text")); - m_pSearchMode->insertItem(Wildcards, __tr2qs("Wildcards")); - m_pSearchMode->insertItem(RegExp, __tr2qs("RegExp")); + m_pSearchMode->insertItem(PlainText, __tr2qs("Plain Text")); + m_pSearchMode->insertItem(Wildcards, __tr2qs("Wildcards")); + m_pSearchMode->insertItem(RegExp, __tr2qs("RegExp")); pOptionsLayout->addWidget(m_pSearchMode,8,1); pLabel = new QLabel(__tr2qs("Match:"),m_pOptionsWidget); diff --git a/src/kvirc/ui/KviMainWindow.cpp b/src/kvirc/ui/KviMainWindow.cpp index 5b8887395..5264c8a83 100644 --- a/src/kvirc/ui/KviMainWindow.cpp +++ b/src/kvirc/ui/KviMainWindow.cpp @@ -58,7 +58,7 @@ #include "KviIrcView.h" #include "KviKvsScript.h" #include "KviKvsEventTriggers.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTextIconManager.h" #include "KviShortcut.h" @@ -349,7 +349,12 @@ void KviMainWindow::accelActivated() void KviMainWindow::executeInternalCommand(int index) { - KviKvsScript::run(kvi_getInternalCommandBuffer(index),firstConsole()); + KviConsoleWindow *pConsole=0; + if(activeContext() && activeContext()->console()) + pConsole=activeContext()->console(); + else + pConsole=firstConsole(); + KviKvsScript::run(kvi_getInternalCommandBuffer(index),pConsole); } @@ -958,14 +963,14 @@ void KviMainWindow::toggleStatusBar() } } -void KviMainWindow::fillToolBarsPopup(KviTalPopupMenu * p) +void KviMainWindow::fillToolBarsPopup(QMenu * p) { p->clear(); - disconnect(p,SIGNAL(activated(int)),this,SLOT(toolbarsPopupSelected(int))); // just to be sure - connect(p,SIGNAL(activated(int)),this,SLOT(toolbarsPopupSelected(int))); + disconnect(p,SIGNAL(triggered(QAction *)),this,SLOT(toolbarsPopupSelected(QAction *))); // just to be sure + connect(p,SIGNAL(triggered(QAction *)),this,SLOT(toolbarsPopupSelected(QAction *))); - int id; + QAction *pAction=0; int cnt = 0; KviModuleExtensionDescriptorList * l = g_pModuleExtensionManager->getExtensionList("toolbar"); @@ -974,10 +979,13 @@ void KviMainWindow::fillToolBarsPopup(KviTalPopupMenu * p) for(KviModuleExtensionDescriptor * d = l->first();d;d = l->next()) { QString label = __tr2qs("Show %1").arg(d->visibleName()); - if(d->icon())id = p->insertItem(*(d->icon()),label); - else id = p->insertItem(label); - p->setItemChecked(id,moduleExtensionToolBar(d->id())); - p->setItemParameter(id,d->id()); + if(d->icon()) + pAction = p->addAction(*(d->icon()),label); + else + pAction = p->addAction(label); + pAction->setCheckable(true); + pAction->setChecked(moduleExtensionToolBar(d->id())); + pAction->setData(d->id()); cnt++; } } @@ -987,7 +995,7 @@ void KviMainWindow::fillToolBarsPopup(KviTalPopupMenu * p) if(it2.current()) { if(cnt > 0) - p->insertSeparator(); + p->addSeparator(); while(KviCustomToolBarDescriptor * d = it2.current()) { @@ -998,24 +1006,25 @@ void KviMainWindow::fillToolBarsPopup(KviTalPopupMenu * p) QPixmap * pix = g_pIconManager->getImage(d->iconId()); if(pix) { - id = p->insertItem(*pix,label); + pAction = p->addAction(*pix,label); } else { - id = p->insertItem(label); + pAction = p->addAction(label); } } else { - id = p->insertItem(label); + pAction = p->addAction(label); } - p->setItemParameter(id,d->internalId()); - p->setItemChecked(id,d->toolBar()); + pAction->setData(d->internalId()); + pAction->setCheckable(true); + pAction->setChecked(d->toolBar()); ++it2; cnt++; } } if(cnt > 0) - p->insertSeparator(); + p->addSeparator(); - p->insertItem( + p->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::ToolBar)), __tr2qs("Customize..."), this, @@ -1028,13 +1037,12 @@ void KviMainWindow::customizeToolBars() KviKvsScript::run("toolbareditor.open",g_pActiveWindow); } -void KviMainWindow::toolbarsPopupSelected(int id) +void KviMainWindow::toolbarsPopupSelected(QAction *pAction) { - const QObject * o = sender(); - if(!o)return; - if(!o->inherits("KviTalPopupMenu"))return; - - int idext = ((KviTalPopupMenu *)o)->itemParameter(id); + bool bOk=false; + int idext=pAction->data().toInt(&bOk); + if(!bOk) + return; KviCustomToolBarDescriptor * dd = KviCustomToolBarManager::instance()->findDescriptorByInternalId(idext); if(dd) diff --git a/src/kvirc/ui/KviMainWindow.h b/src/kvirc/ui/KviMainWindow.h index 178bbd847..4035c5fac 100644 --- a/src/kvirc/ui/KviMainWindow.h +++ b/src/kvirc/ui/KviMainWindow.h @@ -49,7 +49,7 @@ class KviMexToolBar; class KviIrcContext; class KviIrcConnection; class KviStatusBar; -class KviTalPopupMenu; +class QMenu; class KviTrayIcon; class QShortcut; @@ -146,8 +146,8 @@ public: KviMexToolBar * moduleExtensionToolBar(int extensionId); // Helper to fill the toolbars popup // it is used by KviToolBar and KviMenuBar - void fillToolBarsPopup(KviTalPopupMenu * p); - void fillIconSizePopup(KviTalPopupMenu * p); + void fillToolBarsPopup(QMenu * p); + void fillIconSizePopup(QMenu * p); // Set the size of the icons used by the whole app // Allowed sizes are 16, 22, 32 and 48 void setIconSize(unsigned int uSize); @@ -205,7 +205,7 @@ protected slots: void minimizeWindow(); void accelActivated(); - void toolbarsPopupSelected(int id); + void toolbarsPopupSelected(QAction *pAction); void iconSizePopupSelected(QAction * pAction); void buttonStylePopupSelected(QAction * pAction); signals: diff --git a/src/kvirc/ui/KviMdiChild.cpp b/src/kvirc/ui/KviMdiChild.cpp index ca33778a3..78ebcda28 100644 --- a/src/kvirc/ui/KviMdiChild.cpp +++ b/src/kvirc/ui/KviMdiChild.cpp @@ -39,7 +39,7 @@ #include "KviIconManager.h" #include "KviMainWindow.h" #include "KviWindow.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviIrcConnection.h" #include "KviIrcConnectionTarget.h" #include "KviIrcContext.h" diff --git a/src/kvirc/ui/KviMdiManager.cpp b/src/kvirc/ui/KviMdiManager.cpp index 72724df95..11f14c32e 100644 --- a/src/kvirc/ui/KviMdiManager.cpp +++ b/src/kvirc/ui/KviMdiManager.cpp @@ -39,7 +39,7 @@ #include "KviMainWindow.h" #include "KviMenuBar.h" #include "KviApplication.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalHBox.h" #include <QMenuBar> @@ -76,11 +76,11 @@ KviMdiManager::KviMdiManager(QWidget * parent,const char *pcName) m_bIgnoreSDIModeChange = false; setIsInSDIMode(KVI_OPTION_BOOL(KviOption_boolMdiManagerInSdiMode)); - m_pWindowPopup = new KviTalPopupMenu(this); - connect(m_pWindowPopup,SIGNAL(activated(int)),this,SLOT(menuActivated(int))); + m_pWindowPopup = new QMenu(this); + connect(m_pWindowPopup,SIGNAL(triggered(QAction *)),this,SLOT(menuActivated(QAction *))); connect(m_pWindowPopup,SIGNAL(aboutToShow()),this,SLOT(fillWindowPopup())); - m_pTileMethodPopup = new KviTalPopupMenu(this); - connect(m_pTileMethodPopup,SIGNAL(activated(int)),this,SLOT(tileMethodMenuActivated(int))); + m_pTileMethodPopup = new QMenu(this); + connect(m_pTileMethodPopup,SIGNAL(triggered(QAction *)),this,SLOT(tileMethodMenuActivated(QAction *))); setAutoFillBackground(false); viewport()->setAutoFillBackground(false); @@ -225,47 +225,64 @@ void KviMdiManager::fillWindowPopup() { m_pWindowPopup->clear(); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::CascadeWindows)),(__tr2qs("&Cascade Windows")),this,SLOT(cascadeWindows())); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::CascadeWindows)),(__tr2qs("Cascade &Maximized")),this,SLOT(cascadeMaximized())); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::CascadeWindows)),(__tr2qs("&Cascade Windows")),this,SLOT(cascadeWindows())); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::CascadeWindows)),(__tr2qs("Cascade &Maximized")),this,SLOT(cascadeMaximized())); - m_pWindowPopup->insertSeparator(); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("&Tile Windows")),this,SLOT(tile())); + m_pWindowPopup->addSeparator(); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("&Tile Windows")),this,SLOT(tile())); m_pTileMethodPopup->clear(); - int id = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::AutoTileWindows)),(__tr2qs("&Auto Tile")),this,SLOT(toggleAutoTile())); - m_pTileMethodPopup->setItemChecked(id,KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)); - m_pTileMethodPopup->setItemParameter(id,-1); - m_pTileMethodPopup->insertSeparator(); - int ids[KVI_NUM_TILE_METHODS]; - ids[KVI_TILE_METHOD_ANODINE] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Anodine's Full Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_ANODINE],KVI_TILE_METHOD_ANODINE); - ids[KVI_TILE_METHOD_PRAGMA4HOR] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Horizontal 4-Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_PRAGMA4HOR],KVI_TILE_METHOD_PRAGMA4HOR); - ids[KVI_TILE_METHOD_PRAGMA4VER] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Vertical 4-Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_PRAGMA4VER],KVI_TILE_METHOD_PRAGMA4VER); - ids[KVI_TILE_METHOD_PRAGMA6HOR] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Horizontal 6-Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_PRAGMA6HOR],KVI_TILE_METHOD_PRAGMA6HOR); - ids[KVI_TILE_METHOD_PRAGMA6VER] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Vertical 6-Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_PRAGMA6VER],KVI_TILE_METHOD_PRAGMA6VER); - ids[KVI_TILE_METHOD_PRAGMA9HOR] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Horizontal 9-Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_PRAGMA9HOR],KVI_TILE_METHOD_PRAGMA9HOR); - ids[KVI_TILE_METHOD_PRAGMA9VER] = m_pTileMethodPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Vertical 9-Grid"))); - m_pTileMethodPopup->setItemParameter(ids[KVI_TILE_METHOD_PRAGMA9VER],KVI_TILE_METHOD_PRAGMA9VER); + QAction * pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::AutoTileWindows)),(__tr2qs("&Auto Tile")),this,SLOT(toggleAutoTile())); + pAction->setCheckable(true); + pAction->setChecked(KVI_OPTION_BOOL(KviOption_boolAutoTileWindows)); + pAction->setData(-1); + m_pTileMethodPopup->addSeparator(); - if(KVI_OPTION_UINT(KviOption_uintTileMethod) >= KVI_NUM_TILE_METHODS)KVI_OPTION_UINT(KviOption_uintTileMethod) = KVI_TILE_METHOD_PRAGMA9HOR; - m_pTileMethodPopup->setItemChecked(ids[KVI_OPTION_UINT(KviOption_uintTileMethod)],true); + if(KVI_OPTION_UINT(KviOption_uintTileMethod) >= KVI_NUM_TILE_METHODS) + KVI_OPTION_UINT(KviOption_uintTileMethod) = KVI_TILE_METHOD_PRAGMA9HOR; - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Tile Met&hod")),m_pTileMethodPopup); + uint uSelectedMethod= KVI_OPTION_UINT(KviOption_uintTileMethod); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Anodine's Full Grid"))); + pAction->setData(KVI_TILE_METHOD_ANODINE); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_ANODINE) pAction->setChecked(true); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Horizontal 4-Grid"))); + pAction->setData(KVI_TILE_METHOD_PRAGMA4HOR); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_PRAGMA4HOR) pAction->setChecked(true); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Vertical 4-Grid"))); + pAction->setData(KVI_TILE_METHOD_PRAGMA4VER); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_PRAGMA4VER) pAction->setChecked(true); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Horizontal 6-Grid"))); + pAction->setData(KVI_TILE_METHOD_PRAGMA6HOR); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_PRAGMA6HOR) pAction->setChecked(true); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Vertical 6-Grid"))); + pAction->setData(KVI_TILE_METHOD_PRAGMA6VER); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_PRAGMA6VER) pAction->setChecked(true); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Horizontal 9-Grid"))); + pAction->setData(KVI_TILE_METHOD_PRAGMA9HOR); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_PRAGMA9HOR) pAction->setChecked(true); + pAction = m_pTileMethodPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Pragma's Vertical 9-Grid"))); + pAction->setData(KVI_TILE_METHOD_PRAGMA9VER); + pAction->setCheckable(true); + if(uSelectedMethod==KVI_TILE_METHOD_PRAGMA9VER) pAction->setChecked(true); - m_pWindowPopup->insertSeparator(); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::MaxVertical)),(__tr2qs("Expand &Vertically")),this,SLOT(expandVertical())); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::MaxHorizontal)),(__tr2qs("Expand &Horizontally")),this,SLOT(expandHorizontal())); + pAction = m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TileWindows)),(__tr2qs("Tile Met&hod"))); + pAction->setMenu(m_pTileMethodPopup); - m_pWindowPopup->insertSeparator(); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Minimize)),(__tr2qs("Mi&nimize All")),this,SLOT(minimizeAll())); - m_pWindowPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Restore)),(__tr2qs("&Restore all")),this,SLOT(restoreAll())); + m_pWindowPopup->addSeparator(); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::MaxVertical)),(__tr2qs("Expand &Vertically")),this,SLOT(expandVertical())); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::MaxHorizontal)),(__tr2qs("Expand &Horizontally")),this,SLOT(expandHorizontal())); - m_pWindowPopup->insertSeparator(); + m_pWindowPopup->addSeparator(); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Minimize)),(__tr2qs("Mi&nimize All")),this,SLOT(minimizeAll())); + m_pWindowPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Restore)),(__tr2qs("&Restore all")),this,SLOT(restoreAll())); + + m_pWindowPopup->addSeparator(); int i = 100; QString szItem; QString szCaption; @@ -307,10 +324,12 @@ void KviMdiManager::fillWindowPopup() if (pix && !(pix->isNull())) { - m_pWindowPopup->insertItem(*pix, szItem,i); + pAction = m_pWindowPopup->addAction(*pix, szItem); + pAction->setData(i); } else { - m_pWindowPopup->insertItem(szItem); - } + pAction = m_pWindowPopup->addAction(szItem); + pAction->setData(i); + } //this is useless, since the windows are listed in stacking order, the active one //will always be the last anyway. @@ -320,9 +339,11 @@ void KviMdiManager::fillWindowPopup() } } -void KviMdiManager::menuActivated(int id) +void KviMdiManager::menuActivated(QAction *pAction) { - if(id<100)return; + bool bOk=false; + int id=pAction->data().toInt(&bOk); + if(!bOk || id<100)return; id-=100; QList<QMdiSubWindow *> tmp = subWindowList(QMdiArea::StackingOrder); @@ -356,9 +377,12 @@ void KviMdiManager::ensureNoMaximized(KviMdiChild * lpExclude) m_bIgnoreSDIModeChange = false; } -void KviMdiManager::tileMethodMenuActivated(int id) +void KviMdiManager::tileMethodMenuActivated(QAction *pAction) { - int idx = m_pTileMethodPopup->itemParameter(id); + bool bOk=false; + int idx = pAction->data().toInt(&bOk); + if(!bOk) + return; if(idx < 0) idx = 0; if(idx >= KVI_NUM_TILE_METHODS) idx = KVI_TILE_METHOD_PRAGMA9VER; diff --git a/src/kvirc/ui/KviMdiManager.h b/src/kvirc/ui/KviMdiManager.h index db6aa37fa..c5a8c9a19 100644 --- a/src/kvirc/ui/KviMdiManager.h +++ b/src/kvirc/ui/KviMdiManager.h @@ -38,7 +38,7 @@ #include <QScrollBar> class KviMainWindow; -class KviTalPopupMenu; +class QMenu; /** * \class KviMdiManager @@ -78,9 +78,9 @@ private: bool m_bIgnoreSDIModeChange; protected: /// Holds the specialized window popup - KviTalPopupMenu * m_pWindowPopup; + QMenu * m_pWindowPopup; /// Holds the tiling popup - KviTalPopupMenu * m_pTileMethodPopup; + QMenu * m_pTileMethodPopup; public: /** @@ -99,9 +99,9 @@ public: /** * \brief Returns the window popup - * \return KviTalPopupMenu * + * \return QMenu * */ - inline KviTalPopupMenu * windowPopup() { return m_pWindowPopup; }; + inline QMenu * windowPopup() { return m_pWindowPopup; }; /** * \brief Move the focus the the previous active window @@ -171,8 +171,8 @@ public slots: void toggleAutoTile(); void tileAnodine(); protected slots: - void menuActivated(int id); - void tileMethodMenuActivated(int id); + void menuActivated(QAction *pAction); + void tileMethodMenuActivated(QAction *pAction); void fillWindowPopup(); void processWindowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState); }; diff --git a/src/kvirc/ui/KviMenuBar.cpp b/src/kvirc/ui/KviMenuBar.cpp index 99188cce4..5944f7b63 100644 --- a/src/kvirc/ui/KviMenuBar.cpp +++ b/src/kvirc/ui/KviMenuBar.cpp @@ -39,7 +39,7 @@ #include "KviActionManager.h" #include "KviCoreActionNames.h" #include "KviKvsScript.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" KviMenuBar::KviMenuBar(KviMainWindow * par,const char * name) : KviTalMenuBar(par,name) @@ -47,7 +47,7 @@ KviMenuBar::KviMenuBar(KviMainWindow * par,const char * name) setAutoFillBackground(false); m_pFrm = par; - KviTalPopupMenu * pop = new KviTalPopupMenu(this,"KVIrc"); + QMenu * pop = new QMenu("KVIrc", this); connect(pop,SIGNAL(aboutToShow()),this,SLOT(setupMainPopup())); #ifndef COMPILE_ON_MAC addDefaultItem("&KVIrc",pop); @@ -55,34 +55,39 @@ KviMenuBar::KviMenuBar(KviMainWindow * par,const char * name) // Qt/Mac creates already a "KVirc" menu item on its own, and we don't like double entries ;-) addDefaultItem("&IRC",pop); #endif //COMPILE_ON_MAC - m_pRecentServersPopup = new KviTalPopupMenu(this,"recentservers"); + m_pRecentServersPopup = new QMenu("recentservers",this); connect(m_pRecentServersPopup,SIGNAL(aboutToShow()),this,SLOT(setupRecentServersPopup())); - connect(m_pRecentServersPopup,SIGNAL(activated(int)),this,SLOT(newConnectionToServer(int))); + connect(m_pRecentServersPopup,SIGNAL(triggered(QAction*)),this,SLOT(newConnectionToServer(QAction *))); m_pScriptItemList = 0; - pop = new KviTalPopupMenu(this,"scripting"); + pop = new QMenu("scripting",this); connect(pop,SIGNAL(aboutToShow()),this,SLOT(setupScriptingPopup())); addDefaultItem(__tr2qs("Scri&pting"),pop); - pop = new KviTalPopupMenu(this,"tools"); + pop = new QMenu("tools",this); connect(pop,SIGNAL(aboutToShow()),this,SLOT(setupToolsPopup())); - connect(pop,SIGNAL(activated(int)),this,SLOT(toolsPopupSelected(int))); + connect(pop,SIGNAL(triggered(QAction*)),this,SLOT(toolsPopupSelected(QAction *))); addDefaultItem(__tr2qs("&Tools"),pop); - m_pToolbarsPopup = new KviTalPopupMenu(this,"toolbars"); + m_pToolbarsPopup = new QMenu("toolbars",this); connect(m_pToolbarsPopup,SIGNAL(aboutToShow()),this,SLOT(setupToolbarsPopup())); - pop = new KviTalPopupMenu(this,"settings"); + pop = new QMenu("settings",this); connect(pop,SIGNAL(aboutToShow()),this,SLOT(setupSettingsPopup())); addDefaultItem(__tr2qs("&Settings"),pop); addDefaultItem(__tr2qs("&Window"),par->mdiManager()->windowPopup()); - pop = new KviTalPopupMenu(this,"help"); + pop = new QMenu("help",this); connect(pop,SIGNAL(aboutToShow()),this,SLOT(setupHelpPopup())); - connect(pop,SIGNAL(activated(int)),this,SLOT(actionTriggered(int))); + connect(pop,SIGNAL(triggered(QAction*)),this,SLOT(actionTriggered(QAction*))); addDefaultItem(__tr2qs("&Help"),pop); + +#ifdef COMPILE_ON_MAC + m_pHelpMenu = pop; + QTimer::singleShot(0, this, SLOT(createMacNativeItems())); +#endif } KviMenuBar::~KviMenuBar() @@ -90,7 +95,19 @@ KviMenuBar::~KviMenuBar() if(m_pScriptItemList)delete m_pScriptItemList; } -void KviMenuBar::addDefaultItem(const QString &text,KviTalPopupMenu * pop) +void KviMenuBar::createMacNativeItems() +{ +#ifdef COMPILE_ON_MAC + + // qt will automatically move these elemnts in the application menu + QAction * pAction = m_pHelpMenu->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::KVIrc)),"about kvirc"); + pAction->setData(KVI_INTERNALCOMMAND_ABOUT_ABOUTKVIRC); + + ACTION_POPUP_ITEM(KVI_COREACTION_GENERALOPTIONS, m_pHelpMenu) +#endif +} + +void KviMenuBar::addDefaultItem(const QString &text,QMenu * pop) { pop->menuAction()->setText(text); addAction(pop->menuAction()); @@ -98,87 +115,100 @@ void KviMenuBar::addDefaultItem(const QString &text,KviTalPopupMenu * pop) void KviMenuBar::setupHelpPopup() { - KviTalPopupMenu * help = (KviTalPopupMenu *)sender(); + QMenu * help = (QMenu *)sender(); help->clear(); ACTION_POPUP_ITEM(KVI_COREACTION_HELPINDEX,help) - int id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Help)),__tr2qs("&Help Browser (Panel)")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_HELP_NEWSTATICWINDOW); - - - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Idea)),__tr2qs("&Tip of the Day")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_TIP_OPEN); - help->insertSeparator(); + QAction *pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Help)),__tr2qs("&Help Browser (Panel)")); + pAction->setData(KVI_INTERNALCOMMAND_HELP_NEWSTATICWINDOW); - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::KVIrc)),__tr2qs("About &KVIrc")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_ABOUT_ABOUTKVIRC); - help->insertSeparator(); - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::HomePage)),__tr2qs("KVIrc Home&page")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_KVIRC_HOMEPAGE); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Idea)),__tr2qs("&Tip of the Day")); + pAction->setData(KVI_INTERNALCOMMAND_TIP_OPEN); + help->addSeparator(); +#ifndef COMPILE_ON_MAC + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::KVIrc)),__tr2qs("About &KVIrc")); + pAction->setData(KVI_INTERNALCOMMAND_ABOUT_ABOUTKVIRC); +#endif + help->addSeparator(); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::HomePage)),__tr2qs("KVIrc Home&page")); + pAction->setData(KVI_INTERNALCOMMAND_KVIRC_HOMEPAGE); if(kvi_strEqualCIN(KviLocale::instance()->localeName(),"ru",2)) { - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::HomePage)),__tr2qs("KVIrc Russian Home&page")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_KVIRC_HOMEPAGE_RU); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::HomePage)),__tr2qs("KVIrc Russian Home&page")); + pAction->setData(KVI_INTERNALCOMMAND_KVIRC_HOMEPAGE_RU); } if(kvi_strEqualCIN(KviLocale::instance()->localeName(),"fr",2)) { - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::HomePage)),__tr2qs("KVIrc French Home&page")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_KVIRC_HOMEPAGE_FR); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::HomePage)),__tr2qs("KVIrc French Home&page")); + pAction->setData(KVI_INTERNALCOMMAND_KVIRC_HOMEPAGE_FR); } - help->insertSeparator(); - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Message)),__tr2qs("Subscribe to the Mailing List")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_OPENURL_KVIRC_MAILINGLIST); - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Bomb)),__tr2qs("Report a Bug / Propose Improvements")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_OPENURL_KVIRC_BUGTRACK); - help->insertSeparator(); - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc International Channel on Freenode")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_OPENURL_KVIRC_ON_FREENODE); + help->addSeparator(); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Message)),__tr2qs("Subscribe to the Mailing List")); + pAction->setData(KVI_INTERNALCOMMAND_OPENURL_KVIRC_MAILINGLIST); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Bomb)),__tr2qs("Report a Bug / Propose Improvements")); + pAction->setData(KVI_INTERNALCOMMAND_OPENURL_KVIRC_BUGTRACK); + help->addSeparator(); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc International Channel on Freenode")); + pAction->setData(KVI_INTERNALCOMMAND_OPENURL_KVIRC_ON_FREENODE); if(kvi_strEqualCIN(KviLocale::instance()->localeName(),"it",2)) { // join #kvirc.net on azzurra - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc Italian Channel on AzzurraNet")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_OPENURL_KVIRC_IT_ON_AZZURRA); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc Italian Channel on AzzurraNet")); + pAction->setData(KVI_INTERNALCOMMAND_OPENURL_KVIRC_IT_ON_AZZURRA); } if(kvi_strEqualCIN(KviLocale::instance()->localeName(),"fr",2)) { // join #kvirc-fr on freenode - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc French Channel on Freenode")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_OPENURL_KVIRC_FR_ON_FREENODE); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc French Channel on Freenode")); + pAction->setData(KVI_INTERNALCOMMAND_OPENURL_KVIRC_FR_ON_FREENODE); // join #kvirc on europnet - id = help->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc French Channel on EuropNet")); - help->setItemParameter(id,KVI_INTERNALCOMMAND_OPENURL_KVIRC_FR_ON_EUROPNET); + pAction = help->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Channel)),__tr2qs("Join KVIrc French Channel on EuropNet")); + pAction->setData(KVI_INTERNALCOMMAND_OPENURL_KVIRC_FR_ON_EUROPNET); } } -void KviMenuBar::actionTriggered(int id) +void KviMenuBar::actionTriggered(QAction *pAction) { - KviTalPopupMenu * help = (KviTalPopupMenu *)sender(); - m_pFrm->executeInternalCommand(help->itemParameter(id)); + bool bOk=false; + int id=pAction->data().toInt(&bOk); + if(bOk) + m_pFrm->executeInternalCommand(id); } -void KviMenuBar::setupSettingsPopup() +void KviMenuBar::actionTriggered(bool) { + QAction * pAction = (QAction *)sender(); + if(!pAction) + return; - KviTalPopupMenu * opt = (KviTalPopupMenu *)sender(); - opt->clear(); + actionTriggered(pAction); +} - opt->insertItem(__tr2qs("Toolbars"),m_pToolbarsPopup); +void KviMenuBar::setupSettingsPopup() +{ + QMenu * opt = (QMenu *)sender(); + opt->clear(); - int id = opt->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::StatusBar)),__tr2qs("Show StatusBar"),m_pFrm,SLOT(toggleStatusBar())); - opt->setItemChecked(id,m_pFrm->mainStatusBar()); + QAction *pAction = opt->addAction(__tr2qs("Toolbars")); + pAction->setMenu(m_pToolbarsPopup); + pAction = opt->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::StatusBar)),__tr2qs("Show StatusBar"),m_pFrm,SLOT(toggleStatusBar())); + pAction->setCheckable(true); + pAction->setChecked(m_pFrm->mainStatusBar()); - opt->insertSeparator(); + opt->addSeparator(); // FIXME: #warning "Toggle these items on the fly ?" +#ifndef COMPILE_ON_MAC ACTION_POPUP_ITEM(KVI_COREACTION_GENERALOPTIONS,opt) +#endif ACTION_POPUP_ITEM(KVI_COREACTION_THEMEOPTIONS,opt) ACTION_POPUP_ITEM(KVI_COREACTION_EDITREGUSERS,opt) ACTION_POPUP_ITEM(KVI_COREACTION_TOOLBAREDITOR,opt) - opt->insertSeparator(); + opt->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_SERVEROPTIONS,opt) - opt->insertSeparator(); + opt->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_MANAGETHEMES,opt) ACTION_POPUP_ITEM(KVI_COREACTION_MANAGEADDONS,opt) @@ -188,13 +218,13 @@ void KviMenuBar::setupSettingsPopup() // If you're playing with unstable stuff then use /options.save to obtain // the same effect. // - //opt->insertSeparator(); - //opt->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_FLOPPY)),__tr2qs("&Save Configuration"),g_pApp,SLOT(saveConfiguration())); + //opt->addSeparator(); + //opt->addAction(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_FLOPPY)),__tr2qs("&Save Configuration"),g_pApp,SLOT(saveConfiguration())); } void KviMenuBar::setupScriptingPopup() { - KviTalPopupMenu * script = (KviTalPopupMenu *)sender(); + QMenu * script = (QMenu *)sender(); script->clear(); ACTION_POPUP_ITEM(KVI_COREACTION_ACTIONEDITOR,script) @@ -203,54 +233,55 @@ void KviMenuBar::setupScriptingPopup() ACTION_POPUP_ITEM(KVI_COREACTION_EVENTEDITOR,script) ACTION_POPUP_ITEM(KVI_COREACTION_POPUPEDITOR,script) ACTION_POPUP_ITEM(KVI_COREACTION_RAWEDITOR,script) - script->insertSeparator(); + script->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_CODETESTER,script) - script->insertSeparator(); + script->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_EXECUTEKVS,script) - script->insertSeparator(); - script->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::TextExclamative)),__tr2qs("Restore &Default Script..."),g_pApp,SLOT(restoreDefaultScript())); + script->addSeparator(); + script->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TextExclamative)),__tr2qs("Restore &Default Script..."),g_pApp,SLOT(restoreDefaultScript())); } void KviMenuBar::setupMainPopup() { - KviTalPopupMenu * main = (KviTalPopupMenu *)sender(); + QMenu * main = (QMenu *)sender(); main->clear(); ACTION_POPUP_ITEM(KVI_COREACTION_NEWIRCCONTEXT,main) - main->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::World)),__tr2qs("New &Connection To"),m_pRecentServersPopup); + QAction * pAction = main->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::World)),__tr2qs("New &Connection To")); + pAction->setMenu(m_pRecentServersPopup); if(m_pFrm->activeContext()) if(m_pFrm->activeContext()->state()==KviIrcContext::Connected) { - int id = main->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs("Disconnect"),m_pFrm,SLOT(executeInternalCommand(int))); - main->setItemParameter(id,KVI_INTERNALCOMMAND_QUIT); + pAction = main->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs("Disconnect"),this,SLOT(actionTriggered(bool))); + pAction->setData(KVI_INTERNALCOMMAND_QUIT); } - main->insertSeparator(); + main->addSeparator(); // FIXME: Add a "Dock to tray" icon if the tray is not visible (or show tray icon or whatever) // Qt/Mac creates a Quit item on its own <= this is bad #ifndef COMPILE_ON_MAC - main->insertSeparator(); + main->addSeparator(); - main->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::QuitApp)),__tr2qs("&Quit"),g_pMainWindow,SLOT(close())); + main->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::QuitApp)),__tr2qs("&Quit"),g_pMainWindow,SLOT(close())); #endif //COMPILE_ON_MAC } void KviMenuBar::setupRecentServersPopup() { - KviTalPopupMenu * m = (KviTalPopupMenu *)sender(); + QMenu * m = (QMenu *)sender(); g_pApp->fillRecentServersPopup(m); - m->insertSeparator(); - m->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs("&Other...")); + m->addSeparator(); + m->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs("&Other...")); } -void KviMenuBar::newConnectionToServer(int id) +void KviMenuBar::newConnectionToServer(QAction *pAction) { - QString text = m_pRecentServersPopup->text(id); + QString text = pAction->text(); if(!text.isEmpty()) { if(text == __tr2qs("&Other...")) @@ -269,62 +300,61 @@ void KviMenuBar::newConnectionToServer(int id) void KviMenuBar::setupToolsPopup() { - KviTalPopupMenu * m = (KviTalPopupMenu *)sender(); + QMenu * m = (QMenu *)sender(); if(!m)return; m->clear(); + QAction *pAction=0; KviModuleExtensionDescriptorList * l = g_pModuleExtensionManager->getExtensionList("tool"); if(l) { for(KviModuleExtensionDescriptor * d = l->first();d;d = l->next()) { - int id; if(d->icon()) { - id = m->insertItem(*(d->icon()),d->visibleName()); + pAction = m->addAction(*(d->icon()),d->visibleName()); } else { - id = m->insertItem(d->visibleName()); + pAction = m->addAction(d->visibleName()); } - m->setItemParameter(id,d->id()); + pAction->setData(d->id()); } } - m->insertSeparator(); + m->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_SOCKETSPY,m) ACTION_POPUP_ITEM(KVI_COREACTION_NETWORKLINKS,m) ACTION_POPUP_ITEM(KVI_COREACTION_CHANNELLIST,m) - m->insertSeparator(); + m->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_JOINCHANNELS,m) - m->insertSeparator(); + m->addSeparator(); ACTION_POPUP_ITEM(KVI_COREACTION_SCREENSHOT,m) // moved the old tools here - m->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::IconManager)),__tr2qs("Show &Icon Table"),g_pIconManager,SLOT(showIconWidget())); + m->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::IconManager)),__tr2qs("Show &Icon Table"),g_pIconManager,SLOT(showIconWidget())); #ifdef COMPILE_KDE_SUPPORT - int id; - id = m->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Terminal)),__tr2qs("Open &Terminal"),m_pFrm,SLOT(executeInternalCommand(int))); - m->setItemParameter(id,KVI_INTERNALCOMMAND_TERM_OPEN); + pAction = m->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Terminal)),__tr2qs("Open &Terminal"),this,SLOT(actionTriggered(bool))); + pAction->setData(KVI_INTERNALCOMMAND_TERM_OPEN); #endif KviPointerList<KviAction> list; KviActionManager::instance()->listActionsByCategory("tools",&list); if(!list.isEmpty()) { - m->insertSeparator(); + m->addSeparator(); for(KviAction * ac = list.first();ac;ac = list.next()) ac->addToPopupMenu(m); } } -void KviMenuBar::toolsPopupSelected(int id) +void KviMenuBar::toolsPopupSelected(QAction *pAction) { - KviTalPopupMenu * m = (KviTalPopupMenu *)sender(); - if(!m) return; - int idext = m->itemParameter(id); - g_pModuleExtensionManager->allocateExtension("tool",idext,m_pFrm->firstConsole()); + bool bOk=false; + int idext = pAction->data().toInt(&bOk); + if(bOk) + g_pModuleExtensionManager->allocateExtension("tool",idext,m_pFrm->firstConsole()); } void KviMenuBar::setupToolbarsPopup() diff --git a/src/kvirc/ui/KviMenuBar.h b/src/kvirc/ui/KviMenuBar.h index b77c6e440..53d943ceb 100644 --- a/src/kvirc/ui/KviMenuBar.h +++ b/src/kvirc/ui/KviMenuBar.h @@ -31,7 +31,7 @@ #include "KviTalMenuBar.h" class KviMainWindow; -class KviTalPopupMenu; +class QMenu; class KviKvsPopupMenu; typedef struct _KviScriptMenuBarItem @@ -49,14 +49,17 @@ public: KviMenuBar(KviMainWindow * par,const char * name); ~KviMenuBar(); protected: - KviTalPopupMenu * m_pToolbarsPopup; - KviTalPopupMenu * m_pRecentServersPopup; + QMenu * m_pToolbarsPopup; + QMenu * m_pRecentServersPopup; +#ifdef COMPILE_ON_MAC + QMenu * m_pHelpMenu; +#endif KviMainWindow * m_pFrm; KviPointerList<KviScriptMenuBarItem> * m_pScriptItemList; protected: KviScriptMenuBarItem * findMenu(const QString &text); KviScriptMenuBarItem * findMenu(KviKvsPopupMenu * p); - void addDefaultItem(const QString &text,KviTalPopupMenu * pop); + void addDefaultItem(const QString &text,QMenu * pop); public: int getDefaultItemRealIndex(int iDefaultIndex); void addMenu(const QString &text,KviKvsPopupMenu * p,int index); @@ -68,11 +71,13 @@ protected slots: void setupHelpPopup(); void setupRecentServersPopup(); void setupScriptingPopup(); - void newConnectionToServer(int id); + void newConnectionToServer(QAction *pAction); void setupToolbarsPopup(); void setupToolsPopup(); - void toolsPopupSelected(int id); - void actionTriggered(int id); + void toolsPopupSelected(QAction *pAction); + void actionTriggered(QAction *pAction); + void actionTriggered(bool); + void createMacNativeItems(); }; #endif //_KVI_MENUBAR_H_ diff --git a/src/kvirc/ui/KviSelectors.cpp b/src/kvirc/ui/KviSelectors.cpp index e60ac2539..ffe9b6c3d 100644 --- a/src/kvirc/ui/KviSelectors.cpp +++ b/src/kvirc/ui/KviSelectors.cpp @@ -31,7 +31,7 @@ #include "KviControlCodes.h" #include "KviFileDialog.h" #include "KviKvsScript.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QLabel> #include <QPainter> @@ -563,7 +563,7 @@ void KviStringListSelector::addClicked() { QString str = m_pLineEdit->text(); str = str.trimmed(); - if(str.length() > 0)m_pListWidget->insertItem(m_pListWidget->count(),str); + if(str.length() > 0)m_pListWidget->insertItem(m_pListWidget->count(),str); m_pLineEdit->setText(""); } @@ -704,32 +704,35 @@ KviMircTextColorSelector::KviMircTextColorSelector(QWidget * par,const QString & setEnabled(bEnabled); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); - m_pForePopup = new KviTalPopupMenu(this); - connect(m_pForePopup,SIGNAL(activated(int)),this,SLOT(foreSelected(int))); - int i; - for(i=0;i<KVI_MIRCCOLOR_MAX_FOREGROUND;i++) + QAction *pAction = 0; + m_pForePopup = new QMenu(this); + connect(m_pForePopup,SIGNAL(triggered(QAction*)),this,SLOT(foreSelected(QAction*))); + int iColor; + for(iColor=0;iColor<KVI_MIRCCOLOR_MAX_FOREGROUND;iColor++) { QPixmap tmp(120,16); - tmp.fill(KVI_OPTION_MIRCCOLOR(i)); - int id = m_pForePopup->insertItem(tmp,QString("x")); - m_pForePopup->setItemParameter(id,i); + tmp.fill(KVI_OPTION_MIRCCOLOR(iColor)); + pAction = m_pForePopup->addAction(tmp,QString("x")); + pAction->setData(iColor); } - m_pContextPopup->insertItem(__tr2qs("Foreground"),m_pForePopup); + pAction = m_pContextPopup->addAction(__tr2qs("Foreground")); + pAction->setMenu(m_pForePopup); - m_pBackPopup = new KviTalPopupMenu(this); - connect(m_pBackPopup,SIGNAL(activated(int)),this,SLOT(backSelected(int))); - i = m_pBackPopup->insertItem(__tr2qs("Transparent")); - m_pBackPopup->setItemParameter(i,KviControlCodes::Transparent); - for(i=0;i<KVI_MIRCCOLOR_MAX_BACKGROUND;i++) + m_pBackPopup = new QMenu(this); + connect(m_pBackPopup,SIGNAL(triggered(QAction*)),this,SLOT(backSelected(QAction*))); + pAction = m_pBackPopup->addAction(__tr2qs("Transparent")); + pAction->setData(KviControlCodes::Transparent); + for(iColor=0;iColor<KVI_MIRCCOLOR_MAX_BACKGROUND;iColor++) { QPixmap tmp(120,16); - tmp.fill(KVI_OPTION_MIRCCOLOR(i)); - int id = m_pBackPopup->insertItem(tmp,QString("x")); - m_pBackPopup->setItemParameter(id,i); + tmp.fill(KVI_OPTION_MIRCCOLOR(iColor)); + pAction = m_pBackPopup->addAction(tmp,QString("x")); + pAction->setData(iColor); } - m_pContextPopup->insertItem(__tr2qs("Background"),m_pBackPopup); + pAction = m_pContextPopup->addAction(__tr2qs("Background")); + pAction->setMenu(m_pBackPopup); } KviMircTextColorSelector::~KviMircTextColorSelector() @@ -777,17 +780,21 @@ void KviMircTextColorSelector::buttonClicked() m_pContextPopup->popup(p); } -void KviMircTextColorSelector::foreSelected(int id) +void KviMircTextColorSelector::foreSelected(QAction * pAction) { - if(m_pForePopup) - m_uFore = m_pForePopup->itemParameter(id); + bool bOk=false; + int id = pAction->data().toInt(&bOk); + if(bOk) + m_uFore = id; setButtonPalette(); } -void KviMircTextColorSelector::backSelected(int id) +void KviMircTextColorSelector::backSelected(QAction * pAction) { - if(m_pBackPopup) - m_uBack = m_pBackPopup->itemParameter(id); + bool bOk=false; + int id = pAction->data().toInt(&bOk); + if(bOk) + m_uBack = id; setButtonPalette(); } diff --git a/src/kvirc/ui/KviSelectors.h b/src/kvirc/ui/KviSelectors.h index 377e559f4..cc071c60d 100644 --- a/src/kvirc/ui/KviSelectors.h +++ b/src/kvirc/ui/KviSelectors.h @@ -340,7 +340,7 @@ private slots: void removeClicked(); }; -class KviTalPopupMenu; +class QMenu; class KVIRC_API KviMircTextColorSelector : public KviTalHBox, public KviSelectorInterface { @@ -355,16 +355,16 @@ private: unsigned int * m_pUBack; unsigned int m_uFore; unsigned int m_uBack; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pForePopup; - KviTalPopupMenu * m_pBackPopup; + QMenu * m_pContextPopup; + QMenu * m_pForePopup; + QMenu * m_pBackPopup; public: virtual void commit(); virtual void setEnabled(bool bEnabled); protected slots: void buttonClicked(); - void foreSelected(int); - void backSelected(int); + void foreSelected(QAction *pAction); + void backSelected(QAction *pAction); protected: void setButtonPalette(); }; diff --git a/src/kvirc/ui/KviStatusBar.cpp b/src/kvirc/ui/KviStatusBar.cpp index de6c61c23..e910d356f 100644 --- a/src/kvirc/ui/KviStatusBar.cpp +++ b/src/kvirc/ui/KviStatusBar.cpp @@ -37,7 +37,7 @@ #include "KviModuleManager.h" #include "KviStatusBarApplet.h" #include "KviDynamicToolTip.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QPainter> #include <QStyle> @@ -50,6 +50,7 @@ #include <QEvent> #include <QMouseEvent> #include <QMessageBox> +#include <QWidgetAction> KviStatusBar::KviStatusBar(KviMainWindow * pFrame) : QStatusBar(pFrame) @@ -343,7 +344,7 @@ void KviStatusBar::contextMenuRequested(const QPoint & pos) { if(!m_pContextPopup) { - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); connect(m_pContextPopup,SIGNAL(aboutToShow()),this,SLOT(contextPopupAboutToShow())); } @@ -367,23 +368,24 @@ void KviStatusBar::contextPopupAboutToShow() QLabel * pLabel = new QLabel(szTmp,m_pContextPopup); QPalette p; pLabel->setStyleSheet("background-color: " + p.color(QPalette::Normal, QPalette::Mid).name()); - m_pContextPopup->insertItem(pLabel); + m_pContextPopup->addAction(new QWidgetAction(pLabel)); m_pClickedApplet->fillContextPopup(m_pContextPopup); szTmp = QString(__tr2qs("Remove %1")).arg(szApp); - m_pContextPopup->insertSeparator(); - m_pContextPopup->insertItem(szTmp,this,SLOT(removeClickedApplet())); + m_pContextPopup->addSeparator(); + m_pContextPopup->addAction(szTmp,this,SLOT(removeClickedApplet())); } if(!m_pAppletsPopup) { - m_pAppletsPopup = new KviTalPopupMenu(this); + m_pAppletsPopup = new QMenu(this); connect(m_pAppletsPopup,SIGNAL(aboutToShow()),this,SLOT(appletsPopupAboutToShow())); - connect(m_pAppletsPopup,SIGNAL(activated(int)),this,SLOT(appletsPopupActivated(int))); + connect(m_pAppletsPopup,SIGNAL(triggered(QAction *)),this,SLOT(appletsPopupActivated(QAction *))); } - m_pContextPopup->insertItem(__tr2qs("Add Applet"),m_pAppletsPopup); + QAction *pAction = m_pContextPopup->addAction(__tr2qs("Add Applet")); + pAction->setMenu(m_pAppletsPopup); } void KviStatusBar::removeClickedApplet() @@ -405,16 +407,16 @@ void KviStatusBar::appletsPopupAboutToShow() // FIXME: could we cache the module results in some way ? g_pModuleManager->loadModulesByCaps("statusbarapplet"); + QAction *pAction=0; KviPointerHashTableIterator<QString,KviStatusBarAppletDescriptor> it(*m_pAppletDescriptors); while(KviStatusBarAppletDescriptor * d = it.current()) { - int iId; QPixmap * pix = d->icon(); if(pix) - iId = m_pAppletsPopup->insertItem(*pix,d->visibleName()); + pAction = m_pAppletsPopup->addAction(*pix,d->visibleName()); else - iId = m_pAppletsPopup->insertItem(d->visibleName()); - m_pAppletsPopup->setItemParameter(iId,d->id()); + pAction = m_pAppletsPopup->addAction(d->visibleName()); + pAction->setData(d->id()); ++it; } } @@ -433,17 +435,18 @@ void KviStatusBar::showLayoutHelp() queueMessage(new KviStatusBarMessage(__tr2qs("Drag the applet while holding the Shift or Ctrl key to move it to the desired position"))); } -void KviStatusBar::appletsPopupActivated(int iId) +void KviStatusBar::appletsPopupActivated(QAction *pAction) { // FIXME: In fact the applet descriptors in modules could // have been unloaded while the popup was being shown... // For now we just assume that this never happens :D - if(!m_pAppletsPopup) - return; + bool bOk = false; + int iPar = pAction->data().toInt(&bOk); + if(!bOk) + return; - int iPar = m_pAppletsPopup->itemParameter(iId); - KviPointerHashTableIterator<QString,KviStatusBarAppletDescriptor> it(*m_pAppletDescriptors); + KviPointerHashTableIterator<QString,KviStatusBarAppletDescriptor> it(*m_pAppletDescriptors); while(KviStatusBarAppletDescriptor * d = it.current()) { if(iPar == d->id()) diff --git a/src/kvirc/ui/KviStatusBar.h b/src/kvirc/ui/KviStatusBar.h index 1ae14c4a4..4440cd396 100644 --- a/src/kvirc/ui/KviStatusBar.h +++ b/src/kvirc/ui/KviStatusBar.h @@ -48,7 +48,7 @@ class QTimer; class QLabel; class KviMainWindow; -class KviTalPopupMenu; +class QMenu; class KviStatusBarApplet; class KviStatusBarAppletDescriptor; class KviIrcContext; @@ -134,8 +134,8 @@ protected: QLabel * m_pMessageLabel; KviPointerList<KviStatusBarApplet> * m_pAppletList; KviPointerHashTable<QString,KviStatusBarAppletDescriptor> * m_pAppletDescriptors; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pAppletsPopup; + QMenu * m_pContextPopup; + QMenu * m_pAppletsPopup; KviStatusBarApplet * m_pClickedApplet; int m_iLastMinimumHeight; bool m_bStopLayoutOnAddRemove; @@ -166,7 +166,7 @@ public: */ KviStatusBarApplet * appletAt(const QPoint & pnt, bool bBestMatch = false); - //KviTalPopupMenu * contextPopup(); + //QMenu * contextPopup(); /** * \brief Queue a statusbar message in the stack @@ -291,7 +291,7 @@ protected slots: * \param iId The id of the applet * \return void */ - void appletsPopupActivated(int iId); + void appletsPopupActivated(QAction *pAction); /** * \brief Called when the user removes an applet from the statusbar diff --git a/src/kvirc/ui/KviStatusBarApplet.cpp b/src/kvirc/ui/KviStatusBarApplet.cpp index 323db362e..716cb69b6 100644 --- a/src/kvirc/ui/KviStatusBarApplet.cpp +++ b/src/kvirc/ui/KviStatusBarApplet.cpp @@ -46,7 +46,7 @@ #include "KviMiscUtils.h" #include "KviHttpRequest.h" #include "KviUrl.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalToolTip.h" #include "KviDataBuffer.h" @@ -157,10 +157,11 @@ void KviStatusBarAwayIndicator::toggleContext() m_bAwayOnAllContexts = !m_bAwayOnAllContexts; } -void KviStatusBarAwayIndicator::fillContextPopup(KviTalPopupMenu * p) +void KviStatusBarAwayIndicator::fillContextPopup(QMenu * p) { - int id = p->insertItem(__tr2qs("Apply to all IRC Contexts"),this,SLOT(toggleContext())); - p->setItemChecked(id,m_bAwayOnAllContexts); + QAction *pAction = p->addAction(__tr2qs("Apply to all IRC Contexts"),this,SLOT(toggleContext())); + pAction->setCheckable(true), + pAction->setChecked(m_bAwayOnAllContexts); } void KviStatusBarAwayIndicator::loadState(const char * pcPrefix, KviConfigurationFile * pCfg) @@ -423,25 +424,29 @@ void KviStatusBarClock::timerEvent(QTimerEvent *) setText(szTmp); } -void KviStatusBarClock::fillContextPopup(KviTalPopupMenu * p) +void KviStatusBarClock::fillContextPopup(QMenu * p) { - int id = p->insertItem("UTC",this,SLOT(toggleUtc())); - p->setItemChecked(id,m_bUtc); - id = p->insertItem("24h",this,SLOT(toggle24h())); - p->setItemChecked(id,m_b24h); - p->insertSeparator(); + QAction * pAction = p->addAction("UTC",this,SLOT(toggleUtc())); + pAction->setCheckable(true); + pAction->setChecked(m_bUtc); + + pAction = p->addAction("24h",this,SLOT(toggle24h())); + pAction->setCheckable(true); + pAction->setChecked(m_b24h); + p->addSeparator(); // Format menu QMenu * pMenu = new QMenu(p); - QAction * pAction = pMenu->addAction("hh:mm:ss"); + pAction = pMenu->addAction("hh:mm:ss"); pAction->setData(QVariant(KviStatusBarClock::HMS)); pAction = pMenu->addAction("hh:mm"); pAction->setData(QVariant(KviStatusBarClock::HM)); connect(pMenu,SIGNAL(triggered(QAction *)),this,SLOT(changeFormat(QAction *))); - id = p->insertItem(__tr2qs("Format"),pMenu); - p->setItemEnabled(id,true); + pAction = p->addAction(__tr2qs("Format")); + pAction->setMenu(pMenu); + pAction->setEnabled(true); } void KviStatusBarClock::toggleUtc() @@ -549,10 +554,11 @@ void KviStatusBarConnectionTimer::toggleTotal() m_bTotal = !m_bTotal; } -void KviStatusBarConnectionTimer::fillContextPopup(KviTalPopupMenu * p) +void KviStatusBarConnectionTimer::fillContextPopup(QMenu * p) { - int id = p->insertItem(__tr2qs("Show total connection time"),this,SLOT(toggleTotal())); - p->setItemChecked(id,m_bTotal); + QAction *pAction = p->addAction(__tr2qs("Show total connection time"),this,SLOT(toggleTotal())); + pAction->setCheckable(true); + pAction->setChecked(m_bTotal); } void KviStatusBarConnectionTimer::loadState(const char * pcPrefix, KviConfigurationFile * pCfg) @@ -649,12 +655,15 @@ void KviStatusBarUpdateIndicator::toggleRevision() updateDisplay(); } -void KviStatusBarUpdateIndicator::fillContextPopup(KviTalPopupMenu * p) +void KviStatusBarUpdateIndicator::fillContextPopup(QMenu * p) { - int id = p->insertItem(__tr2qs("Check on startup"),this,SLOT(toggleStartup())); - p->setItemChecked(id,m_bUpdateOnStartup); - id = p->insertItem(__tr2qs("Check SVN revisions"),this,SLOT(toggleRevision())); - p->setItemChecked(id,m_bUpdateRevision); + QAction *pAction = p->addAction(__tr2qs("Check on startup"),this,SLOT(toggleStartup())); + pAction->setCheckable(true); + pAction->setChecked(m_bUpdateOnStartup); + + pAction = p->addAction(__tr2qs("Check SVN revisions"),this,SLOT(toggleRevision())); + pAction->setCheckable(true); + pAction->setChecked(m_bUpdateRevision); } void KviStatusBarUpdateIndicator::loadState(const char * pcPrefix, KviConfigurationFile * pCfg) diff --git a/src/kvirc/ui/KviStatusBarApplet.h b/src/kvirc/ui/KviStatusBarApplet.h index 01212abef..18724c5a6 100644 --- a/src/kvirc/ui/KviStatusBarApplet.h +++ b/src/kvirc/ui/KviStatusBarApplet.h @@ -39,7 +39,7 @@ class QTimer; class QLabel; -class KviTalPopupMenu; +class QMenu; class KviConfigurationFile; class KviMainWindow; class KviIrcContext; @@ -98,7 +98,7 @@ public: inline void setIndex(int i){ mIndex=i; }; inline int index() const { return mIndex; }; protected: - virtual void fillContextPopup(KviTalPopupMenu *){}; + virtual void fillContextPopup(QMenu *){}; virtual void loadState(const char *, KviConfigurationFile *){}; virtual void saveState(const char *, KviConfigurationFile *){}; virtual QString tipText(const QPoint &); @@ -125,7 +125,7 @@ protected: public: static void selfRegister(KviStatusBar * pBar); protected: - virtual void fillContextPopup(KviTalPopupMenu * p); + virtual void fillContextPopup(QMenu * p); virtual void timerEvent(QTimerEvent * e); virtual void loadState(const char * pcPrefix, KviConfigurationFile * pCfg); @@ -148,7 +148,7 @@ protected: bool m_bTotal; protected: virtual void timerEvent(QTimerEvent * e); - virtual void fillContextPopup(KviTalPopupMenu * p); + virtual void fillContextPopup(QMenu * p); virtual void loadState(const char * pcPrefix, KviConfigurationFile * pCfg); virtual void saveState(const char * pcPrefix, KviConfigurationFile * pCfg); public: @@ -182,7 +182,7 @@ protected: protected: virtual void mouseDoubleClickEvent(QMouseEvent * e); virtual QString tipText(const QPoint &); - virtual void fillContextPopup(KviTalPopupMenu * p); + virtual void fillContextPopup(QMenu * p); virtual void loadState(const char * pcPrefix, KviConfigurationFile * pCfg); virtual void saveState(const char * pcPrefix, KviConfigurationFile * pCfg); protected slots: @@ -217,7 +217,7 @@ public: protected: virtual void mouseDoubleClickEvent(QMouseEvent * e); virtual QString tipText(const QPoint &); - virtual void fillContextPopup(KviTalPopupMenu * p); + virtual void fillContextPopup(QMenu * p); virtual void loadState(const char * pcPrefix, KviConfigurationFile * pCfg); virtual void saveState(const char * pcPrefix, KviConfigurationFile * pCfg); void checkVersion(); diff --git a/src/kvirc/ui/KviToolBar.cpp b/src/kvirc/ui/KviToolBar.cpp index e661c2a79..35908ea35 100644 --- a/src/kvirc/ui/KviToolBar.cpp +++ b/src/kvirc/ui/KviToolBar.cpp @@ -26,17 +26,17 @@ #include "KviMainWindow.h" #include "KviLocale.h" #include "KviApplication.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviOptions.h" #include <QCursor> #include <QEvent> #include <QMouseEvent> -static KviTalPopupMenu * g_pToolBarContextPopup = 0; -static KviTalPopupMenu * g_pToolBarWindowsPopup = 0; -static KviTalPopupMenu * g_pToolBarIconSizesPopup = 0; -static KviTalPopupMenu * g_pToolBarButtonStylePopup = 0; +static QMenu * g_pToolBarContextPopup = 0; +static QMenu * g_pToolBarWindowsPopup = 0; +static QMenu * g_pToolBarIconSizesPopup = 0; +static QMenu * g_pToolBarButtonStylePopup = 0; static uint uToolBarInstances = 0; KviToolBar::KviToolBar(const QString & szLabel, Qt::ToolBarArea type, const char * pcName) @@ -104,14 +104,17 @@ void KviToolBar::mousePressEvent(QMouseEvent * e) if(!g_pToolBarContextPopup) { - g_pToolBarContextPopup = new KviTalPopupMenu(); - g_pToolBarIconSizesPopup = new KviTalPopupMenu(); - g_pToolBarWindowsPopup = new KviTalPopupMenu(); - g_pToolBarButtonStylePopup = new KviTalPopupMenu(); + g_pToolBarContextPopup = new QMenu(); + g_pToolBarIconSizesPopup = new QMenu(); + g_pToolBarWindowsPopup = new QMenu(); + g_pToolBarButtonStylePopup = new QMenu(); - g_pToolBarContextPopup->insertItem(__tr2qs("Toolbars"),g_pToolBarWindowsPopup); - g_pToolBarContextPopup->insertItem(__tr2qs("Icon Size"),g_pToolBarIconSizesPopup); - g_pToolBarContextPopup->insertItem(__tr2qs("Button Style"),g_pToolBarButtonStylePopup); + QAction *pAction = g_pToolBarContextPopup->addAction(__tr2qs("Toolbars")); + pAction->setMenu(g_pToolBarWindowsPopup); + pAction = g_pToolBarContextPopup->addAction(__tr2qs("Icon Size")); + pAction->setMenu(g_pToolBarIconSizesPopup); + pAction = g_pToolBarContextPopup->addAction(__tr2qs("Button Style")); + pAction->setMenu(g_pToolBarButtonStylePopup); // fill toolbars menu g_pMainWindow->fillToolBarsPopup(g_pToolBarWindowsPopup); diff --git a/src/kvirc/ui/KviTopicWidget.cpp b/src/kvirc/ui/KviTopicWidget.cpp index fac843b7c..ab25c248d 100644 --- a/src/kvirc/ui/KviTopicWidget.cpp +++ b/src/kvirc/ui/KviTopicWidget.cpp @@ -42,7 +42,7 @@ #include "KviIrcConnectionUserInfo.h" #include "KviHtmlGenerator.h" #include "KviTalToolTip.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviThemedLabel.h" #include <QLineEdit> @@ -502,7 +502,7 @@ void KviTopicWidget::mousePressEvent(QMouseEvent * e) return; if(!m_pContextPopup) { - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); connect(m_pContextPopup,SIGNAL(aboutToShow()),this,SLOT(contextPopupAboutToShow())); } m_pContextPopup->popup(mapToGlobal(e->pos())); @@ -513,7 +513,7 @@ void KviTopicWidget::contextPopupAboutToShow() if(!m_pContextPopup) return; // hm ? m_pContextPopup->clear(); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Copy)),__tr2qs("Copy to clipboard"),this,SLOT(copy())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Copy)),__tr2qs("Copy to clipboard"),this,SLOT(copy())); } void KviTopicWidget::copy() diff --git a/src/kvirc/ui/KviTopicWidget.h b/src/kvirc/ui/KviTopicWidget.h index b867bb477..a73dcd3f4 100644 --- a/src/kvirc/ui/KviTopicWidget.h +++ b/src/kvirc/ui/KviTopicWidget.h @@ -36,7 +36,7 @@ class QComboBox; class KviChannelWindow; -class KviTalPopupMenu; +class QMenu; class KviIrcConnection; class KviThemedLabel; @@ -76,7 +76,7 @@ private: QPushButton * m_pAccept; QPushButton * m_pDiscard; QPushButton * m_pHistory; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; QAbstractItemDelegate * m_pItemDelegate; KviThemedLabel * m_pLabel; KviInputEditor * m_pInput; diff --git a/src/kvirc/ui/KviTreeWindowList.cpp b/src/kvirc/ui/KviTreeWindowList.cpp index f46cbff58..4409712c9 100644 --- a/src/kvirc/ui/KviTreeWindowList.cpp +++ b/src/kvirc/ui/KviTreeWindowList.cpp @@ -29,7 +29,7 @@ #include "KviMainWindow.h" #include "KviLocale.h" #include "KviOptions.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviWindow.h" #include "KviTreeWindowList.h" #include "KviPixmapUtils.h" @@ -272,9 +272,9 @@ void KviTreeWindowListTreeWidget::mousePressEvent(QMouseEvent *e) //clicked on empty space if(e->button() & Qt::RightButton) { - KviTalPopupMenu* pPopup=new KviTalPopupMenu(); - pPopup->insertItem(__tr2qs("Sort"),this,SLOT(sort())); - pPopup->insertItem(__tr2qs("Reverse Sort"),this,SLOT(reverseSort())); + QMenu* pPopup=new QMenu(); + pPopup->addAction(__tr2qs("Sort"),this,SLOT(sort())); + pPopup->addAction(__tr2qs("Reverse Sort"),this,SLOT(reverseSort())); pPopup->popup(QCursor::pos()); } } diff --git a/src/kvirc/ui/KviWindow.cpp b/src/kvirc/ui/KviWindow.cpp index abdbc0d67..9ed1d97ff 100644 --- a/src/kvirc/ui/KviWindow.cpp +++ b/src/kvirc/ui/KviWindow.cpp @@ -53,7 +53,7 @@ #include "KviControlCodes.h" #include "KviWindowToolWidget.h" #include "KviKvsScript.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalToolTip.h" #include "KviKvsScript.h" #include "KviKvsEventTriggers.h" @@ -89,11 +89,11 @@ KVIRC_API KviWindow * g_pActiveWindow = 0; -static KviTalPopupMenu * g_pMdiWindowSystemMainPopup = 0; -static KviTalPopupMenu * g_pMdiWindowSystemTextEncodingPopup = 0; -static KviTalPopupMenu * g_pMdiWindowSystemTextEncodingPopupStandard = 0; -static KviTalPopupMenu * g_pMdiWindowSystemTextEncodingPopupSmart = 0; -static KviTalPopupMenu * g_pMdiWindowSystemTextEncodingPopupSmartUtf8 = 0; +static QMenu * g_pMdiWindowSystemMainPopup = 0; +static QMenu * g_pMdiWindowSystemTextEncodingPopup = 0; +static QMenu * g_pMdiWindowSystemTextEncodingPopupStandard = 0; +static QMenu * g_pMdiWindowSystemTextEncodingPopupSmart = 0; +static QMenu * g_pMdiWindowSystemTextEncodingPopupSmartUtf8 = 0; static QActionGroup * g_pMdiWindowSystemTextEncodingActionGroup = 0; static QAction * g_pMdiWindowSystemTextEncodingCurrentAction = 0; static QAction * g_pMdiWindowSystemTextEncodingDefaultAction = 0; @@ -656,10 +656,10 @@ void KviWindow::createSystemTextEncodingPopup() if(!g_pMdiWindowSystemTextEncodingPopup) { // first time called, create the menu - g_pMdiWindowSystemTextEncodingPopup = new KviTalPopupMenu(); - g_pMdiWindowSystemTextEncodingPopupStandard = new KviTalPopupMenu(); - g_pMdiWindowSystemTextEncodingPopupSmart = new KviTalPopupMenu(); - g_pMdiWindowSystemTextEncodingPopupSmartUtf8 = new KviTalPopupMenu(); + g_pMdiWindowSystemTextEncodingPopup = new QMenu(); + g_pMdiWindowSystemTextEncodingPopupStandard = new QMenu(); + g_pMdiWindowSystemTextEncodingPopupSmart = new QMenu(); + g_pMdiWindowSystemTextEncodingPopupSmartUtf8 = new QMenu(); g_pMdiWindowSystemTextEncodingActionGroup = new QActionGroup(g_pMdiWindowSystemTextEncodingPopup); //default action @@ -687,11 +687,14 @@ void KviWindow::createSystemTextEncodingPopup() g_pMdiWindowSystemTextEncodingCurrentAction->setVisible(false); // other first level menus - g_pMdiWindowSystemTextEncodingPopup->insertSeparator(); + g_pMdiWindowSystemTextEncodingPopup->addSeparator(); - g_pMdiWindowSystemTextEncodingPopup->insertItem(__tr2qs("Standard"),g_pMdiWindowSystemTextEncodingPopupStandard); - g_pMdiWindowSystemTextEncodingPopup->insertItem(__tr2qs("Smart (Send Local)"),g_pMdiWindowSystemTextEncodingPopupSmart); - g_pMdiWindowSystemTextEncodingPopup->insertItem(__tr2qs("Smart (Send UTF-8)"),g_pMdiWindowSystemTextEncodingPopupSmartUtf8); + QAction * pAction = g_pMdiWindowSystemTextEncodingPopup->addAction(__tr2qs("Standard")); + pAction->setMenu(g_pMdiWindowSystemTextEncodingPopupStandard); + pAction = g_pMdiWindowSystemTextEncodingPopup->addAction(__tr2qs("Smart (Send Local)")); + pAction->setMenu(g_pMdiWindowSystemTextEncodingPopupSmart); + pAction = g_pMdiWindowSystemTextEncodingPopup->addAction(__tr2qs("Smart (Send UTF-8)")); + pAction->setMenu(g_pMdiWindowSystemTextEncodingPopupSmartUtf8); // second level menus (encoding groups) QMenu * pPopupStandard[KVI_NUM_ENCODING_GROUPS]; diff --git a/src/kvirc/ui/KviWindow.h b/src/kvirc/ui/KviWindow.h index 4505c41dd..a20193fcc 100644 --- a/src/kvirc/ui/KviWindow.h +++ b/src/kvirc/ui/KviWindow.h @@ -63,7 +63,7 @@ class KviIrcView; class KviConsoleWindow; class KviIrcConnection; class KviWindowToolPageButton; -class KviTalPopupMenu; +class QMenu; class KviTalHBox; #ifdef COMPILE_CRYPT_SUPPORT diff --git a/src/modules/aliaseditor/AliasEditorWindow.cpp b/src/modules/aliaseditor/AliasEditorWindow.cpp index b3e06c285..69a0ecf76 100644 --- a/src/modules/aliaseditor/AliasEditorWindow.cpp +++ b/src/modules/aliaseditor/AliasEditorWindow.cpp @@ -150,7 +150,7 @@ AliasEditorWidget::AliasEditorWidget(QWidget * par) connect(m_pEditor,SIGNAL(find(const QString &)),this,SLOT(slotFindWord(const QString &))); connect(m_pEditor,SIGNAL(replaceAll(const QString &,const QString &)),this,SLOT(slotReplaceAll(const QString &,const QString &))); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); oneTimeSetup(); @@ -555,14 +555,12 @@ void AliasEditorWidget::customContextMenuRequested(const QPoint pnt) m_pContextPopup->clear(); m_pLastClickedItem = (AliasEditorTreeWidgetItem *)m_pTreeWidget->itemAt(pnt); - int id; - - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Alias)), __tr2qs_ctx("Add Alias","editor"), this,SLOT(newAlias())); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Alias)), __tr2qs_ctx("Add Namespace","editor"), this,SLOT(newNamespace())); @@ -570,49 +568,47 @@ void AliasEditorWidget::customContextMenuRequested(const QPoint pnt) bool bHasItems = m_pTreeWidget->topLevelItemCount(); bool bHasSelected = hasSelectedItems(); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - id = m_pContextPopup->insertItem( + QAction *pAction = m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Quit)), __tr2qs_ctx("Remove Selected","editor"), this,SLOT(removeSelectedItems())); - m_pContextPopup->setItemEnabled(id,bHasSelected); + pAction->setEnabled(bHasSelected); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("Export Selected...","editor"), - this,SLOT(exportSelected())); - m_pContextPopup->setItemEnabled(id,bHasSelected); + this,SLOT(exportSelected())) + ->setEnabled(bHasSelected); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("Export Selected in singles files...","editor"), - this,SLOT(exportSelectedSepFiles())); - - m_pContextPopup->setItemEnabled(id,bHasSelected); + this,SLOT(exportSelectedSepFiles())) + ->setEnabled(bHasSelected); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("Export All...","editor"), - this,SLOT(exportAll())); - m_pContextPopup->setItemEnabled(id,bHasItems); + this,SLOT(exportAll())) + ->setEnabled(bHasItems); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Search)), __tr2qs_ctx("Find In Aliases...","editor"), - this,SLOT(slotFind())); - m_pContextPopup->setItemEnabled(id,bHasItems); + this,SLOT(slotFind())) + ->setEnabled(bHasItems); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::NameSpace)), __tr2qs_ctx("Collapse All Namespaces","editor"), - this,SLOT(slotCollapseNamespaces())); - - m_pContextPopup->setItemEnabled(id,bHasItems); + this,SLOT(slotCollapseNamespaces())) + ->setEnabled(bHasItems); m_pContextPopup->popup( m_pTreeWidget->mapToGlobal(pnt)); } diff --git a/src/modules/aliaseditor/AliasEditorWindow.h b/src/modules/aliaseditor/AliasEditorWindow.h index ab11953a5..d48fa6b24 100644 --- a/src/modules/aliaseditor/AliasEditorWindow.h +++ b/src/modules/aliaseditor/AliasEditorWindow.h @@ -27,7 +27,7 @@ #include "KviWindow.h" #include "KviCString.h" #include "KviPointerList.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviHeapObject.h" #include <QWidget> @@ -96,7 +96,7 @@ public: QPushButton * m_pRenameButton; AliasEditorTreeWidgetItem * m_pLastEditedItem; AliasEditorTreeWidgetItem * m_pLastClickedItem; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; QSplitter * m_pSplitter; QString m_szDir; bool m_bSaving; diff --git a/src/modules/channelsjoin/ChannelsJoinDialog.cpp b/src/modules/channelsjoin/ChannelsJoinDialog.cpp index 4712b691f..71f3b9eb0 100644 --- a/src/modules/channelsjoin/ChannelsJoinDialog.cpp +++ b/src/modules/channelsjoin/ChannelsJoinDialog.cpp @@ -273,9 +273,9 @@ void ChannelsJoinDialogTreeWidget::mousePressEvent(QMouseEvent *e) pDialog->itemSelected(); if(!m_pJoinPopup) { - m_pJoinPopup = new KviTalPopupMenu(this); - m_pJoinPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Join)),__tr2qs("Join"),pDialog,SLOT(joinClicked())); - m_pJoinPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Discard)),__tr2qs("Delete"),pDialog,SLOT(deleteClicked())); + m_pJoinPopup = new QMenu(this); + m_pJoinPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Join)),__tr2qs("Join"),pDialog,SLOT(joinClicked())); + m_pJoinPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Discard)),__tr2qs("Delete"),pDialog,SLOT(deleteClicked())); } m_pJoinPopup->popup(QCursor::pos()); diff --git a/src/modules/channelsjoin/ChannelsJoinDialog.h b/src/modules/channelsjoin/ChannelsJoinDialog.h index 7e3a62965..91bd46a13 100644 --- a/src/modules/channelsjoin/ChannelsJoinDialog.h +++ b/src/modules/channelsjoin/ChannelsJoinDialog.h @@ -32,7 +32,7 @@ #include "KviWindow.h" #include "KviCString.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QTreeWidget> #include <QDialog> @@ -62,7 +62,7 @@ public: delete m_pJoinPopup; }; protected: - KviTalPopupMenu * m_pJoinPopup; + QMenu * m_pJoinPopup; /** * \brief Called when the user clicks on the list * \param e mouse event descriptor diff --git a/src/modules/classeditor/ClassEditorWindow.cpp b/src/modules/classeditor/ClassEditorWindow.cpp index 2358ec2f0..8484b267c 100644 --- a/src/modules/classeditor/ClassEditorWindow.cpp +++ b/src/modules/classeditor/ClassEditorWindow.cpp @@ -221,7 +221,7 @@ ClassEditorWidget::ClassEditorWidget(QWidget * pParent) m_pEditor->setFocus(); connect(m_pEditor,SIGNAL(find(const QString &)),this,SLOT(slotFindWord(const QString &))); connect(m_pEditor,SIGNAL(replaceAll(const QString &,const QString &)),this,SLOT(slotReplaceAll(const QString &,const QString &))); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); oneTimeSetup(); @@ -879,80 +879,79 @@ void ClassEditorWidget::customContextMenuRequested(QPoint pnt) m_pLastClickedItem = (ClassEditorTreeWidgetItem *)m_pTreeWidget->itemAt(pnt); - int iId; - iId = m_pContextPopup->insertItem( + QAction *pAction = m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::NameSpace)), __tr2qs_ctx("Add Namespace","editor"), this,SLOT(newNamespace())); if(!m_pLastClickedItem) - m_pContextPopup->setItemEnabled(iId,true); + pAction->setEnabled(true); else - m_pContextPopup->setItemEnabled(iId,m_pLastClickedItem->isNamespace()); + pAction->setEnabled(m_pLastClickedItem->isNamespace()); - iId = m_pContextPopup->insertItem( + pAction = m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Class)), __tr2qs_ctx("Add Class","editor"), this,SLOT(newClass())); if(!m_pLastClickedItem) - m_pContextPopup->setItemEnabled(iId,true); + pAction->setEnabled(true); else - m_pContextPopup->setItemEnabled(iId,m_pLastClickedItem->isNamespace()); + pAction->setEnabled(m_pLastClickedItem->isNamespace()); - iId = m_pContextPopup->insertItem( + pAction = m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Function)), __tr2qs_ctx("Add Member Function","editor"), this,SLOT(newMemberFunction())); if(!m_pLastClickedItem) - m_pContextPopup->setItemEnabled(iId,false); + pAction->setEnabled(false); else - m_pContextPopup->setItemEnabled(iId,m_pLastClickedItem->isClass()| m_pLastClickedItem->isMethod()); + pAction->setEnabled(m_pLastClickedItem->isClass()| m_pLastClickedItem->isMethod()); bool bHasItems = m_pTreeWidget->topLevelItemCount(); bool bHasSelected = hasSelectedItems(); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - iId = m_pContextPopup->insertItem( + pAction = m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Quit)), __tr2qs_ctx("Remove Selected","editor"), this,SLOT(removeSelectedItems())); - m_pContextPopup->setItemEnabled(iId,bHasSelected); + pAction->setEnabled(bHasSelected); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("Export Selected...","editor"), this,SLOT(exportSelected())); - m_pContextPopup->setItemEnabled(iId,bHasSelected); + pAction->setEnabled(bHasSelected); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("Export Selected in singles files...","editor"), this,SLOT(exportSelectedSepFiles())); - m_pContextPopup->setItemEnabled(iId,bHasSelected); + pAction->setEnabled(bHasSelected); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("Export All...","editor"), this,SLOT(exportAll())); - m_pContextPopup->setItemEnabled(iId,bHasItems); + pAction->setEnabled(bHasItems); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Search)), __tr2qs_ctx("Find In Classes...","editor"), this,SLOT(slotFind())); - m_pContextPopup->setItemEnabled(iId,bHasItems); + pAction->setEnabled(bHasItems); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::NameSpace)), __tr2qs_ctx("Collapse All Items","editor"), this,SLOT(slotCollapseItems())); - m_pContextPopup->setItemEnabled(iId,bHasItems); + pAction->setEnabled(bHasItems); m_pContextPopup->popup(m_pTreeWidget->mapToGlobal(pnt)); } diff --git a/src/modules/classeditor/ClassEditorWindow.h b/src/modules/classeditor/ClassEditorWindow.h index abb6ebb2c..cf41f64b6 100644 --- a/src/modules/classeditor/ClassEditorWindow.h +++ b/src/modules/classeditor/ClassEditorWindow.h @@ -33,7 +33,7 @@ #include "KviWindow.h" #include "KviCString.h" #include "KviPointerList.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviHeapObject.h" #include "KviKvsObjectClass.h" @@ -286,7 +286,7 @@ public: ClassEditorTreeWidgetItem * m_pLastEditedItem; ClassEditorTreeWidgetItem * m_pLastClickedItem; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; QSplitter * m_pSplitter; QString m_szDir; bool m_bSaving; diff --git a/src/modules/codetester/CodeTesterWindow.cpp b/src/modules/codetester/CodeTesterWindow.cpp index fb2f5de6a..28e8fc1b0 100644 --- a/src/modules/codetester/CodeTesterWindow.cpp +++ b/src/modules/codetester/CodeTesterWindow.cpp @@ -36,7 +36,7 @@ #include "KviParameterList.h" #include "KviKvsScript.h" #include "KviKvsVariantList.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QPushButton> #include <QLayout> diff --git a/src/modules/dcc/DccFileTransfer.cpp b/src/modules/dcc/DccFileTransfer.cpp index 251828fc2..dcb9fc320 100644 --- a/src/modules/dcc/DccFileTransfer.cpp +++ b/src/modules/dcc/DccFileTransfer.cpp @@ -1281,15 +1281,16 @@ void DccFileTransfer::abort() displayUpdate(); } -void DccFileTransfer::fillContextPopup(KviTalPopupMenu * m) +void DccFileTransfer::fillContextPopup(QMenu * m) { - m->insertItem(__tr2qs_ctx("Configure Bandwidth...","dcc"),this,SLOT(configureBandwidth())); - m->insertSeparator(); - m->insertItem(__tr2qs_ctx("Resend DCC","dcc"),this,SLOT(retryDCC())); - m->insertItem(__tr2qs_ctx("Resend TDCC","dcc"),this,SLOT(retryTDCC())); - m->insertItem(__tr2qs_ctx("Resend RevDCC","dcc"),this,SLOT(retryRevDCC())); - int id = m->insertItem(__tr2qs_ctx("Abort","dcc"),this,SLOT(abort())); - if(!active())m->setItemEnabled(id,false); + m->addAction(__tr2qs_ctx("Configure Bandwidth...","dcc"),this,SLOT(configureBandwidth())); + m->addSeparator(); + m->addAction(__tr2qs_ctx("Resend DCC","dcc"),this,SLOT(retryDCC())); + m->addAction(__tr2qs_ctx("Resend TDCC","dcc"),this,SLOT(retryTDCC())); + m->addAction(__tr2qs_ctx("Resend RevDCC","dcc"),this,SLOT(retryRevDCC())); + QAction *pAction = m->addAction(__tr2qs_ctx("Abort","dcc"),this,SLOT(abort())); + if(!active()) + pAction->setEnabled(false); } void DccFileTransfer::configureBandwidth() diff --git a/src/modules/dcc/DccFileTransfer.h b/src/modules/dcc/DccFileTransfer.h index d55fb3673..6f04013c5 100644 --- a/src/modules/dcc/DccFileTransfer.h +++ b/src/modules/dcc/DccFileTransfer.h @@ -34,7 +34,7 @@ #include "KviPointerList.h" #include "KviFileTransfer.h" #include "KviTimeUtils.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalHBox.h" #include "KviTalVBox.h" @@ -49,7 +49,7 @@ class QTimer; class QPainter; class DccFileTransfer; class DccMarshal; -class KviTalPopupMenu; +class QMenu; typedef struct _KviDccSendThreadOptions { @@ -216,7 +216,7 @@ public: virtual void displayPaint(QPainter * p,int column, QRect rect); virtual int displayHeight(int iLineSpacing); - virtual void fillContextPopup(KviTalPopupMenu * m); + virtual void fillContextPopup(QMenu * m); virtual void fillStatusString(QString &szBuffer); virtual bool active(); virtual QString tipText(); diff --git a/src/modules/dcc/canvaswidget.cpp b/src/modules/dcc/canvaswidget.cpp index 18cb9badd..20daa1418 100644 --- a/src/modules/dcc/canvaswidget.cpp +++ b/src/modules/dcc/canvaswidget.cpp @@ -27,7 +27,7 @@ #ifdef COMPILE_DCC_CANVAS #include "KviCString.h" #include "KviLocale.h" - #include "KviTalPopupMenu.h" + #include "QMenu.h" #include <QCursor> #include <QPainter> @@ -1229,8 +1229,8 @@ case QVariant::Bool: { QComboBox * b = new QComboBox(false,table()->viewport()); - b->insertItem("FALSE"); - b->insertItem("TRUE"); + b->addAction("FALSE"); + b->addAction("TRUE"); b->setCurrentItem(m_property.toBool() ? 1 : 0); return b; } @@ -1254,20 +1254,20 @@ tmp.setNum(m_property.toFont().pointSize()); tmp.prepend(", "); tmp.prepend(m_property.toFont().family()); - b->insertItem(tmp); - b->insertItem(tmpDefault + ", 8"); - b->insertItem(tmpDefault + ", 10"); - b->insertItem(tmpDefault + ", 12"); - b->insertItem(tmpDefault + ", 14"); - b->insertItem(tmpDefault + ", 16"); - b->insertItem(tmpDefault + ", 18"); - b->insertItem(tmpDefault + ", 20"); - b->insertItem(tmpDefault + ", 24"); - b->insertItem(tmpDefault + ", 28"); - b->insertItem(tmpDefault + ", 32"); - b->insertItem(tmpDefault + ", 40"); - b->insertItem(tmpDefault + ", 48"); - b->insertItem(f.family() + ", 12"); + b->addAction(tmp); + b->addAction(tmpDefault + ", 8"); + b->addAction(tmpDefault + ", 10"); + b->addAction(tmpDefault + ", 12"); + b->addAction(tmpDefault + ", 14"); + b->addAction(tmpDefault + ", 16"); + b->addAction(tmpDefault + ", 18"); + b->addAction(tmpDefault + ", 20"); + b->addAction(tmpDefault + ", 24"); + b->addAction(tmpDefault + ", 28"); + b->addAction(tmpDefault + ", 32"); + b->addAction(tmpDefault + ", 40"); + b->addAction(tmpDefault + ", 48"); + b->addAction(f.family() + ", 12"); b->setCurrentItem(0); b->setCurrentItem(m_property.toBool() ? 1 : 0); return b; @@ -1471,28 +1471,28 @@ connect(m_pPropertiesWidget,SIGNAL(propertyChanged(const QString &,const QVariant &)),m_pCanvasView,SLOT(propertyChanged(const QString &,const QVariant &))); - KviTalPopupMenu * add = new KviTalPopupMenu(m_pMenuBar); - KviTalPopupMenu * shapes = new KviTalPopupMenu(add); - KviTalPopupMenu * polygons = new KviTalPopupMenu(add); - KviTalPopupMenu * items = new KviTalPopupMenu(add); - shapes->insertItem(__tr2qs_ctx("&Line","dcc"),m_pCanvasView,SLOT(insertLine())); - shapes->insertItem(__tr2qs_ctx("&Rectangle","dcc"),m_pCanvasView,SLOT(insertRectangle())); - shapes->insertItem(__tr2qs_ctx("&Ellipse","dcc"),m_pCanvasView,SLOT(insertEllipse())); - shapes->insertItem(__tr2qs_ctx("&Pie","dcc"),m_pCanvasView,SLOT(insertPie())); - shapes->insertItem(__tr2qs_ctx("&Chord","dcc"),m_pCanvasView,SLOT(insertChord())); + QMenu * add = new QMenu(m_pMenuBar); + QMenu * shapes = new QMenu(add); + QMenu * polygons = new QMenu(add); + QMenu * items = new QMenu(add); + shapes->addAction(__tr2qs_ctx("&Line","dcc"),m_pCanvasView,SLOT(insertLine())); + shapes->addAction(__tr2qs_ctx("&Rectangle","dcc"),m_pCanvasView,SLOT(insertRectangle())); + shapes->addAction(__tr2qs_ctx("&Ellipse","dcc"),m_pCanvasView,SLOT(insertEllipse())); + shapes->addAction(__tr2qs_ctx("&Pie","dcc"),m_pCanvasView,SLOT(insertPie())); + shapes->addAction(__tr2qs_ctx("&Chord","dcc"),m_pCanvasView,SLOT(insertChord())); - items->insertItem(__tr2qs_ctx("&Rich text (html)","dcc"),m_pCanvasView,SLOT(insertRichText())); + items->addAction(__tr2qs_ctx("&Rich text (html)","dcc"),m_pCanvasView,SLOT(insertRichText())); - polygons->insertItem(__tr2qs_ctx("&Triangle","dcc"),m_pCanvasView,SLOT(insertPolygonTriangle())); - polygons->insertItem(__tr2qs_ctx("&Rectangle","dcc"),m_pCanvasView,SLOT(insertPolygonRectangle())); - polygons->insertItem(__tr2qs_ctx("&Pentagon","dcc"),m_pCanvasView,SLOT(insertPolygonPentagon())); - polygons->insertItem(__tr2qs_ctx("&Hexagon","dcc"),m_pCanvasView,SLOT(insertPolygonHexagon())); + polygons->addAction(__tr2qs_ctx("&Triangle","dcc"),m_pCanvasView,SLOT(insertPolygonTriangle())); + polygons->addAction(__tr2qs_ctx("&Rectangle","dcc"),m_pCanvasView,SLOT(insertPolygonRectangle())); + polygons->addAction(__tr2qs_ctx("&Pentagon","dcc"),m_pCanvasView,SLOT(insertPolygonPentagon())); + polygons->addAction(__tr2qs_ctx("&Hexagon","dcc"),m_pCanvasView,SLOT(insertPolygonHexagon())); - add->insertItem(__tr2qs_ctx("&Shape","dcc"),shapes); - add->insertItem(__tr2qs_ctx("&Item","dcc"),items); - add->insertItem(__tr2qs_ctx("&Polygons","dcc"),polygons); + add->addAction(__tr2qs_ctx("&Shape","dcc"),shapes); + add->addAction(__tr2qs_ctx("&Item","dcc"),items); + add->addAction(__tr2qs_ctx("&Polygons","dcc"),polygons); - m_pMenuBar->insertItem(__tr2qs_ctx("&Insert","dcc"),add); + m_pMenuBar->addAction(__tr2qs_ctx("&Insert","dcc"),add); } DccCanvasWidget::~DccCanvasWidget() diff --git a/src/modules/editor/ScriptEditorImplementation.cpp b/src/modules/editor/ScriptEditorImplementation.cpp index cbab328f7..1d4f838e3 100644 --- a/src/modules/editor/ScriptEditorImplementation.cpp +++ b/src/modules/editor/ScriptEditorImplementation.cpp @@ -795,11 +795,11 @@ ScriptEditorImplementation::ScriptEditorImplementation(QWidget * par) b->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); g->addWidget(b,1,0); - KviTalPopupMenu * pop = new KviTalPopupMenu(b); - pop->insertItem(__tr2qs_ctx("&Open...","editor"),this,SLOT(loadFromFile())); - pop->insertItem(__tr2qs_ctx("&Save As...","editor"),this,SLOT(saveToFile())); - pop->insertSeparator(); - pop->insertItem(__tr2qs_ctx("&Configure Editor...","editor"),this,SLOT(configureColors())); + QMenu * pop = new QMenu(b); + pop->addAction(__tr2qs_ctx("&Open...","editor"),this,SLOT(loadFromFile())); + pop->addAction(__tr2qs_ctx("&Save As...","editor"),this,SLOT(saveToFile())); + pop->addSeparator(); + pop->addAction(__tr2qs_ctx("&Configure Editor...","editor"),this,SLOT(configureColors())); b->setMenu(pop); b->setPopupMode(QToolButton::InstantPopup); diff --git a/src/modules/editor/ScriptEditorImplementation.h b/src/modules/editor/ScriptEditorImplementation.h index 50fcb3ca6..ad3d064e9 100644 --- a/src/modules/editor/ScriptEditorImplementation.h +++ b/src/modules/editor/ScriptEditorImplementation.h @@ -28,7 +28,7 @@ #include "KviScriptEditor.h" #include "KviPointerList.h" #include "KviSelectors.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QCompleter> #include <QLabel> diff --git a/src/modules/eventeditor/EventEditorWindow.cpp b/src/modules/eventeditor/EventEditorWindow.cpp index 7991f5c80..3ae064075 100644 --- a/src/modules/eventeditor/EventEditorWindow.cpp +++ b/src/modules/eventeditor/EventEditorWindow.cpp @@ -40,7 +40,7 @@ #include "KviFileDialog.h" #include "KviKvsEventManager.h" #include "KviTalVBox.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QMessageBox> #include <QSplitter> @@ -155,7 +155,7 @@ void EventEditor::oneTimeSetup() connect(m_pTreeWidget,SIGNAL(rightButtonPressed(QTreeWidgetItem *,QPoint)), this,SLOT(itemPressed(QTreeWidgetItem *,QPoint))); connect(KviKvsEventManager::instance(),SIGNAL(eventHandlerDisabled(const QString &)),this,SLOT(eventHandlerDisabled(const QString &))); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); m_pTreeWidget->sortItems(0,Qt::AscendingOrder); } void EventEditor::eventHandlerDisabled(const QString &szHandler) @@ -212,24 +212,24 @@ void EventEditor::itemPressed(QTreeWidgetItem *it,const QPoint &pnt) { QString tmp; if(!(((EventEditorHandlerTreeWidgetItem *)it)->m_bEnabled)) - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Handler)), __tr2qs_ctx("&Enable Handler","editor"),this,SLOT(toggleCurrentHandlerEnabled())); else - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::HandlerDisabled)), __tr2qs_ctx("&Disable Handler","editor"),this,SLOT(toggleCurrentHandlerEnabled())); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Quit)), __tr2qs_ctx("Re&move Handler","editor"), this,SLOT(removeCurrentHandler())); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("&Export Handler To...","editor"), this,SLOT(exportCurrentHandler())); } else { - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Handler)), __tr2qs_ctx("&New Handler","editor"), this,SLOT(addHandlerForCurrentEvent())); diff --git a/src/modules/eventeditor/EventEditorWindow.h b/src/modules/eventeditor/EventEditorWindow.h index 88451e4a8..ae51e2cb7 100644 --- a/src/modules/eventeditor/EventEditorWindow.h +++ b/src/modules/eventeditor/EventEditorWindow.h @@ -26,7 +26,7 @@ #include "KviWindow.h" #include "KviCString.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QWidget> #include <QLineEdit> @@ -90,7 +90,7 @@ public: KviScriptEditor * m_pEditor; EventEditorTreeWidget * m_pTreeWidget; QLineEdit * m_pNameEditor; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; EventEditorHandlerTreeWidgetItem * m_pLastEditedItem; bool m_bOneTimeSetupDone; public: diff --git a/src/modules/filetransferwindow/FileTransferWindow.cpp b/src/modules/filetransferwindow/FileTransferWindow.cpp index 00a9c2aa5..2693e39f7 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.cpp +++ b/src/modules/filetransferwindow/FileTransferWindow.cpp @@ -48,7 +48,7 @@ #include <QFontMetrics> #include <QEvent> #include <QKeyEvent> - +#include <QWidgetAction> #include <QHeaderView> #ifdef COMPILE_KDE_SUPPORT @@ -386,17 +386,17 @@ void FileTransferWindow::doubleClicked(FileTransferItem *it,const QPoint &) void FileTransferWindow::rightButtonPressed(FileTransferItem *it,const QPoint &pnt) { - if(!m_pContextPopup)m_pContextPopup = new KviTalPopupMenu(this); - if(!m_pLocalFilePopup)m_pLocalFilePopup = new KviTalPopupMenu(this); + if(!m_pContextPopup)m_pContextPopup = new QMenu(this); + if(!m_pLocalFilePopup)m_pLocalFilePopup = new QMenu(this); if(!m_pOpenFilePopup) { - m_pOpenFilePopup= new KviTalPopupMenu(this); + m_pOpenFilePopup= new QMenu(this); connect(m_pOpenFilePopup,SIGNAL(activated(int)),this,SLOT(openFilePopupActivated(int))); } m_pContextPopup->clear(); - int id; + QAction *pAction; if(it) { @@ -430,13 +430,13 @@ void FileTransferWindow::rightButtonPressed(FileTransferItem *it,const QPoint &p QLabel * l = new QLabel(tmp,m_pLocalFilePopup); QPalette p; l->setStyleSheet("background-color: " + p.color(QPalette::Normal, QPalette::Mid).name()); - m_pLocalFilePopup->insertItem(l); + m_pLocalFilePopup->addAction(new QWidgetAction(l)); #ifdef COMPILE_KDE_SUPPORT QString mimetype = KMimeType::findByPath(szFile)->name(); KService::List offers = KMimeTypeTrader::self()->query(mimetype,"Application"); - id = m_pLocalFilePopup->insertItem(__tr2qs_ctx("&Open","filetransferwindow"),this,SLOT(openLocalFile())); + id = m_pLocalFilePopup->addAction(__tr2qs_ctx("&Open","filetransferwindow"),this,SLOT(openLocalFile())); m_pLocalFilePopup->setItemParameter(id,-1); m_pOpenFilePopup->clear(); @@ -447,7 +447,7 @@ void FileTransferWindow::rightButtonPressed(FileTransferItem *it,const QPoint &p for(KService::List::Iterator itOffers = offers.begin(); itOffers != offers.end(); ++itOffers) { - id = m_pOpenFilePopup->insertItem( + id = m_pOpenFilePopup->addAction( SmallIcon((*itOffers).data()->icon()), (*itOffers).data()->name() ); @@ -455,42 +455,41 @@ void FileTransferWindow::rightButtonPressed(FileTransferItem *it,const QPoint &p idx++; } - m_pOpenFilePopup->insertSeparator(); + m_pOpenFilePopup->addSeparator(); - id = m_pOpenFilePopup->insertItem(__tr2qs_ctx("&Other...","filetransferwindow"),this,SLOT(openLocalFileWith())); + id = m_pOpenFilePopup->addAction(__tr2qs_ctx("&Other...","filetransferwindow"),this,SLOT(openLocalFileWith())); m_pOpenFilePopup->setItemParameter(id,-1); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open &With","filetransferwindow"),m_pOpenFilePopup); - m_pLocalFilePopup->insertSeparator(); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open &Location","filetransferwindow"),this,SLOT(openLocalFileFolder())); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Terminal at Location","filetransferwindow"),this,SLOT(openLocalFileTerminal())); - m_pLocalFilePopup->insertSeparator(); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Open &With","filetransferwindow"),m_pOpenFilePopup); + m_pLocalFilePopup->addSeparator(); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Open &Location","filetransferwindow"),this,SLOT(openLocalFileFolder())); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Terminal at Location","filetransferwindow"),this,SLOT(openLocalFileTerminal())); + m_pLocalFilePopup->addSeparator(); #endif //COMPILE_KDE_SUPPORT //-| Grifisx & Noldor |- #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - id = m_pLocalFilePopup->insertItem(__tr2qs_ctx("&Open","filetransferwindow"),this,SLOT(openLocalFile())); + id = m_pLocalFilePopup->addAction(__tr2qs_ctx("&Open","filetransferwindow"),this,SLOT(openLocalFile())); m_pLocalFilePopup->setItemParameter(id,-1); - m_pOpenFilePopup->insertSeparator(); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open &With","filetransferwindow"),this,SLOT(openLocalFileWith())); - m_pLocalFilePopup->insertSeparator(); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open &Location","filetransferwindow"),this,SLOT(openLocalFileFolder())); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("MS-DOS Prompt at Location","filetransferwindow"),this,SLOT(openLocalFileTerminal())); - m_pLocalFilePopup->insertSeparator(); + m_pOpenFilePopup->addSeparator(); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Open &With","filetransferwindow"),this,SLOT(openLocalFileWith())); + m_pLocalFilePopup->addSeparator(); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Open &Location","filetransferwindow"),this,SLOT(openLocalFileFolder())); + m_pLocalFilePopup->addAction(__tr2qs_ctx("MS-DOS Prompt at Location","filetransferwindow"),this,SLOT(openLocalFileTerminal())); + m_pLocalFilePopup->addSeparator(); #endif // G&N end - m_pLocalFilePopup->insertItem(__tr2qs_ctx("&Copy Path to Clipboard","filetransferwindow"),this,SLOT(copyLocalFileToClipboard())); - - id = m_pLocalFilePopup->insertItem(__tr2qs_ctx("&Delete file","filetransferwindow"),this,SLOT(deleteLocalFile())); - m_pLocalFilePopup->setItemEnabled(id,i->transfer()->terminated()); - m_pContextPopup->insertItem(__tr2qs_ctx("Local &File","filetransferwindow"),m_pLocalFilePopup); - + m_pLocalFilePopup->addAction(__tr2qs_ctx("&Copy Path to Clipboard","filetransferwindow"),this,SLOT(copyLocalFileToClipboard())); + pAction = m_pLocalFilePopup->addAction(__tr2qs_ctx("&Delete file","filetransferwindow"),this,SLOT(deleteLocalFile())); + pAction->setEnabled(i->transfer()->terminated()); + pAction = m_pContextPopup->addAction(__tr2qs_ctx("Local &File","filetransferwindow")); + pAction->setMenu(m_pLocalFilePopup); } i->transfer()->fillContextPopup(m_pContextPopup); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); } } @@ -512,15 +511,15 @@ void FileTransferWindow::rightButtonPressed(FileTransferItem *it,const QPoint &p } } - id = m_pContextPopup->insertItem(__tr2qs_ctx("&Clear Terminated","filetransferwindow"),this,SLOT(clearTerminated())); - m_pContextPopup->setItemEnabled(id,bHaveTerminated); + pAction = m_pContextPopup->addAction(__tr2qs_ctx("&Clear Terminated","filetransferwindow"),this,SLOT(clearTerminated())); + pAction->setEnabled(bHaveTerminated); bool bAreTransfersActive = false; if(m_pTableWidget->rowCount() >= 1) bAreTransfersActive = true; - id = m_pContextPopup->insertItem(__tr2qs_ctx("Clear &All","filetransferwindow"),this,SLOT(clearAll())); - m_pContextPopup->setItemEnabled(id,bAreTransfersActive); + pAction = m_pContextPopup->addAction(__tr2qs_ctx("Clear &All","filetransferwindow"),this,SLOT(clearAll())); + pAction->setEnabled(bAreTransfersActive); m_pContextPopup->popup(pnt); } diff --git a/src/modules/filetransferwindow/FileTransferWindow.h b/src/modules/filetransferwindow/FileTransferWindow.h index 9fadaba19..3588439e7 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.h +++ b/src/modules/filetransferwindow/FileTransferWindow.h @@ -33,7 +33,7 @@ #include "KviFileTransfer.h" #include "KviDynamicToolTip.h" #include "KviTalTableWidget.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalIconAndRichTextItemDelegate.h" #include <QTimer> @@ -97,9 +97,9 @@ protected: QSplitter * m_pVertSplitter; FileTransferWidget * m_pTableWidget; QAbstractItemDelegate * m_pItemDelegate; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pLocalFilePopup; - KviTalPopupMenu * m_pOpenFilePopup; + QMenu * m_pContextPopup; + QMenu * m_pLocalFilePopup; + QMenu * m_pOpenFilePopup; QTimer * m_pTimer; int m_iLineSpacing; // cached fm value public: // Methods diff --git a/src/modules/http/HttpFileTransfer.cpp b/src/modules/http/HttpFileTransfer.cpp index 2e63b1aa1..9a45e500b 100644 --- a/src/modules/http/HttpFileTransfer.cpp +++ b/src/modules/http/HttpFileTransfer.cpp @@ -33,7 +33,7 @@ #include "KviKvsEventTriggers.h" #include "KviConsoleWindow.h" #include "KviKvsScript.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QPainter> @@ -98,10 +98,11 @@ void HttpFileTransfer::abort() m_pHttpRequest->abort(); } -void HttpFileTransfer::fillContextPopup(KviTalPopupMenu * m) +void HttpFileTransfer::fillContextPopup(QMenu * m) { - int id = m->insertItem(__tr2qs_ctx("Abort","http"),this,SLOT(abort())); - if(!active())m->setItemEnabled(id,false); + QAction *pAction = m->addAction(__tr2qs_ctx("Abort","http"),this,SLOT(abort())); + if(!active()) + pAction->setEnabled(false); } bool HttpFileTransfer::active() diff --git a/src/modules/http/HttpFileTransfer.h b/src/modules/http/HttpFileTransfer.h index b89c465b9..6f731be40 100644 --- a/src/modules/http/HttpFileTransfer.h +++ b/src/modules/http/HttpFileTransfer.h @@ -33,7 +33,7 @@ #include <QTimer> class QPainter; -class KviTalPopupMenu; +class QMenu; class HttpFileTransfer : public KviFileTransfer { @@ -78,7 +78,7 @@ public: virtual void displayPaint(QPainter * p,int column, QRect rect); virtual int displayHeight(int iLineSpacing); - virtual void fillContextPopup(KviTalPopupMenu * m); + virtual void fillContextPopup(QMenu * m); virtual bool active(); virtual QString tipText(); virtual QString localFileName(); diff --git a/src/modules/links/LinksWindow.cpp b/src/modules/links/LinksWindow.cpp index 9e0573401..21ccf2f5b 100644 --- a/src/modules/links/LinksWindow.cpp +++ b/src/modules/links/LinksWindow.cpp @@ -88,8 +88,8 @@ LinksWindow::LinksWindow(KviConsoleWindow * lpConsole) m_pLinkList = new KviPointerList<KviLink>; m_pLinkList->setAutoDelete(true); - m_pHostPopup = new KviTalPopupMenu(); - connect(m_pHostPopup,SIGNAL(activated(int)),this,SLOT(hostPopupClicked(int))); + m_pHostPopup = new QMenu(); + connect(m_pHostPopup,SIGNAL(triggered(QAction*)),this,SLOT(hostPopupClicked(QAction *))); connectionStateChange(); @@ -360,53 +360,53 @@ void LinksWindow::showHostPopup(QTreeWidgetItem *i,const QPoint &p) if(host.isEmpty())return; m_pHostPopup->clear(); KviCString tmp(KviCString::Format,"LINKS %s *",host.ptr()); - m_pHostPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Links)),tmp.ptr()); - m_pHostPopup->insertSeparator(); + m_pHostPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Links)),tmp.ptr()); + m_pHostPopup->addSeparator(); tmp.sprintf("TIME %s",host.ptr()); - m_pHostPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),tmp.ptr()); + m_pHostPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),tmp.ptr()); tmp.sprintf("ADMIN %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("INFO %s",host.ptr()); - m_pHostPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::ServerInfo)),tmp.ptr()); + m_pHostPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::ServerInfo)),tmp.ptr()); tmp.sprintf("MOTD %s",host.ptr()); - m_pHostPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Motd)),tmp.ptr()); + m_pHostPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Motd)),tmp.ptr()); tmp.sprintf("VERSION %s",host.ptr()); - m_pHostPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::KVIrc)),tmp.ptr()); + m_pHostPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::KVIrc)),tmp.ptr()); tmp.sprintf("TRACE %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("USERS %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); - m_pHostPopup->insertSeparator(); + m_pHostPopup->addAction(tmp.ptr()); + m_pHostPopup->addSeparator(); tmp.sprintf("STATS c %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS d %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS h %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS i %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS k %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS l %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS m %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS o %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS t %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS u %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS y %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); tmp.sprintf("STATS z %s",host.ptr()); - m_pHostPopup->insertItem(tmp.ptr()); + m_pHostPopup->addAction(tmp.ptr()); m_pHostPopup->popup(p); } -void LinksWindow::hostPopupClicked(int id) +void LinksWindow::hostPopupClicked(QAction *pAction) { - KviCString tmp = m_pHostPopup->text(id); + KviCString tmp = pAction->text(); if(tmp.hasData()) { if(!connection())output(KVI_OUT_SYSTEMERROR,__tr2qs("You're not connected to a server")); diff --git a/src/modules/links/LinksWindow.h b/src/modules/links/LinksWindow.h index 89c35b05e..45b4d8e87 100644 --- a/src/modules/links/LinksWindow.h +++ b/src/modules/links/LinksWindow.h @@ -30,7 +30,7 @@ #include "KviIrcServerParser.h" #include "KviConsoleWindow.h" #include "KviIrcContext.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviThemedTreeWidget.h" #include <QToolButton> @@ -68,7 +68,7 @@ protected: QSplitter * m_pTopSplitter; LinksListView * m_pListView; KviPointerList<KviLink> * m_pLinkList; - KviTalPopupMenu * m_pHostPopup; + QMenu * m_pHostPopup; QString m_szRootServer; QToolButton * m_pRequestButton; KviThemedLabel * m_pInfoLabel; @@ -84,7 +84,7 @@ protected: virtual void getBaseLogFileName(QString &buffer); protected slots: void showHostPopup(QTreeWidgetItem *i,const QPoint &p); - void hostPopupClicked(int id); + void hostPopupClicked(QAction *pAction); void requestLinks(); void connectionStateChange(); public: diff --git a/src/modules/list/ListWindow.h b/src/modules/list/ListWindow.h index 2c77e0453..edc0c190b 100644 --- a/src/modules/list/ListWindow.h +++ b/src/modules/list/ListWindow.h @@ -31,7 +31,7 @@ #include "KviIrcServerParser.h" #include "KviConsoleWindow.h" #include "KviIrcContext.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviThemedTreeWidget.h" #include <QToolButton> diff --git a/src/modules/logview/LogViewWindow.cpp b/src/modules/logview/LogViewWindow.cpp index 36dd8fcb4..c4c492e6a 100644 --- a/src/modules/logview/LogViewWindow.cpp +++ b/src/modules/logview/LogViewWindow.cpp @@ -37,7 +37,7 @@ #include "KviQString.h" #include "KviApplication.h" #include "KviFileUtils.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviControlCodes.h" #include <QList> @@ -186,11 +186,11 @@ LogViewWindow::LogViewWindow(KviModuleExtensionDescriptor * pDesc) li.append(width()-110); m_pSplitter->setSizes(li); - m_pExportLogPopup = new KviTalPopupMenu(this,"exportlog"); - m_pExportLogPopup->insertItem(__tr2qs_ctx("plain text file","log")); - m_pExportLogPopup->insertItem(__tr2qs_ctx("HTML archive","log")); - //m_pExportLogPopup->insertItem(__tr2qs_ctx("XML file","log")); - //m_pExportLogPopup->insertItem(__tr2qs_ctx("database file","log")); + m_pExportLogPopup = new QMenu("exportlog", this); + m_pExportLogPopup->addAction(__tr2qs_ctx("plain text file","log")); + m_pExportLogPopup->addAction(__tr2qs_ctx("HTML archive","log")); + //m_pExportLogPopup->addAction(__tr2qs_ctx("XML file","log")); + //m_pExportLogPopup->addAction(__tr2qs_ctx("database file","log")); connect(m_pExportLogPopup,SIGNAL(activated(int)),this,SLOT(exportLog(int))); m_pTimer = new QTimer(this); @@ -433,14 +433,14 @@ void LogViewWindow::rightButtonClicked(QTreeWidgetItem * pItem, const QPoint &) return; m_pListView->setCurrentItem(pItem); - KviTalPopupMenu * pPopup = new KviTalPopupMenu(this); + QMenu * pPopup = new QMenu(this); if(((LogListViewItem *)pItem)->childCount()) { - //pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::UserList)),__tr2qs_ctx("Export all log files to","log"),m_pExportLogPopup); - pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Remove all log files within this folder","log"),this,SLOT(deleteCurrent())); + //pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::UserList)),__tr2qs_ctx("Export all log files to","log"),m_pExportLogPopup); + pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Remove all log files within this folder","log"),this,SLOT(deleteCurrent())); } else { - pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::UserList)),__tr2qs_ctx("Export log file to","log"),m_pExportLogPopup); - pPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Remove log file","log"),this,SLOT(deleteCurrent())); + pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::UserList)),__tr2qs_ctx("Export log file to","log"))->setMenu(m_pExportLogPopup); + pPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Remove log file","log"),this,SLOT(deleteCurrent())); } pPopup->exec(QCursor::pos()); diff --git a/src/modules/logview/LogViewWindow.h b/src/modules/logview/LogViewWindow.h index 6255a0398..c62a43470 100644 --- a/src/modules/logview/LogViewWindow.h +++ b/src/modules/logview/LogViewWindow.h @@ -100,7 +100,7 @@ protected: QString m_szLastGroup; bool m_bAborted; QTimer * m_pTimer; - KviTalPopupMenu * m_pExportLogPopup; + QMenu * m_pExportLogPopup; public: /** * \brief Exports the log and creates the file in the selected format diff --git a/src/modules/notifier/NotifierWindow.cpp b/src/modules/notifier/NotifierWindow.cpp index 651b2a77b..b6897ecac 100644 --- a/src/modules/notifier/NotifierWindow.cpp +++ b/src/modules/notifier/NotifierWindow.cpp @@ -953,9 +953,9 @@ void NotifierWindow::contextPopup(const QPoint & pos) { if(!m_pContextPopup) { - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); connect(m_pContextPopup,SIGNAL(aboutToShow()),this,SLOT(fillContextPopup())); - m_pDisablePopup = new KviTalPopupMenu(this); + m_pDisablePopup = new QMenu(this); } m_pContextPopup->popup(pos); @@ -964,20 +964,20 @@ void NotifierWindow::contextPopup(const QPoint & pos) void NotifierWindow::fillContextPopup() { m_pContextPopup->clear(); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Editor)),__tr2qs_ctx("Show/Hide input line","notifier"),this,SLOT(toggleLineEdit())); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Close)),__tr2qs_ctx("Hide","notifier"),this,SLOT(hideNow())); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Editor)),__tr2qs_ctx("Show/Hide input line","notifier"),this,SLOT(toggleLineEdit())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Close)),__tr2qs_ctx("Hide","notifier"),this,SLOT(hideNow())); + m_pContextPopup->addSeparator(); m_pDisablePopup->clear(); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("1 Minute","notifier"),this,SLOT(disableFor1Minute())); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("5 Minutes","notifier"),this,SLOT(disableFor5Minutes())); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("15 Minutes","notifier"),this,SLOT(disableFor15Minutes())); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("30 Minutes","notifier"),this,SLOT(disableFor30Minutes())); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("1 Hour","notifier"),this,SLOT(disableFor60Minutes())); - m_pDisablePopup->insertSeparator(); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Until KVIrc is Restarted","notifier"),this,SLOT(disableUntilKVIrcRestarted())); - m_pDisablePopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Permanently (Until Explicitly Enabled)","notifier"),this,SLOT(disablePermanently())); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("1 Minute","notifier"),this,SLOT(disableFor1Minute())); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("5 Minutes","notifier"),this,SLOT(disableFor5Minutes())); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("15 Minutes","notifier"),this,SLOT(disableFor15Minutes())); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("30 Minutes","notifier"),this,SLOT(disableFor30Minutes())); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Time)),__tr2qs_ctx("1 Hour","notifier"),this,SLOT(disableFor60Minutes())); + m_pDisablePopup->addSeparator(); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Until KVIrc is Restarted","notifier"),this,SLOT(disableUntilKVIrcRestarted())); + m_pDisablePopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Permanently (Until Explicitly Enabled)","notifier"),this,SLOT(disablePermanently())); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Disable","notifier"),m_pDisablePopup); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Quit)),__tr2qs_ctx("Disable","notifier"))->setMenu(m_pDisablePopup); } void NotifierWindow::disableFor15Minutes() diff --git a/src/modules/notifier/NotifierWindow.h b/src/modules/notifier/NotifierWindow.h index d58cde2ae..87f67c9b4 100644 --- a/src/modules/notifier/NotifierWindow.h +++ b/src/modules/notifier/NotifierWindow.h @@ -30,7 +30,7 @@ #include "kvi_settings.h" #include "KviQString.h" #include "KviPointerList.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTimeUtils.h" #include <QBitmap> @@ -90,8 +90,8 @@ protected: QPoint m_pntPos; QPoint m_pntClick; int m_iBlinkCount; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pDisablePopup; + QMenu * m_pContextPopup; + QMenu * m_pDisablePopup; KviWindow * m_pWindowToRaise; kvi_time_t m_tAutoHideAt; kvi_time_t m_tStartedAt; diff --git a/src/modules/objects/KvsObject_comboBox.cpp b/src/modules/objects/KvsObject_comboBox.cpp index 8951e4200..9cd49b01c 100644 --- a/src/modules/objects/KvsObject_comboBox.cpp +++ b/src/modules/objects/KvsObject_comboBox.cpp @@ -49,7 +49,7 @@ [class]widget[/class] @description: @functions: - !fn: $insertItem(<text:string>, <index:int>) + !fn: $addAction(<text:string>, <index:int>) Inserts a text item at position <index>. If index is negative or not specified the item is appended. !fn: $changeItem(<text:string>, <index:uint>) @@ -99,7 +99,7 @@ */ KVSO_BEGIN_REGISTERCLASS(KvsObject_comboBox,"combobox","widget") - KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_comboBox,insertItem) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_comboBox,addAction) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_comboBox,changeItem) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_comboBox,removeItem) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_comboBox,clear) @@ -139,7 +139,7 @@ bool KvsObject_comboBox::init(KviKvsRunTimeContext *,KviKvsVariantList *) return true; } -KVSO_CLASS_FUNCTION(comboBox,insertItem) +KVSO_CLASS_FUNCTION(comboBox,addAction) { CHECK_INTERNAL_POINTER(widget()) kvs_int_t iIndex; @@ -151,7 +151,7 @@ KVSO_CLASS_FUNCTION(comboBox,insertItem) if(c->paramCount()==1) ((QComboBox *)widget())->addItem(szItem); else - ((QComboBox *)widget())->insertItem( iIndex,szItem); + ((QComboBox *)widget())->insertItem( iIndex,szItem); return true; } KVSO_CLASS_FUNCTION(comboBox,clear) diff --git a/src/modules/objects/KvsObject_comboBox.h b/src/modules/objects/KvsObject_comboBox.h index a10ac6c29..c9aa9a382 100644 --- a/src/modules/objects/KvsObject_comboBox.h +++ b/src/modules/objects/KvsObject_comboBox.h @@ -41,7 +41,7 @@ public: protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); - bool insertItem(KviKvsObjectFunctionCall *c); + bool addAction(KviKvsObjectFunctionCall *c); bool changeItem(KviKvsObjectFunctionCall *c); bool removeItem(KviKvsObjectFunctionCall *c); bool clear(KviKvsObjectFunctionCall *c); diff --git a/src/modules/objects/KvsObject_listWidget.cpp b/src/modules/objects/KvsObject_listWidget.cpp index 081627caa..7570a3b11 100644 --- a/src/modules/objects/KvsObject_listWidget.cpp +++ b/src/modules/objects/KvsObject_listWidget.cpp @@ -106,7 +106,7 @@ const char * const itemflags_tbl[] = { Returns '1' if the eventual item check box is checked, '0' otherwise.[br] !fn: <string> $selectionMode() Returns the current selection mode - !fn: $insertItem(<text:string>, <index:uint>) + !fn: $addAction(<text:string>, <index:uint>) Inserts a text item at position <index>. If index is negative or not specified the item is appended. !fn: $changeItem(<text:string>, <index:uint>) @@ -156,7 +156,7 @@ const char * const itemflags_tbl[] = { KVSO_BEGIN_REGISTERCLASS(KvsObject_listWidget,"listbox","widget") - KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_listWidget,insertItem) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_listWidget,addAction) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_listWidget,insertWidgetItem) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_listWidget,changeItem) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_listWidget,removeItem) @@ -214,7 +214,7 @@ bool KvsObject_listWidget::init(KviKvsRunTimeContext *,KviKvsVariantList *) return true; } -KVSO_CLASS_FUNCTION(listWidget,insertItem) +KVSO_CLASS_FUNCTION(listWidget,addAction) { CHECK_INTERNAL_POINTER(widget()) kvs_int_t iRow; @@ -223,7 +223,7 @@ KVSO_CLASS_FUNCTION(listWidget,insertItem) KVSO_PARAMETER("text",KVS_PT_STRING,0,szText) KVSO_PARAMETER("index",KVS_PT_INT,KVS_PF_OPTIONAL,iRow) KVSO_PARAMETERS_END(c) - if (c->parameterCount()==2) ((QListWidget *)widget())->insertItem(iRow, szText); + if (c->parameterCount()==2) ((QListWidget *)widget())->insertItem(iRow, szText); else ((QListWidget *)widget())->addItem(szText); return true; } diff --git a/src/modules/objects/KvsObject_listWidget.h b/src/modules/objects/KvsObject_listWidget.h index 72cfdd043..79031639c 100644 --- a/src/modules/objects/KvsObject_listWidget.h +++ b/src/modules/objects/KvsObject_listWidget.h @@ -40,7 +40,7 @@ protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); - bool insertItem(KviKvsObjectFunctionCall *c); + bool addAction(KviKvsObjectFunctionCall *c); bool changeItem(KviKvsObjectFunctionCall *c); bool removeItem(KviKvsObjectFunctionCall *c); bool count(KviKvsObjectFunctionCall *c); diff --git a/src/modules/objects/KvsObject_menuBar.cpp b/src/modules/objects/KvsObject_menuBar.cpp index 0a9904b2a..69c2257fc 100644 --- a/src/modules/objects/KvsObject_menuBar.cpp +++ b/src/modules/objects/KvsObject_menuBar.cpp @@ -42,12 +42,12 @@ @description: @functions: - !fn: <integer> $insertItem(<text:string>) + !fn: <integer> $addAction(<text:string>) Returns an integer that identifies the inserted item. */ KVSO_BEGIN_REGISTERCLASS(KvsObject_menuBar,"menubar","widget") - KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_menuBar,insertItem) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_menuBar,addAction) KVSO_END_REGISTERCLASS(KvsObject_menuBar) KVSO_BEGIN_CONSTRUCTOR(KvsObject_menuBar,KvsObject_widget) @@ -65,7 +65,7 @@ bool KvsObject_menuBar::init(KviKvsRunTimeContext *,KviKvsVariantList *) return true; } -KVSO_CLASS_FUNCTION(menuBar,insertItem) +KVSO_CLASS_FUNCTION(menuBar,addAction) { CHECK_INTERNAL_POINTER(widget()) QString szItem; diff --git a/src/modules/objects/KvsObject_menuBar.h b/src/modules/objects/KvsObject_menuBar.h index 32516f58b..820491a18 100644 --- a/src/modules/objects/KvsObject_menuBar.h +++ b/src/modules/objects/KvsObject_menuBar.h @@ -37,6 +37,6 @@ public: protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); - bool insertItem(KviKvsObjectFunctionCall *c); + bool addAction(KviKvsObjectFunctionCall *c); }; #endif // !_CLASS_MENUBAR_H_ diff --git a/src/modules/objects/KvsObject_popupMenu.cpp b/src/modules/objects/KvsObject_popupMenu.cpp index dd03eb010..02be27d46 100644 --- a/src/modules/objects/KvsObject_popupMenu.cpp +++ b/src/modules/objects/KvsObject_popupMenu.cpp @@ -30,7 +30,7 @@ #include "kvi_debug.h" #include "KviLocale.h" #include "KviIconManager.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QCursor> #include <QMenu> @@ -53,9 +53,9 @@ [class]widget[/class] @description: This widget can be used to display a popup menu.Technically, a popup menu consists of a list of menu items.[br] - You add items with insertItem(). An item is either a string. In addition, items can have an optional icon drawn on the very left side.[br] + You add items with addAction(). An item is either a string. In addition, items can have an optional icon drawn on the very left side.[br] @functions: - !fn: $insertItem(<text:string>,[icon_id:string]) + !fn: $addAction(<text:string>,[icon_id:string]) Inserts menu items into a popup menu with optional icon and return the popup identifier. !fn: $addMenu(<popupmenu:hobject,[idx:uinteger]) Add a popupmenu. @@ -69,7 +69,7 @@ Removes the menu item that has the identifier id. !fn: $removeItemAt(<index:uinteger>) Removes the menu item at position index. - !fn: $insertSeparator(<index:uinteger>) + !fn: $addSeparator(<index:uinteger>) Inserts a separator at position index.[br] If the index is negative the separator becomes the last menu item. !fn: $activatedEvent(<popup_id:uinteger>) @@ -92,11 +92,11 @@ constructor() { // we store the item's id for checkit in activatedEvent - @%tile_id=@$insertItem("Tile",118) - @%cascade_id=@$insertItem("Cascade",115) - @$insertSeparator(3) - @%closeactw_id=@$insertItem("Close Active Window",08) - @%closeallw_id=@$insertItem("Close All Window",58) + @%tile_id=@$addAction("Tile",118) + @%cascade_id=@$addAction("Cascade",115) + @$addSeparator(3) + @%closeactw_id=@$addAction("Close Active Window",08) + @%closeallw_id=@$addAction("Close All Window",58) } activatedEvent() { @@ -198,10 +198,10 @@ static void removeAction(int idx) KVSO_BEGIN_REGISTERCLASS(KvsObject_popupMenu,"popupmenu","widget") - KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,insertItem) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,addAction) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,setTitle) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,exec) - KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,insertSeparator) + KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,addSeparator) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,removeItem) KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_popupMenu,addMenu) @@ -229,7 +229,7 @@ bool KvsObject_popupMenu::init(KviKvsRunTimeContext *,KviKvsVariantList *) return true; } -KVSO_CLASS_FUNCTION(popupMenu,insertItem) +KVSO_CLASS_FUNCTION(popupMenu,addAction) { CHECK_INTERNAL_POINTER(widget()) QString szItem,szIcon; @@ -349,7 +349,7 @@ KVSO_CLASS_FUNCTION(popupMenu,removeItem) return true; } -KVSO_CLASS_FUNCTION(popupMenu,insertSeparator) +KVSO_CLASS_FUNCTION(popupMenu,addSeparator) { CHECK_INTERNAL_POINTER(widget()) kvs_uint_t iIndex; @@ -358,7 +358,7 @@ KVSO_CLASS_FUNCTION(popupMenu,insertSeparator) KVSO_PARAMETERS_END(c) QAction * pAction=getAction(iIndex); if(pAction) - ((QMenu *)widget())->insertSeparator(pAction); + ((QMenu *)widget())->insertSeparator(pAction); return true; } diff --git a/src/modules/objects/KvsObject_popupMenu.h b/src/modules/objects/KvsObject_popupMenu.h index ad0fc37c7..20c547d60 100644 --- a/src/modules/objects/KvsObject_popupMenu.h +++ b/src/modules/objects/KvsObject_popupMenu.h @@ -44,13 +44,13 @@ public: protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); - bool insertItem(KviKvsObjectFunctionCall *c); + bool addAction(KviKvsObjectFunctionCall *c); bool setTitle(KviKvsObjectFunctionCall *c); bool addMenu(KviKvsObjectFunctionCall *c); bool exec(KviKvsObjectFunctionCall *c); bool removeItem(KviKvsObjectFunctionCall *c); bool removeItemAt(KviKvsObjectFunctionCall *c); - bool insertSeparator(KviKvsObjectFunctionCall *c); + bool addSeparator(KviKvsObjectFunctionCall *c); bool activatedEvent(KviKvsObjectFunctionCall *c); bool highlightedEvent(KviKvsObjectFunctionCall *c); diff --git a/src/modules/objects/KvsObject_toolButton.cpp b/src/modules/objects/KvsObject_toolButton.cpp index 84d05560f..a37e8b0d8 100644 --- a/src/modules/objects/KvsObject_toolButton.cpp +++ b/src/modules/objects/KvsObject_toolButton.cpp @@ -29,7 +29,7 @@ #include "KviLocale.h" #include "KviIconManager.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" /* @doc: toolbutton @keyterms: @@ -273,7 +273,7 @@ KVSO_CLASS_FUNCTION(toolButton,setPopup) c->warning(__tr2qs_ctx("Can't add a non-popupmenu object","objects")); return true; } - ((QToolButton *)widget())->setMenu(((KviTalPopupMenu *)(ob->object()))); + ((QToolButton *)widget())->setMenu(((QMenu *)(ob->object()))); return true; } diff --git a/src/modules/objects/KvsObject_treeWidgeteItem.h b/src/modules/objects/KvsObject_treeWidgeteItem.h index 14b81b6ce..98491f6a4 100644 --- a/src/modules/objects/KvsObject_treeWidgeteItem.h +++ b/src/modules/objects/KvsObject_treeWidgeteItem.h @@ -42,7 +42,7 @@ protected: virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams); protected: bool setText(KviKvsObjectFunctionCall *c); - bool insertItem(KviKvsObjectFunctionCall *c); + bool addAction(KviKvsObjectFunctionCall *c); bool setPixmap(KviKvsObjectFunctionCall *c); bool setItemEditable(KviKvsObjectFunctionCall *c); bool isItemEditable(KviKvsObjectFunctionCall *c); diff --git a/src/modules/objects/KvsObject_webView.cpp b/src/modules/objects/KvsObject_webView.cpp index 6ba7529aa..a490f527a 100644 --- a/src/modules/objects/KvsObject_webView.cpp +++ b/src/modules/objects/KvsObject_webView.cpp @@ -30,7 +30,7 @@ #include "KvsObject_pixmap.h" #include "KviError.h" #include "KviLocale.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #if defined(COMPILE_WEBKIT_SUPPORT) #include <QWebView> @@ -1199,7 +1199,7 @@ KVSO_CLASS_FUNCTION(webView,appendWebViewActionToMenu) if (pix) pAction->setIcon(*pix); else c->warning(__tr2qs_ctx("Icon '%Q' doesn't exist","objects"),&szIcon); } - ((KviTalPopupMenu *)(ob->object()))->addAction(pAction); + ((QMenu *)(ob->object()))->addAction(pAction); return true; } diff --git a/src/modules/objects/KvsObject_widget.cpp b/src/modules/objects/KvsObject_widget.cpp index e235515e6..7aca679ad 100644 --- a/src/modules/objects/KvsObject_widget.cpp +++ b/src/modules/objects/KvsObject_widget.cpp @@ -550,12 +550,12 @@ const char * const widgettypes_tbl[] = { %checkbox->$setText("This is a checkbox") %combobox = $new(combobox,%box) - %combobox->$insertItem("This is a combobox") - %combobox->$insertItem("This is a combobox's item") + %combobox->$addAction("This is a combobox") + %combobox->$addAction("This is a combobox's item") %listbox = $new(listbox,%box) - %listbox->$insertItem("This is a listbox item") - %listbox->$insertItem("This is another item") + %listbox->$addAction("This is a listbox item") + %listbox->$addAction("This is another item") %radiobutton = $new(radiobutton,%box) %radiobutton->$setText("This is a radiobutton") diff --git a/src/modules/options/OptionsDialog.cpp b/src/modules/options/OptionsDialog.cpp index 24662c81c..20c4adcd3 100644 --- a/src/modules/options/OptionsDialog.cpp +++ b/src/modules/options/OptionsDialog.cpp @@ -34,7 +34,7 @@ #include "KviPointerHashTable.h" #include "KviTalVBox.h" #include "KviTalToolTip.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalGroupBox.h" #include <QLayout> diff --git a/src/modules/options/OptionsWidget_channel.cpp b/src/modules/options/OptionsWidget_channel.cpp index 21db51a8a..b33de8197 100644 --- a/src/modules/options/OptionsWidget_channel.cpp +++ b/src/modules/options/OptionsWidget_channel.cpp @@ -112,7 +112,7 @@ OptionsWidget_channelAdvanced::OptionsWidget_channelAdvanced(QWidget * pParent) hostmask.mask(tmp1,(KviIrcMask::MaskType)i); ipmask.mask(tmp2,(KviIrcMask::MaskType)i); - m_pBanTypeCombo->insertItem(m_pBanTypeCombo->count(),QString("%1 (%2)").arg(tmp1, tmp2)); + m_pBanTypeCombo->insertItem(m_pBanTypeCombo->count(),QString("%1 (%2)").arg(tmp1, tmp2)); } m_pBanTypeCombo->setCurrentIndex(KVI_OPTION_UINT(KviOption_uintDefaultBanType)); diff --git a/src/modules/options/OptionsWidget_identity.cpp b/src/modules/options/OptionsWidget_identity.cpp index cd4498f85..e79564221 100644 --- a/src/modules/options/OptionsWidget_identity.cpp +++ b/src/modules/options/OptionsWidget_identity.cpp @@ -351,7 +351,7 @@ KviIdentityGeneralOptionsWidget::KviIdentityGeneralOptionsWidget(QWidget * paren { QString tmp; tmp.setNum(i); - m_pAgeCombo->insertItem(m_pAgeCombo->count(),tmp); + m_pAgeCombo->insertItem(m_pAgeCombo->count(),tmp); } bool bOk; diff --git a/src/modules/options/OptionsWidget_message.cpp b/src/modules/options/OptionsWidget_message.cpp index ed5c2b742..9ff8ddab3 100644 --- a/src/modules/options/OptionsWidget_message.cpp +++ b/src/modules/options/OptionsWidget_message.cpp @@ -39,6 +39,7 @@ #include <QPushButton> #include <QCursor> #include <QPainter> +#include <QWidgetAction> #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) #include <unistd.h> // symlink() @@ -398,10 +399,10 @@ OptionsWidget_messageColors::OptionsWidget_messageColors(QWidget * parent) m_pIconButton = new QToolButton(box); connect(m_pIconButton,SIGNAL(clicked()),this,SLOT(iconButtonClicked())); - m_pIconPopup = new KviTalPopupMenu(this); + m_pIconPopup = new QMenu(this); KviIconWidget * iw = new KviIconWidget(m_pIconPopup); connect(iw,SIGNAL(selected(KviIconManager::SmallIcon)),this,SLOT(newIconSelected(KviIconManager::SmallIcon))); - m_pIconPopup->insertItem(iw); + m_pIconPopup->addAction(new QWidgetAction(iw)); m_pEnableLogging = new QCheckBox(__tr2qs_ctx("Log this","options"),box); diff --git a/src/modules/options/OptionsWidget_message.h b/src/modules/options/OptionsWidget_message.h index c9e1bdee5..cf1b71c80 100644 --- a/src/modules/options/OptionsWidget_message.h +++ b/src/modules/options/OptionsWidget_message.h @@ -26,7 +26,7 @@ #include "KviOptionsWidget.h" #include "KviMessageTypeSettings.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviIconManager.h" #include <QTreeWidget> @@ -173,7 +173,7 @@ public: MessageListWidgetItem * m_pLastItem; QCheckBox * m_pEnableLogging; QToolButton * m_pIconButton; - KviTalPopupMenu * m_pIconPopup; + QMenu * m_pIconPopup; public: void saveLastItem(); protected slots: diff --git a/src/modules/options/OptionsWidget_proxy.cpp b/src/modules/options/OptionsWidget_proxy.cpp index 8784e2a7b..3849db285 100644 --- a/src/modules/options/OptionsWidget_proxy.cpp +++ b/src/modules/options/OptionsWidget_proxy.cpp @@ -33,7 +33,7 @@ #include "kvi_settings.h" #include "KviOptions.h" #include "KviTalGroupBox.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalToolTip.h" #include <QLabel> @@ -140,7 +140,7 @@ OptionsWidget_proxy::OptionsWidget_proxy(QWidget * parent) layout()->setRowStretch(0,1); layout()->setColumnStretch(0,1); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); } OptionsWidget_proxy::~OptionsWidget_proxy() @@ -323,8 +323,9 @@ void OptionsWidget_proxy::customContextMenuRequested(const QPoint &pos) { QTreeWidgetItem *it=(QTreeWidgetItem *)m_pTreeWidget->itemAt(pos); m_pContextPopup->clear(); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Proxy)),__tr2qs_ctx("&New Proxy","options"),this,SLOT(newProxy())); - m_pContextPopup->setItemEnabled(m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Cut)),__tr2qs_ctx("Re&move Proxy","options"),this,SLOT(removeCurrent())),it); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Proxy)),__tr2qs_ctx("&New Proxy","options"),this,SLOT(newProxy())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Cut)),__tr2qs_ctx("Re&move Proxy","options"),this,SLOT(removeCurrent())) + ->setEnabled(it); m_pContextPopup->popup(QCursor::pos()); } diff --git a/src/modules/options/OptionsWidget_proxy.h b/src/modules/options/OptionsWidget_proxy.h index 429bd7bf9..930cfda29 100644 --- a/src/modules/options/OptionsWidget_proxy.h +++ b/src/modules/options/OptionsWidget_proxy.h @@ -34,7 +34,7 @@ class QLabel; class QLineEdit; class QComboBox; class KviIpEditor; -class KviTalPopupMenu; +class QMenu; class KviProxy; class KviProxyDataBase; @@ -76,7 +76,7 @@ protected: QLineEdit * m_pPortEdit; QLabel * m_pProtocolLabel; QComboBox * m_pProtocolBox; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; QCheckBox * m_pIPv6Check; ProxyOptionsTreeWidgetItem * m_pLastEditedItem; private: diff --git a/src/modules/options/OptionsWidget_servers.cpp b/src/modules/options/OptionsWidget_servers.cpp index 154c937bf..1c75a72ee 100644 --- a/src/modules/options/OptionsWidget_servers.cpp +++ b/src/modules/options/OptionsWidget_servers.cpp @@ -53,7 +53,7 @@ #include "KviProxyDataBase.h" #include "KviKvsScript.h" #include "KviPointerHashTable.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalToolTip.h" #include <QLineEdit> @@ -230,8 +230,8 @@ IrcNetworkDetailsWidget::IrcNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n while(d->pcName) { tmp = QString("%1 (%2)").arg(d->pcName,d->pcDescription); - m_pEncodingEditor->insertItem(m_pEncodingEditor->count(),tmp); - m_pTextEncodingEditor->insertItem(m_pTextEncodingEditor->count(),tmp); + m_pEncodingEditor->insertItem(m_pEncodingEditor->count(),tmp); + m_pTextEncodingEditor->insertItem(m_pTextEncodingEditor->count(),tmp); if(KviQString::equalCI(d->pcName,n->encoding())) srvcurrent = i + 1; if(KviQString::equalCI(d->pcName,n->textEncoding())) @@ -786,8 +786,8 @@ IrcServerDetailsWidget::IrcServerDetailsWidget(QWidget * par,KviIrcServer * s) while(d->pcName) { tmp = QString("%1 (%2)").arg(d->pcName,d->pcDescription); - m_pEncodingEditor->insertItem(m_pEncodingEditor->count(),tmp); - m_pTextEncodingEditor->insertItem(m_pTextEncodingEditor->count(),tmp); + m_pEncodingEditor->insertItem(m_pEncodingEditor->count(),tmp); + m_pTextEncodingEditor->insertItem(m_pTextEncodingEditor->count(),tmp); if(KviQString::equalCI(d->pcName,s->encoding())) srvcurrent = i + 1; if(KviQString::equalCI(d->pcName,s->textEncoding())) @@ -815,7 +815,7 @@ IrcServerDetailsWidget::IrcServerDetailsWidget(QWidget * par,KviIrcServer * s) KviPointerList<KviProxy> * proxylist = g_pProxyDataBase->proxyList(); for(KviProxy * p = proxylist->first();p;p = proxylist->next()) { - m_pProxyEditor->insertItem(m_pProxyEditor->count(),QString("%1:%2").arg(p->hostName()).arg(p->port())); + m_pProxyEditor->insertItem(m_pProxyEditor->count(),QString("%1:%2").arg(p->hostName()).arg(p->port())); } if(m_pProxyEditor->count() > (s->proxy()+2)) m_pProxyEditor->setCurrentIndex(s->proxy()+2); @@ -1258,11 +1258,11 @@ OptionsWidget_servers::OptionsWidget_servers(QWidget * parent) createLayout(); - m_pContextPopup = new KviTalPopupMenu(this); - m_pImportPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); + m_pImportPopup = new QMenu(this); connect(m_pImportPopup,SIGNAL(aboutToShow()),this,SLOT(importPopupAboutToShow())); - connect(m_pImportPopup,SIGNAL(activated(int)),this,SLOT(importPopupActivated(int))); + connect(m_pImportPopup,SIGNAL(triggered(QAction *)),this,SLOT(importPopupActivated(QAction *))); m_pServerDetailsDialog = 0; m_pNetworkDetailsDialog = 0; @@ -1371,9 +1371,9 @@ OptionsWidget_servers::OptionsWidget_servers(QWidget * parent) connect(m_pDetailsButton,SIGNAL(clicked()),this,SLOT(detailsClicked())); KviTalToolTip::add(m_pDetailsButton,__tr2qs_ctx("<center>Click here to edit advanced options for this entry</center>","options")); - m_pRecentPopup = new KviTalPopupMenu(gbox); + m_pRecentPopup = new QMenu(gbox); connect(m_pRecentPopup,SIGNAL(aboutToShow()),this,SLOT(recentServersPopupAboutToShow())); - connect(m_pRecentPopup,SIGNAL(activated(int)),this,SLOT(recentServersPopupClicked(int))); + connect(m_pRecentPopup,SIGNAL(triggered(QAction *)),this,SLOT(recentServersPopupClicked(QAction *))); QToolButton * tb = new QToolButton(gbox); tb->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Time)))); @@ -1479,11 +1479,11 @@ void OptionsWidget_servers::recentServersPopupAboutToShow() { g_pApp->fillRecentServersPopup(m_pRecentPopup); - m_pRecentPopup->insertSeparator(); - m_pRecentPopup->insertItem(__tr2qs("Clear Recent Servers List")); + m_pRecentPopup->addSeparator(); + m_pRecentPopup->addAction(__tr2qs("Clear Recent Servers List")); } -void OptionsWidget_servers::recentServersPopupClicked(int id) +void OptionsWidget_servers::recentServersPopupClicked(QAction *pAction) { if(!g_pActiveWindow) return; // doh @@ -1492,7 +1492,7 @@ void OptionsWidget_servers::recentServersPopupClicked(int id) if(!c) return; - QString szItemText = m_pRecentPopup->text(id); + QString szItemText = pAction->text(); szItemText.remove(QChar('&')); if(szItemText.isEmpty()) return; @@ -1798,27 +1798,26 @@ void OptionsWidget_servers::commit() void OptionsWidget_servers::customContextMenuRequested(const QPoint &pnt) { - int id; QTreeWidgetItem *it=(QTreeWidgetItem *) m_pTreeWidget->itemAt(pnt); bool bServer = (it && ((IrcServerOptionsTreeWidgetItem *)it)->m_pServerData); m_pContextPopup->clear(); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::World)),__tr2qs_ctx("New Network","options"),this,SLOT(newNetwork())); - id = m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Cut)),__tr2qs_ctx("Remove Network","options"),this,SLOT(removeCurrent())); - m_pContextPopup->setItemEnabled(id,!bServer); - m_pContextPopup->insertSeparator(); - id = m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs_ctx("&New Server","options"),this,SLOT(newServer())); - id = m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Cut)),__tr2qs_ctx("Re&move Server","options"),this,SLOT(removeCurrent())); - m_pContextPopup->setItemEnabled(id,bServer); - id = m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Copy)),__tr2qs_ctx("&Copy Server","options"),this,SLOT(copyServer())); - m_pContextPopup->setItemEnabled(id,bServer); - id = m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Paste)),__tr2qs_ctx("&Paste Server","options"),this,SLOT(pasteServer())); - m_pContextPopup->setItemEnabled(id,m_pClipboard); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::World)),__tr2qs_ctx("New Network","options"),this,SLOT(newNetwork())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Cut)),__tr2qs_ctx("Remove Network","options"),this,SLOT(removeCurrent())) + ->setEnabled(!bServer); + m_pContextPopup->addSeparator(); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Server)),__tr2qs_ctx("&New Server","options"),this,SLOT(newServer())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Cut)),__tr2qs_ctx("Re&move Server","options"),this,SLOT(removeCurrent())) + ->setEnabled(bServer); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Copy)),__tr2qs_ctx("&Copy Server","options"),this,SLOT(copyServer())); + m_pContextPopup->setEnabled(bServer); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Paste)),__tr2qs_ctx("&Paste Server","options"),this,SLOT(pasteServer())) + ->setEnabled(m_pClipboard); - m_pContextPopup->insertSeparator(); - // m_pContextPopup->insertItem(__c2q(__tr("Merge list from server.ini","options")),this,SLOT(importFromIni())); - m_pContextPopup->insertItem(__tr2qs_ctx("Clear List","options"),this,SLOT(clearList())); - m_pContextPopup->insertSeparator(); - m_pContextPopup->insertItem(__tr2qs_ctx("Import List","options"),m_pImportPopup); + m_pContextPopup->addSeparator(); + // m_pContextPopup->addAction(__c2q(__tr("Merge list from server.ini","options")),this,SLOT(importFromIni())); + m_pContextPopup->addAction(__tr2qs_ctx("Clear List","options"),this,SLOT(clearList())); + m_pContextPopup->addSeparator(); + m_pContextPopup->addAction(__tr2qs_ctx("Import List","options"))->setMenu(m_pImportPopup); m_pContextPopup->popup(QCursor::pos()); } @@ -1831,19 +1830,19 @@ void OptionsWidget_servers::importPopupAboutToShow() if(!l)return; - int id; + QAction *pAction; for(KviModuleExtensionDescriptor * d = l->first();d;d = l->next()) { if(d->icon()) - id = m_pImportPopup->insertItem(*(d->icon()),d->visibleName()); + pAction = m_pImportPopup->addAction(*(d->icon()),d->visibleName()); else - id = m_pImportPopup->insertItem(d->visibleName()); - m_pImportPopup->setItemParameter(id,d->id()); + pAction = m_pImportPopup->addAction(d->visibleName()); + pAction->setData(d->id()); } } -void OptionsWidget_servers::importPopupActivated(int id) +void OptionsWidget_servers::importPopupActivated(QAction *pAction) { // ensure that we have all the modules : they could have been unloaded while the popup was displayed g_pModuleManager->loadModulesByCaps("serverimport"); @@ -1866,7 +1865,10 @@ void OptionsWidget_servers::importPopupActivated(int id) m_pImportFilter = 0; } - id = m_pImportPopup->itemParameter(id); + bool bOk=false; + int id = pAction->data().toInt(&bOk); + if(!bOk) + return; m_pImportFilter = (KviMexServerImport *)KviModuleExtensionManager::instance()->allocateExtension("serverimport",id,0); diff --git a/src/modules/options/OptionsWidget_servers.h b/src/modules/options/OptionsWidget_servers.h index f1a40e731..c23851ded 100644 --- a/src/modules/options/OptionsWidget_servers.h +++ b/src/modules/options/OptionsWidget_servers.h @@ -40,7 +40,7 @@ class QComboBox; class QPushButton; class KviIpEditor; class KviIrcServer; -class KviTalPopupMenu; +class QMenu; class KviScriptEditor; class KviNickServRule; class NickServRuleEditor; @@ -182,9 +182,9 @@ protected: QLabel * m_pFilterLabel; QLineEdit * m_pFilterEdit; QPushButton * m_pDetailsButton; - KviTalPopupMenu * m_pRecentPopup; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pImportPopup; + QMenu * m_pRecentPopup; + QMenu * m_pContextPopup; + QMenu * m_pImportPopup; KviIrcServer * m_pClipboard; QPushButton * m_pConnectCurrent; QPushButton * m_pConnectNew; @@ -222,8 +222,8 @@ protected slots: void detailsClicked(); void connectCurrentClicked(); void recentServersPopupAboutToShow(); - void recentServersPopupClicked(int id); - void importPopupActivated(int id); + void recentServersPopupClicked(QAction *pAction); + void importPopupActivated(QAction *pAction); void serverNetworkEditTextEdited(const QString &szNewText); void filterTextEdited(const QString &szNewText); public: diff --git a/src/modules/options/OptionsWidget_sound.cpp b/src/modules/options/OptionsWidget_sound.cpp index 454d39fca..533303284 100644 --- a/src/modules/options/OptionsWidget_sound.cpp +++ b/src/modules/options/OptionsWidget_sound.cpp @@ -108,7 +108,7 @@ OptionsWidget_soundGeneral::OptionsWidget_soundGeneral(QWidget * parent) { if(KviQString::equalCI(d->pcName,KVI_OPTION_STRING(KviOption_stringMp3TagsEncoding))) iMatch = i + 1; - m_pTagsEncodingCombo->insertItem(m_pTagsEncodingCombo->count(),d->pcName); + m_pTagsEncodingCombo->insertItem(m_pTagsEncodingCombo->count(),d->pcName); i++; d = KviLocale::instance()->encodingDescription(i); } @@ -132,7 +132,7 @@ OptionsWidget_soundGeneral::OptionsWidget_soundGeneral(QWidget * parent) { if(KviQString::equalCI(d->pcName,KVI_OPTION_STRING(KviOption_stringWinampTextEncoding))) iMatch = i + 1; - m_pWinampEncodingCombo->insertItem(m_pWinampEncodingCombo->count(),d->pcName); + m_pWinampEncodingCombo->addAction(m_pWinampEncodingCombo->count(),d->pcName); i++; d = KviLocale::instance()->encodingDescription(i); } diff --git a/src/modules/options/OptionsWidget_textEncoding.cpp b/src/modules/options/OptionsWidget_textEncoding.cpp index dda641f9c..f87a5ebad 100644 --- a/src/modules/options/OptionsWidget_textEncoding.cpp +++ b/src/modules/options/OptionsWidget_textEncoding.cpp @@ -69,8 +69,8 @@ OptionsWidget_textEncoding::OptionsWidget_textEncoding(QWidget * parent) if(KviQString::equalCI(d->pcName,KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding))) iSrvMatch = i + 1; - m_pTextEncodingCombo->insertItem(m_pTextEncodingCombo->count(),d->pcName); - m_pSrvEncodingCombo->insertItem(m_pSrvEncodingCombo->count(),d->pcName); + m_pTextEncodingCombo->insertItem(m_pTextEncodingCombo->count(),d->pcName); + m_pSrvEncodingCombo->insertItem(m_pSrvEncodingCombo->count(),d->pcName); i++; d = KviLocale::instance()->encodingDescription(i); } @@ -113,7 +113,7 @@ OptionsWidget_textEncoding::OptionsWidget_textEncoding(QWidget * parent) QString szTmp=*it; szTmp.replace("kvirc_",""); szTmp.replace(".mo",""); - m_pForcedLocaleCombo->insertItem(m_pForcedLocaleCombo->count(),szTmp); + m_pForcedLocaleCombo->insertItem(m_pForcedLocaleCombo->count(),szTmp); if(KviQString::equalCI(szTmp,m_szLanguage)) iMatch = i + 2; i++; diff --git a/src/modules/options/OptionsWidget_textIcons.cpp b/src/modules/options/OptionsWidget_textIcons.cpp index e933d33b4..6e3dacf6b 100644 --- a/src/modules/options/OptionsWidget_textIcons.cpp +++ b/src/modules/options/OptionsWidget_textIcons.cpp @@ -32,7 +32,7 @@ #include "KviLocale.h" #include "KviFileDialog.h" #include "kvi_fileextensions.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalHBox.h" #include "KviFileUtils.h" @@ -40,6 +40,7 @@ #include <QLayout> #include <QCursor> #include <QHeaderView> +#include <QWidgetAction> TextIconTableItem::TextIconTableItem(QTableWidget *,KviTextIcon * icon) : QTableWidgetItem(QString(),Qt::ItemIsEditable) @@ -152,10 +153,10 @@ void OptionsWidget_textIcons::doPopup() { if(!m_pPopup) { - m_pPopup = new KviTalPopupMenu(this); + m_pPopup = new QMenu(this); KviIconWidget * iw = new KviIconWidget(m_pPopup); connect(iw,SIGNAL(selected(KviIconManager::SmallIcon)),this,SLOT(iconSelected(KviIconManager::SmallIcon))); - m_pPopup->insertItem(iw); + m_pPopup->addAction(new QWidgetAction(iw)); } m_pPopup->popup(QCursor::pos()); } diff --git a/src/modules/options/OptionsWidget_textIcons.h b/src/modules/options/OptionsWidget_textIcons.h index 2d535cf65..cf4cb91e4 100644 --- a/src/modules/options/OptionsWidget_textIcons.h +++ b/src/modules/options/OptionsWidget_textIcons.h @@ -67,7 +67,7 @@ protected: QPushButton * m_pDel; QPushButton * m_pRestore; QToolButton * m_pCurrentIconButton; - KviTalPopupMenu *m_pPopup; + QMenu *m_pPopup; private: void fillTable(); public: diff --git a/src/modules/popupeditor/PopupEditorWindow.cpp b/src/modules/popupeditor/PopupEditorWindow.cpp index 19ba52ef0..bb20859ff 100644 --- a/src/modules/popupeditor/PopupEditorWindow.cpp +++ b/src/modules/popupeditor/PopupEditorWindow.cpp @@ -184,7 +184,7 @@ SinglePopupEditor::SinglePopupEditor(QWidget * par) : QWidget(par) { m_pLastSelectedItem = 0; - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); m_pClipboard = 0; m_pTestPopup = 0; @@ -380,85 +380,84 @@ void SinglePopupEditor::customContextMenuRequested(const QPoint &pos) bIsMenu = ((PopupTreeWidgetItem *)it)->m_type == PopupTreeWidgetItem::Menu; } - m_pContextPopup->insertItem(__tr2qs_ctx("New Separator Below","editor"),this,SLOT(contextNewSeparatorBelow())); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Separator Above","editor"),this,SLOT(contextNewSeparatorAbove())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Separator Inside","editor"),this,SLOT(contextNewSeparatorInside())),it && bIsMenu); + m_pContextPopup->addAction(__tr2qs_ctx("New Separator Below","editor"),this,SLOT(contextNewSeparatorBelow())); + m_pContextPopup->addAction(__tr2qs_ctx("New Separator Above","editor"),this,SLOT(contextNewSeparatorAbove())) + ->setEnabled(it); + m_pContextPopup->addAction(__tr2qs_ctx("New Separator Inside","editor"),this,SLOT(contextNewSeparatorInside())) + ->setEnabled(it && bIsMenu); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem(__tr2qs_ctx("New Label Below","editor"),this,SLOT(contextNewLabelBelow())); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Label Above","editor"),this,SLOT(contextNewLabelAbove())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Label Inside","editor"),this,SLOT(contextNewLabelInside())),it && bIsMenu); + m_pContextPopup->addAction(__tr2qs_ctx("New Label Below","editor"),this,SLOT(contextNewLabelBelow())); + m_pContextPopup->addAction(__tr2qs_ctx("New Label Above","editor"),this,SLOT(contextNewLabelAbove())) + ->setEnabled(it); + m_pContextPopup->addAction(__tr2qs_ctx("New Label Inside","editor"),this,SLOT(contextNewLabelInside())) + ->setEnabled(it && bIsMenu); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem(__tr2qs_ctx("New Item Below","editor"),this,SLOT(contextNewItemBelow())); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Item Above","editor"),this,SLOT(contextNewItemAbove())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Item Inside","editor"),this,SLOT(contextNewItemInside())),it && bIsMenu); + m_pContextPopup->addAction(__tr2qs_ctx("New Item Below","editor"),this,SLOT(contextNewItemBelow())); + m_pContextPopup->addAction(__tr2qs_ctx("New Item Above","editor"),this,SLOT(contextNewItemAbove())) + ->setEnabled(it); + m_pContextPopup->addAction(__tr2qs_ctx("New Item Inside","editor"),this,SLOT(contextNewItemInside())) + ->setEnabled(it && bIsMenu); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem(__tr2qs_ctx("New Menu Below","editor"),this,SLOT(contextNewMenuBelow())); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Menu Above","editor"),this,SLOT(contextNewMenuAbove())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New Menu Inside","editor"),this,SLOT(contextNewMenuInside())),it && bIsMenu); + m_pContextPopup->addAction(__tr2qs_ctx("New Menu Below","editor"),this,SLOT(contextNewMenuBelow())); + m_pContextPopup->addAction(__tr2qs_ctx("New Menu Above","editor"),this,SLOT(contextNewMenuAbove())) + ->setEnabled(it); + m_pContextPopup->addAction(__tr2qs_ctx("New Menu Inside","editor"),this,SLOT(contextNewMenuInside())) + ->setEnabled(it && bIsMenu); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->insertItem(__tr2qs_ctx("New External Menu Below","editor"),this,SLOT(contextNewExtMenuBelow())); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New External Menu Above","editor"),this,SLOT(contextNewExtMenuAbove())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem(__tr2qs_ctx("New External Menu Inside","editor"),this,SLOT(contextNewExtMenuInside())),it && bIsMenu); + m_pContextPopup->addAction(__tr2qs_ctx("New External Menu Below","editor"),this,SLOT(contextNewExtMenuBelow())); + m_pContextPopup->addAction(__tr2qs_ctx("New External Menu Above","editor"),this,SLOT(contextNewExtMenuAbove())) + ->setEnabled(it); + m_pContextPopup->addAction(__tr2qs_ctx("New External Menu Inside","editor"),this,SLOT(contextNewExtMenuInside())) + ->setEnabled(it && bIsMenu); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Cut)), __tr2qs_ctx("Cu&t","editor"), - this,SLOT(contextCut())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + this,SLOT(contextCut())) + ->setEnabled(it); + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Copy)), __tr2qs_ctx("&Copy","editor"), - this,SLOT(contextCopy())),it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + this,SLOT(contextCopy())) + ->setEnabled(it); + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Paste)), - __tr2qs_ctx("&Paste Below","editor"),this,SLOT(contextPasteBelow())), - m_pClipboard); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + __tr2qs_ctx("&Paste Below","editor"),this,SLOT(contextPasteBelow())) + ->setEnabled(m_pClipboard); + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Paste)), - __tr2qs_ctx("Paste Above","editor"),this,SLOT(contextPasteAbove())),it && m_pClipboard); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + __tr2qs_ctx("Paste Above","editor"),this,SLOT(contextPasteAbove())) + ->setEnabled(it && m_pClipboard); + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Paste)), - __tr2qs_ctx("Paste Inside","editor"),this,SLOT(contextPasteInside())),it && bIsMenu && m_pClipboard); + __tr2qs_ctx("Paste Inside","editor"),this,SLOT(contextPasteInside())) + ->setEnabled(it && bIsMenu && m_pClipboard); bool bSeparatorInserted = false; // if(!findPrologue(parentMenu)) // { - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); bSeparatorInserted = true; - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Prologue)), __tr2qs_ctx("New Menu Prologue","editor"),this,SLOT(contextNewPrologue())); // } // if(!findEpilogue(parentMenu)) // { - if(!bSeparatorInserted)m_pContextPopup->insertSeparator(); - m_pContextPopup->insertItem( + if(!bSeparatorInserted)m_pContextPopup->addSeparator(); + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Epilogue)), __tr2qs_ctx("New Menu Epilogue","editor"),this,SLOT(contextNewEpilogue())); // } @@ -1053,8 +1052,8 @@ PopupEditorWidget::PopupEditorWidget(QWidget * par) m_bOneTimeSetupDone = false; m_pLastEditedItem = 0; - m_pContextPopup = new KviTalPopupMenu(this); - m_pEmptyContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); + m_pEmptyContextPopup = new QMenu(this); spl->setStretchFactor (0,20); spl->setStretchFactor (1,80); @@ -1142,28 +1141,28 @@ void PopupEditorWidget::customContextMenuRequested(const QPoint &pos) { m_pContextPopup->clear(); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Popup)), __tr2qs_ctx("&New Popup","editor"), this,SLOT(newPopup())); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Quit)), __tr2qs_ctx("Re&move Popup","editor"), - this,SLOT(removeCurrentPopup())),it); + this,SLOT(removeCurrentPopup())) + ->setEnabled(it); - m_pContextPopup->setItemEnabled( - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("&Export Popup To...","editor"), - this,SLOT(exportCurrentPopup())),it); + this,SLOT(exportCurrentPopup())) + ->setEnabled(it); m_pContextPopup->popup(QCursor::pos()); } else { m_pEmptyContextPopup->clear(); - m_pEmptyContextPopup->insertItem( + m_pEmptyContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Popup)), __tr2qs_ctx("&New Popup","editor"), this,SLOT(newPopup())); diff --git a/src/modules/popupeditor/PopupEditorWindow.h b/src/modules/popupeditor/PopupEditorWindow.h index 2e31a96ad..98b5bb429 100644 --- a/src/modules/popupeditor/PopupEditorWindow.h +++ b/src/modules/popupeditor/PopupEditorWindow.h @@ -27,7 +27,7 @@ #include "KviWindow.h" #include "KviCString.h" #include <QTreeWidget> -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QWidget> #include <QLineEdit> @@ -83,7 +83,7 @@ protected: QLineEdit * m_pIconEditor; QLineEdit * m_pConditionEditor; QLineEdit * m_pExtNameEditor; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; public: void edit(MenuTreeWidgetItem * it); KviKvsPopupMenu * getMenu(); @@ -156,8 +156,8 @@ public: QTreeWidget * m_pTreeWidget; MenuTreeWidgetItem * m_pLastEditedItem; bool m_bOneTimeSetupDone; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pEmptyContextPopup; + QMenu * m_pContextPopup; + QMenu * m_pEmptyContextPopup; bool m_bSaving; public: void commit(); diff --git a/src/modules/raweditor/RawEditorWindow.cpp b/src/modules/raweditor/RawEditorWindow.cpp index 6d3d67386..71755bfdf 100644 --- a/src/modules/raweditor/RawEditorWindow.cpp +++ b/src/modules/raweditor/RawEditorWindow.cpp @@ -40,7 +40,7 @@ #include "KviKvsEventManager.h" #include "KviKvsEventHandler.h" #include "KviTalVBox.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QMessageBox> #include <QSplitter> @@ -91,7 +91,7 @@ RawEditorWidget::RawEditorWidget(QWidget * par) m_pTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); // m_pTreeWidget->setShowSortIndicator(true); m_pTreeWidget->setRootIsDecorated(true); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); m_pTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_pTreeWidget,SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),this,SLOT(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *))); @@ -151,32 +151,32 @@ void RawEditorWidget::customContextMenuRequested(const QPoint &pos) if(it->parent()) { if(!(((RawHandlerTreeWidgetItem *)it)->m_bEnabled)) - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Handler)), __tr2qs_ctx("&Enable Handler","editor"),this,SLOT(toggleCurrentHandlerEnabled())); else - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::HandlerDisabled)), __tr2qs_ctx("&Disable Handler","editor"),this,SLOT(toggleCurrentHandlerEnabled())); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Quit)), __tr2qs_ctx("Re&move Handler","editor"), this,SLOT(removeCurrentHandler())); - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Folder)), __tr2qs_ctx("&Export Handler To...","editor"), this,SLOT(exportCurrentHandler())); } else { - m_pContextPopup->insertItem( + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::Handler)), __tr2qs_ctx("&New Handler","editor"), this,SLOT(addHandlerForCurrentRaw())); } } - m_pContextPopup->insertSeparator(); - m_pContextPopup->insertItem( + m_pContextPopup->addSeparator(); + m_pContextPopup->addAction( *(g_pIconManager->getSmallIcon(KviIconManager::RawEvent)), __tr2qs_ctx("&Add Raw Event...","editor"), this,SLOT(addRaw())); diff --git a/src/modules/raweditor/RawEditorWindow.h b/src/modules/raweditor/RawEditorWindow.h index 81f45b3b0..7b547c8d9 100644 --- a/src/modules/raweditor/RawEditorWindow.h +++ b/src/modules/raweditor/RawEditorWindow.h @@ -33,7 +33,7 @@ #include <QLineEdit> class KviScriptEditor; -class KviTalPopupMenu; +class QMenu; class RawTreeWidget : public QTreeWidget { @@ -95,7 +95,7 @@ public: KviScriptEditor * m_pEditor; RawTreeWidget * m_pTreeWidget; QLineEdit * m_pNameEditor; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; RawHandlerTreeWidgetItem * m_pLastEditedItem; bool m_bOneTimeSetupDone; public: diff --git a/src/modules/reguser/RegisteredUserEntryDialog.h b/src/modules/reguser/RegisteredUserEntryDialog.h index 04dc745cd..96dafde06 100644 --- a/src/modules/reguser/RegisteredUserEntryDialog.h +++ b/src/modules/reguser/RegisteredUserEntryDialog.h @@ -29,7 +29,7 @@ #include "KviSelectors.h" #include "KviPointerHashTable.h" #include <QTreeWidget> -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <KviTalTabDialog.h> #include <QListWidget> diff --git a/src/modules/reguser/RegisteredUsersDialog.cpp b/src/modules/reguser/RegisteredUsersDialog.cpp index 3b2f1c068..3cf8efcee 100644 --- a/src/modules/reguser/RegisteredUsersDialog.cpp +++ b/src/modules/reguser/RegisteredUsersDialog.cpp @@ -469,29 +469,29 @@ void RegisteredUsersDialog::rightButtonPressed ( QTreeWidgetItem * pItem, QPoint RegisteredUsersDialogItemBase* b=(RegisteredUsersDialogItemBase*)pItem; if(b->type()==RegisteredUsersDialogItemBase::User) { - KviTalPopupMenu *groups = new KviTalPopupMenu; + QMenu *groups = new QMenu; KviPointerHashTable<QString,KviRegisteredUserGroup> * pGroups = g_pLocalRegisteredUserDataBase->groupDict(); - m_TmpDict.clear(); for(KviPointerHashTableEntry<QString,KviRegisteredUserGroup> * g = pGroups->firstEntry();g;g = pGroups->nextEntry()) { - int id=groups->insertItem(g->key()); - m_TmpDict.replace(id,g->data()); + groups->addAction(g->key()) + ->setData(g->data()->name()); } - connect(groups,SIGNAL(activated ( int )),this,SLOT(moveToGroupMenuClicked(int))); + connect(groups,SIGNAL(triggered(QAction *)),this,SLOT(moveToGroupMenuClicked(QAction *))); - KviTalPopupMenu *mainPopup = new KviTalPopupMenu; - mainPopup->insertItem(__tr2qs_ctx("Move to group","register"),groups); + QMenu *mainPopup = new QMenu; + mainPopup->addAction(__tr2qs_ctx("Move to group","register"))->setMenu(groups); mainPopup->exec(pnt); } } } -void RegisteredUsersDialog::moveToGroupMenuClicked(int id) +void RegisteredUsersDialog::moveToGroupMenuClicked(QAction *pAction) { - QString szGroup=(*(m_TmpDict.find(id)))->name(); - QList<QTreeWidgetItem *> list = m_pListView->selectedItems(); + QString szGroup=pAction->data().toString(); + + QList<QTreeWidgetItem *> list = m_pListView->selectedItems(); for(int i=0; i<list.count(); i++) { RegisteredUsersDialogItemBase* b=(RegisteredUsersDialogItemBase*)(list.at(i)); diff --git a/src/modules/reguser/RegisteredUsersDialog.h b/src/modules/reguser/RegisteredUsersDialog.h index d511560dd..aed4768c2 100644 --- a/src/modules/reguser/RegisteredUsersDialog.h +++ b/src/modules/reguser/RegisteredUsersDialog.h @@ -30,13 +30,12 @@ #include "KviPointerHashTable.h" #include <QTreeWidget> #include "KviTalListWidget.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QWidget> #include <QLineEdit> #include <QPushButton> #include <QStyledItemDelegate> -#include <QMultiHash> #include <QTextDocument> class KviRegisteredUsersListView : public QTreeWidget @@ -132,7 +131,6 @@ public: QPushButton * m_pExportButton; QPushButton * m_pAddGroupButton; QPushButton * m_pSelectAllButton; - QMultiHash<int, KviRegisteredUserGroup*> m_TmpDict; protected: void fillList(); void editItem(RegisteredUsersDialogItem * i); @@ -153,7 +151,7 @@ protected slots: void itemPressed(QTreeWidgetItem *it,int c); void itemDoubleClicked(QTreeWidgetItem *it, int); void rightButtonPressed ( QTreeWidgetItem *, QPoint); - void moveToGroupMenuClicked(int); + void moveToGroupMenuClicked(QAction *pAction); }; #endif diff --git a/src/modules/setup/SetupWizard.cpp b/src/modules/setup/SetupWizard.cpp index 2abdd3709..981a38b43 100644 --- a/src/modules/setup/SetupWizard.cpp +++ b/src/modules/setup/SetupWizard.cpp @@ -360,13 +360,13 @@ SetupWizard::SetupWizard() m_pAgeCombo = new QComboBox(hb); - m_pAgeCombo->insertItem(0,__tr2qs("Unspecified")); + m_pAgeCombo->insertItem(0,__tr2qs("Unspecified")); unsigned int i; for(i=1;i<120;i++) { QString tmp; tmp.setNum(i); - m_pAgeCombo->insertItem(m_pAgeCombo->count(),tmp); + m_pAgeCombo->insertItem(m_pAgeCombo->count(),tmp); } bool bOk; @@ -387,9 +387,9 @@ SetupWizard::SetupWizard() m_pGenderCombo = new QComboBox(hb); - m_pGenderCombo->insertItem(0,__tr2qs("Unspecified")); - m_pGenderCombo->insertItem(1,__tr2qs("Female")); - m_pGenderCombo->insertItem(2,__tr2qs("Male")); + m_pGenderCombo->insertItem(0,__tr2qs("Unspecified")); + m_pGenderCombo->insertItem(1,__tr2qs("Female")); + m_pGenderCombo->insertItem(2,__tr2qs("Male")); if(KviQString::equalCI(KVI_OPTION_STRING(KviOption_stringCtcpUserInfoGender),"Male")) m_pGenderCombo->setCurrentIndex(2); diff --git a/src/modules/sharedfileswindow/SharedFilesWindow.cpp b/src/modules/sharedfileswindow/SharedFilesWindow.cpp index dee47083d..75f4c80ae 100644 --- a/src/modules/sharedfileswindow/SharedFilesWindow.cpp +++ b/src/modules/sharedfileswindow/SharedFilesWindow.cpp @@ -384,11 +384,11 @@ void SharedFilesWindow::transferUnregistering(KviSharedFiles * t) void SharedFilesWindow::rightButtonPressed(QTreeWidgetItem *it,const QPoint &pnt,int col) { - if(!m_pContextPopup)m_pContextPopup = new KviTalPopupMenu(this); - if(!m_pLocalFilePopup)m_pLocalFilePopup = new KviTalPopupMenu(this); + if(!m_pContextPopup)m_pContextPopup = new QMenu(this); + if(!m_pLocalFilePopup)m_pLocalFilePopup = new QMenu(this); if(!m_pOpenFilePopup) { - m_pOpenFilePopup= new KviTalPopupMenu(this); + m_pOpenFilePopup= new QMenu(this); connect(m_pOpenFilePopup,SIGNAL(activated(int)),this,SLOT(openFilePopupActivated(int))); } @@ -429,7 +429,7 @@ void SharedFilesWindow::rightButtonPressed(QTreeWidgetItem *it,const QPoint &pnt QLabel * l = new QLabel(tmp,m_pLocalFilePopup); QPalette p; m_pLabel->setStyleSheet("background-color: " + p.color(QPalette::Normal, QPalette::Mid).name()); - m_pLocalFilePopup->insertItem(l); + m_pLocalFilePopup->addAction(l); #ifdef COMPILE_KDE_SUPPORT QString mimetype = KMimeType::findByPath(szFile)->name(); @@ -443,31 +443,31 @@ void SharedFilesWindow::rightButtonPressed(QTreeWidgetItem *it,const QPoint &pnt for(KServiceTypeProfile::OfferList::Iterator itOffers = offers.begin(); itOffers != offers.end(); ++itOffers) { - id = m_pOpenFilePopup->insertItem((*itOffers).service()->pixmap(KIcon::Small),(*itOffers).service()->name()); + id = m_pOpenFilePopup->addAction((*itOffers).service()->pixmap(KIcon::Small),(*itOffers).service()->name()); m_pOpenFilePopup->setItemParameter(id,idx); idx++; } - m_pOpenFilePopup->insertSeparator(); + m_pOpenFilePopup->addSeparator(); - id = m_pOpenFilePopup->insertItem(__tr2qs_ctx("Default application","filetransferwindow"),this,SLOT(openLocalFile())); + id = m_pOpenFilePopup->addAction(__tr2qs_ctx("Default application","filetransferwindow"),this,SLOT(openLocalFile())); m_pOpenFilePopup->setItemParameter(id,-1); - id = m_pOpenFilePopup->insertItem(__tr2qs_ctx("&Other...","filetransferwindow"),this,SLOT(openLocalFileWith())); + id = m_pOpenFilePopup->addAction(__tr2qs_ctx("&Other...","filetransferwindow"),this,SLOT(openLocalFileWith())); m_pOpenFilePopup->setItemParameter(id,-1); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open with","filetransferwindow"),m_pOpenFilePopup); - m_pLocalFilePopup->insertSeparator(); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Open folder","filetransferwindow"),this,SLOT(openLocalFileFolder())); - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Reach in terminal","filetransferwindow"),this,SLOT(openLocalFileTerminal())); - m_pLocalFilePopup->insertSeparator(); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Open with","filetransferwindow"),m_pOpenFilePopup); + m_pLocalFilePopup->addSeparator(); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Open folder","filetransferwindow"),this,SLOT(openLocalFileFolder())); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Reach in terminal","filetransferwindow"),this,SLOT(openLocalFileTerminal())); + m_pLocalFilePopup->addSeparator(); #endif //COMPILE_KDE_SUPPORT - m_pLocalFilePopup->insertItem(__tr2qs_ctx("Copy path to clipboard","filetransferwindow"),this,SLOT(copyLocalFileToClipboard())); + m_pLocalFilePopup->addAction(__tr2qs_ctx("Copy path to clipboard","filetransferwindow"),this,SLOT(copyLocalFileToClipboard())); - m_pContextPopup->insertItem(__tr2qs_ctx("Local file","filetransferwindow"),m_pLocalFilePopup); + m_pContextPopup->addAction(__tr2qs_ctx("Local file","filetransferwindow"),m_pLocalFilePopup); } i->transfer()->fillContextPopup(m_pContextPopup,col); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); } } @@ -484,10 +484,10 @@ void SharedFilesWindow::rightButtonPressed(QTreeWidgetItem *it,const QPoint &pnt item = (KviSharedFilesItem *)item->nextSibling(); } - id = m_pContextPopup->insertItem(__tr2qs_ctx("Clear terminated","filetransferwindow"),this,SLOT(clearTerminated())); + id = m_pContextPopup->addAction(__tr2qs_ctx("Clear terminated","filetransferwindow"),this,SLOT(clearTerminated())); m_pContextPopup->setItemEnabled(id,bHaveTerminated); - id = m_pContextPopup->insertItem(__tr2qs_ctx("Clear all","filetransferwindow"),this,SLOT(clearAll())); + id = m_pContextPopup->addAction(__tr2qs_ctx("Clear all","filetransferwindow"),this,SLOT(clearAll())); m_pContextPopup->setItemEnabled(id,it); m_pContextPopup->popup(pnt); diff --git a/src/modules/theme/ThemeManagementDialog.cpp b/src/modules/theme/ThemeManagementDialog.cpp index e1becb2c4..a340385b6 100644 --- a/src/modules/theme/ThemeManagementDialog.cpp +++ b/src/modules/theme/ThemeManagementDialog.cpp @@ -47,7 +47,7 @@ #include "KviDynamicToolTip.h" #include "KviIconManager.h" #include "KviMessageBox.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalListWidget.h" @@ -237,7 +237,7 @@ ThemeManagementDialog::ThemeManagementDialog(QWidget * parent) // g->setSpacing(1); vBox->setAlignment(b,Qt::AlignRight); fillThemeBox(); - m_pContextPopup = new KviTalPopupMenu(this); + m_pContextPopup = new QMenu(this); if(g_rectManagementDialogGeometry.y() < 5) { @@ -328,8 +328,8 @@ void ThemeManagementDialog::contextMenuRequested(const QPoint & pos) { m_pListWidget->setCurrentItem(m_pListWidget->itemAt(pos)); m_pContextPopup->clear(); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Minus)),__tr2qs_ctx("&Remove Theme","theme"),this,SLOT(deleteTheme())); - m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KviIconManager::Accept)),__tr2qs_ctx("&Apply Theme","theme"),this,SLOT(applyCurrentTheme())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Minus)),__tr2qs_ctx("&Remove Theme","theme"),this,SLOT(deleteTheme())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Accept)),__tr2qs_ctx("&Apply Theme","theme"),this,SLOT(applyCurrentTheme())); m_pContextPopup->popup(m_pListWidget->viewport()->mapToGlobal(pos)); } } diff --git a/src/modules/theme/ThemeManagementDialog.h b/src/modules/theme/ThemeManagementDialog.h index 0714050a2..c68e0f2af 100644 --- a/src/modules/theme/ThemeManagementDialog.h +++ b/src/modules/theme/ThemeManagementDialog.h @@ -27,7 +27,7 @@ #include "KviOptionsWidget.h" #include "KviPointerList.h" #include "KviTheme.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviTalWizard.h" #include "KviTalListWidget.h" @@ -70,7 +70,7 @@ protected: KviTalIconAndRichTextItemDelegate * m_pItemDelegate; KviTalListWidget * m_pListWidget; QLabel * m_pCurrentInstalledThemeLabel; - KviTalPopupMenu * m_pContextPopup; + QMenu * m_pContextPopup; QToolButton * m_pDeleteThemeButton; QToolButton * m_pPackThemeButton; #if defined(COMPILE_WEBKIT_SUPPORT) || defined(Q_MOC_RUN) diff --git a/src/modules/trayicon/libkvitrayicon.cpp b/src/modules/trayicon/libkvitrayicon.cpp index 7359d125a..91e45369c 100644 --- a/src/modules/trayicon/libkvitrayicon.cpp +++ b/src/modules/trayicon/libkvitrayicon.cpp @@ -41,13 +41,14 @@ #include "KviIrcConnectionUserInfo.h" #include "KviOptions.h" #include "KviIrcView.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include <QPixmap> #include <QPainter> #include <QTimer> #include <QEvent> #include <QRegExp> +#include <QWidgetAction> #include <stdlib.h> #include <time.h> @@ -70,7 +71,7 @@ KviTrayIconWidget::KviTrayIconWidget() : QSystemTrayIcon(g_pMainWindow), m_CurrentPixmap(ICON_SIZE,ICON_SIZE) { g_pTrayIcon = this; - m_pContextPopup = new KviTalPopupMenu(0); + m_pContextPopup = new QMenu(0); setContextMenu(m_pContextPopup); m_iConsoles = 0; @@ -86,12 +87,12 @@ KviTrayIconWidget::KviTrayIconWidget() g_pMainWindow->setTrayIcon(this); m_pTip = new KviDynamicToolTip(g_pMainWindow,"dock_tooltip"); - m_pAwayPopup = new KviTalPopupMenu(0); + m_pAwayPopup = new QMenu(0); m_pTitleLabel = new QLabel(__tr2qs("<b>KVIrc</b>"),m_pContextPopup); QPalette p; m_pTitleLabel->setStyleSheet("background-color: " + p.color(QPalette::Normal, QPalette::Mid).name()); - m_pContextPopup->insertItem(m_pTitleLabel); + m_pContextPopup->addAction(new QWidgetAction(m_pTitleLabel)); m_pContextPopup->setWindowTitle(__tr2qs("Context")); m_pAwayMenuId = m_pContextPopup->addMenu(m_pAwayPopup); m_pAwayMenuId->setIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Away))); @@ -103,10 +104,10 @@ KviTrayIconWidget::KviTrayIconWidget() id = m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::KVIrc)),__tr2qs("&About KVIrc"),this,SLOT(executeInternalCommand(bool))); id->setData(KVI_INTERNALCOMMAND_ABOUT_ABOUTKVIRC); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); m_pToggleFrame = m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Raw)),__tr2qs("Hide/Show"),this,SLOT(toggleParentFrame())); - m_pContextPopup->insertSeparator(); + m_pContextPopup->addSeparator(); id = m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::TrayIcon)),__tr2qs("Un&dock"),this,SLOT(executeInternalCommand(bool))); id->setData(KVI_INTERNALCOMMAND_TRAYICON_HIDE); diff --git a/src/modules/trayicon/libkvitrayicon.h b/src/modules/trayicon/libkvitrayicon.h index 801bad625..4dc40c28d 100644 --- a/src/modules/trayicon/libkvitrayicon.h +++ b/src/modules/trayicon/libkvitrayicon.h @@ -35,7 +35,7 @@ class QPixmap; class QTimer; -class KviTalPopupMenu; +class QMenu; class KviDynamicToolTip; //class KviMainWindow; @@ -47,8 +47,8 @@ public: ~KviTrayIconWidget(); protected: KviDynamicToolTip * m_pTip; - KviTalPopupMenu * m_pContextPopup; - KviTalPopupMenu * m_pAwayPopup; + QMenu * m_pContextPopup; + QMenu * m_pAwayPopup; QLabel * m_pTitleLabel; QAction* m_pToggleFrame; diff --git a/src/modules/url/libkviurl.cpp b/src/modules/url/libkviurl.cpp index ae914f879..7778e4d72 100644 --- a/src/modules/url/libkviurl.cpp +++ b/src/modules/url/libkviurl.cpp @@ -36,7 +36,7 @@ #include "KviWindowListBase.h" #include "KviPointerList.h" #include "KviKvsEventManager.h" -#include "KviTalPopupMenu.h" +#include "QMenu.h" #include "KviWindow.h" #include "KviOptions.h" #include "KviQString.h" @@ -170,19 +170,19 @@ UrlDialog::UrlDialog(KviPointerList<KviUrl> *) //m_pUrlList = new KviListView(this,"list"); KviConfigurationFile cfg(szConfigPath,KviConfigurationFile::Read); /* - KviTalPopupMenu *pop; + QMenu *pop; - pop = new KviTalPopupMenu(this); - pop->insertItem(__tr2qs("&Configure"),this,SLOT(config())); -// pop->insertItem(__tr2qs("&Help"),this,SLOT(help())); - pop->insertItem(__tr2qs("Clo&se"),this,SLOT(close_slot())); + pop = new QMenu(this); + pop->addAction(__tr2qs("&Configure"),this,SLOT(config())); +// pop->addAction(__tr2qs("&Help"),this,SLOT(help())); + pop->addAction(__tr2qs("Clo&se"),this,SLOT(close_slot())); pop->setTitle(__tr2qs("&Module")); m_pMenuBar->addMenu(pop); - pop = new KviTalPopupMenu(this); - pop->insertItem(__tr2qs("&Load"),this,SLOT(loadList())); - pop->insertItem(__tr2qs("&Save"),this,SLOT(saveList())); - pop->insertItem(__tr2qs("&Clear"),this,SLOT(clear())); + pop = new QMenu(this); + pop->addAction(__tr2qs("&Load"),this,SLOT(loadList())); + pop->addAction(__tr2qs("&Save"),this,SLOT(saveList())); + pop->addAction(__tr2qs("&Clear"),this,SLOT(clear())); pop->setTitle(__tr2qs("&List")); m_pMenuBar->addMenu(pop); */ @@ -317,11 +317,11 @@ void UrlDialog::dblclk_url(QTreeWidgetItem *item, int) void UrlDialog::popup(QTreeWidgetItem *item, const QPoint &point) { m_szUrl = item->text(0); - KviTalPopupMenu p(0,"menu"); - p.insertItem(__tr2qs("&Remove"),this,SLOT(remove())); -// p.insertItem(__tr2qs("&Find Text"),this,SLOT(findtext())); - p.insertSeparator(); - m_pListPopup = new KviTalPopupMenu(0,"list"); + QMenu p("menu", 0); + p.addAction(__tr2qs("&Remove"),this,SLOT(remove())); +// p.addAction(__tr2qs("&Find Text"),this,SLOT(findtext())); + p.addSeparator(); + m_pListPopup = new QMenu("list", 0); for(KviWindow *w=g_pMainWindow->windowList()->first();w;w=g_pMainWindow->windowList()->next()) { @@ -332,15 +332,15 @@ void UrlDialog::popup(QTreeWidgetItem *item, const QPoint &point) m_pListPopup->addAction(w->plainTextCaption()); } } - p.insertItem(__tr2qs("&Say to Window"),m_pListPopup); + p.addAction(__tr2qs("&Say to Window"))->setMenu(m_pListPopup); connect(m_pListPopup,SIGNAL(triggered(QAction *)), this, SLOT(sayToWin(QAction *))); p.exec(point); } void UrlDialog::contextMenu(const QPoint &point) { - KviTalPopupMenu p(0,"contextmenu"); - p.insertItem(__tr2qs("Configure"),this,SLOT(config())); + QMenu p("contextmenu", 0); + p.addAction(__tr2qs("Configure"),this,SLOT(config())); p.exec(point); } diff --git a/src/modules/url/libkviurl.h b/src/modules/url/libkviurl.h index 90622ab4e..812473da3 100644 --- a/src/modules/url/libkviurl.h +++ b/src/modules/url/libkviurl.h @@ -75,7 +75,7 @@ public: ~UrlDialog(); private: KviTalMenuBar *m_pMenuBar; - KviTalPopupMenu *m_pListPopup; // dynamic popup menu + QMenu *m_pListPopup; // dynamic popup menu QString m_szUrl; // used to pass urls to sayToWin slot protected: QPixmap *myIconPtr(); |
