aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/options/OptionsWidget_servers.cpp
diff options
context:
space:
mode:
authorGravatar Fabio Bas2012-02-26 14:57:49 +0000
committerGravatar Fabio Bas2012-02-26 14:57:49 +0000
commitb2891fe17c395b885b4fac8634fa8cca1a45fbb6 (patch)
treee9fcfdebc14137188b3cf02376fe90145d52943d /src/modules/options/OptionsWidget_servers.cpp
parentSome mixed changes, mostly related to osx development: (diff)
downloadKVIrc-b2891fe17c395b885b4fac8634fa8cca1a45fbb6.tar.gz
KVIrc-b2891fe17c395b885b4fac8634fa8cca1a45fbb6.tar.bz2
KVIrc-b2891fe17c395b885b4fac8634fa8cca1a45fbb6.zip
Dropped the KviTalPopupMenu layer, ported the involved code to QAction.
This fixes most of the random crashes on osx, and is the base for a next change in the menubar. Addiotional fix: "disconnect" menu entry was broken since the 3.x era git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@6072 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/options/OptionsWidget_servers.cpp')
-rw-r--r--src/modules/options/OptionsWidget_servers.cpp78
1 files changed, 40 insertions, 38 deletions
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);