diff options
Diffstat (limited to 'src/modules')
24 files changed, 491 insertions, 412 deletions
diff --git a/src/modules/dcc/send.cpp b/src/modules/dcc/send.cpp index 3888084a7..30190dd12 100644 --- a/src/modules/dcc/send.cpp +++ b/src/modules/dcc/send.cpp @@ -1388,7 +1388,7 @@ KviDccFileTransfer * KviDccFileTransfer::nonFailedTransferWithLocalFileName(cons { #ifdef COMPILE_ON_WINDOWS // on windows the file names are case insensitive - if(t->localFileName().lower() == szLocalFileName.lower()) + if(t->localFileName().toLower() == szLocalFileName.toLower()) #else if(t->localFileName() == szLocalFileName) #endif diff --git a/src/modules/filetransferwindow/filetransferwindow.cpp b/src/modules/filetransferwindow/filetransferwindow.cpp index 9b468d09e..7f786f312 100644 --- a/src/modules/filetransferwindow/filetransferwindow.cpp +++ b/src/modules/filetransferwindow/filetransferwindow.cpp @@ -462,7 +462,7 @@ void KviFileTransferWindow::openLocalFileTerminal() if(!t)return; QString tmp = t->localFileName(); if(tmp.isEmpty())return; - int idx = tmp.findRev("/"); + int idx = tmp.lastIndexOf("/"); if(idx == -1)return; tmp = tmp.left(idx); tmp.append("\""); @@ -477,7 +477,7 @@ void KviFileTransferWindow::openLocalFileTerminal() QString tmp = t->localFileName(); if(tmp.isEmpty())return; - int idx = tmp.findRev("/"); + int idx = tmp.lastIndexOf("/"); if(idx == -1)return; tmp = tmp.left(idx); @@ -603,7 +603,7 @@ void KviFileTransferWindow::openLocalFileFolder() QString tmp = t->localFileName(); if(tmp.isEmpty())return; - int idx = tmp.findRev("/"); + int idx = tmp.lastIndexOf("/"); if(idx == -1)return; tmp = tmp.left(idx); diff --git a/src/modules/options/dialog.cpp b/src/modules/options/dialog.cpp index 6eaf68a66..9feaf0c7c 100644 --- a/src/modules/options/dialog.cpp +++ b/src/modules/options/dialog.cpp @@ -195,12 +195,12 @@ KviOptionsDialog::KviOptionsDialog(QWidget * par,const QString &szGroup) connect(m_pListView,SIGNAL(selectionChanged(KviTalListViewItem *)),this,SLOT(listViewItemSelectionChanged(KviTalListViewItem *))); KviTalHBox * hbox = new KviTalHBox(vbox); - vbox->setSpacing(2); + vbox->setSpacing(0); vbox->setMargin(0); m_pSearchLineEdit = new QLineEdit(hbox); connect(m_pSearchLineEdit,SIGNAL(returnPressed()),this,SLOT(searchClicked())); - m_pSearchButton = new KviStyledToolButton(hbox); + m_pSearchButton = new QToolButton(hbox); m_pSearchButton->setUsesBigPixmap(false); m_pSearchButton->setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SEARCH))); connect(m_pSearchButton,SIGNAL(clicked()),this,SLOT(searchClicked())); diff --git a/src/modules/options/instances.cpp b/src/modules/options/instances.cpp index 51cd273c6..119149290 100644 --- a/src/modules/options/instances.cpp +++ b/src/modules/options/instances.cpp @@ -3503,7 +3503,11 @@ KviOptionsWidget * KviOptionsInstanceManager::getInstance(KviOptionsWidgetInstan if(e->pWidget->parent() != par) { QWidget * oldPar = (QWidget *)e->pWidget->parent(); - e->pWidget->reparent(par,QPoint(0,0)); + //e->pWidget->reparent(par,QPoint(0,0)); + e->pWidget->setParent(par); + e->pWidget->setGeometry(0,0,e->pWidget->width(),e->pWidget->height()); + // + delete oldPar; } if(e->bIsContainer) diff --git a/src/modules/options/instances.h b/src/modules/options/instances.h index 12f10a42c..55aca0422 100644 --- a/src/modules/options/instances.h +++ b/src/modules/options/instances.h @@ -54,7 +54,7 @@ typedef struct _KviOptionsWidgetInstanceEntry bool bIsContainer; bool bIsNotContained; KviPointerList<KviOptionsWidgetInstanceEntry> * pChildList; - bool bDoInsert; // a helper for KviOptionsDialog::fillListView() + bool bDoInsert; // a helper for KviOptionsDialog::fillTreeWidget() } KviOptionsWidgetInstanceEntry; diff --git a/src/modules/options/libkvioptions.cpp b/src/modules/options/libkvioptions.cpp index cd23e31f6..a26b32f4f 100644 --- a/src/modules/options/libkvioptions.cpp +++ b/src/modules/options/libkvioptions.cpp @@ -103,12 +103,20 @@ static bool options_kvs_cmd_dialog(KviKvsModuleCommandCall * c) { if(d->parent()) { - d->reparent(0,QPoint(0,0),true); + // d->reparent(0,QPoint(0,0),true); + d->setParent(0); + d->setGeometry(0,0,d->width(),d->height()); + // inline QT3_SUPPORT void reparent(QWidget *parent, const QPoint &p, bool showIt=false)
+ //{ setParent(parent, windowFlags() & ~Qt::WindowType_Mask); setGeometry(p.x(),p.y(),width(),height()); if (showIt) show(); }
+ } } else { if(d->parent() != c->window()->frame()->splitter()) { - d->reparent(c->window()->frame()->splitter(),QPoint(0,0),true); + // d->reparent(c->window()->frame()->splitter(),QPoint(0,0),true); + d->setParent(c->window()->frame()->splitter()); + d->setGeometry(0,0,d->width(),d->height()); + d->show(); } } } else { @@ -203,7 +211,7 @@ static bool options_kvs_cmd_edit(KviKvsModuleCommandCall * c) { //c->warning(__tr("The editor page is already open","options")); e->pWidget->raise(); - e->pWidget->setActiveWindow(); + e->pWidget->activateWindow(); e->pWidget->setFocus(); return true; } diff --git a/src/modules/options/options_QT4_vc05.vcproj b/src/modules/options/options_QT4_vc05.vcproj index 49876b10c..1e05435d4 100644 --- a/src/modules/options/options_QT4_vc05.vcproj +++ b/src/modules/options/options_QT4_vc05.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""$(ProjectDir)\..\..\kvirc\ui";"$(ProjectDir)\..\..\kvilib\config";"$(QTDIR)\include";"$(ProjectDir)\..\..\kvilib\core";"$(ProjectDir)\..\..\kvilib\system";"$(ProjectDir)\..\..\kvilib\ext";"$(ProjectDir)\..\..\kvirc\kernel";"$(ProjectDir)\..\..\kvilib\irc";"$(ProjectDir)\..\..\kvilib\file";"$(ProjectDir)\..\..\kvilib\tal";"$(ProjectDir)\..\..\kvirc\module";"$(ProjectDir)\..\..\kvirc\uparser";"$(ProjectDir)\..\..\kvirc\kvs";"$(ProjectDir)\..\..\kvilib\net";"$(QTDIR)\include\Qt3Support";"$(QTDIR)\include\QtCore\";"$(QTDIR)\include\QtGui";"$(QTDIR)\include\Qt";"$(QTDIR)\include\QtNetwork";"$(QTDIR)\include\QtXml";"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OPTIONS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;QT3_SUPPORT;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OPTIONS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
diff --git a/src/modules/options/optw_identity.cpp b/src/modules/options/optw_identity.cpp index 27cd424d0..75ac7e5f0 100644 --- a/src/modules/options/optw_identity.cpp +++ b/src/modules/options/optw_identity.cpp @@ -365,7 +365,7 @@ KviIdentityGeneralOptionsWidget::KviIdentityGeneralOptionsWidget(QWidget * paren i = KVI_OPTION_STRING(KviOption_stringCtcpUserInfoAge).toUInt(&bOk); if(!bOk)i = 0; if(i > 120)i = 120; - m_pAgeCombo->setCurrentItem(i); + m_pAgeCombo->setCurrentIndex(i); hb->setStretchFactor(m_pAgeCombo,1); @@ -479,7 +479,7 @@ KviIdentityAvatarOptionsWidget::KviIdentityAvatarOptionsWidget(QWidget * parent) "The image also should be smaller than 800x600 pixels since<br>" \ "it will have to be viewable in everyone's monitor.","options"); - m_pUseAvatarCheck = new KviStyledCheckBox(__tr2qs_ctx("Use avatar","options"),this); + m_pUseAvatarCheck = new QCheckBox(__tr2qs_ctx("Use avatar","options"),this); addWidgetToLayout(m_pUseAvatarCheck,0,0,0,0); m_pUseAvatarCheck->setChecked(bHaveAvatar); mergeTip(m_pUseAvatarCheck,szTip); diff --git a/src/modules/options/optw_interfacefeatures.cpp b/src/modules/options/optw_interfacefeatures.cpp index a5b4da725..0a8f8f1de 100644 --- a/src/modules/options/optw_interfacefeatures.cpp +++ b/src/modules/options/optw_interfacefeatures.cpp @@ -47,7 +47,7 @@ KviInterfaceFeaturesOptionsWidget::KviInterfaceFeaturesOptionsWidget(QWidget * p QString szSplashDisableFile; g_pApp->getLocalKvircDirectory(szSplashDisableFile,KviApp::Pics,"disable-splash." KVI_VERSION); bool bDisableSplash = KviFileUtils::fileExists(szSplashDisableFile); - m_pDisableSplash = new KviStyledCheckBox(__tr2qs_ctx("Disable splash screen","options"),this); + m_pDisableSplash = new QCheckBox(__tr2qs_ctx("Disable splash screen","options"),this); addWidgetToLayout(m_pDisableSplash,0,3,0,3); m_pDisableSplash->setChecked(bDisableSplash); diff --git a/src/modules/options/optw_ircoutput.cpp b/src/modules/options/optw_ircoutput.cpp index 45a43eb97..fcce3671e 100644 --- a/src/modules/options/optw_ircoutput.cpp +++ b/src/modules/options/optw_ircoutput.cpp @@ -40,18 +40,18 @@ KviIrcOutputOptionsWidget::KviIrcOutputOptionsWidget(QWidget * parent) QLabel * l =new QLabel(__tr2qs_ctx("Output verbosity","options"),this); addWidgetToLayout(l,0,0,0,0); - m_pVerbosityCombo = new QComboBox(false,this); + m_pVerbosityCombo = new QComboBox(this); addWidgetToLayout(m_pVerbosityCombo,1,0,1,0); - m_pVerbosityCombo->insertItem(__tr2qs_ctx("Mute","options")); - m_pVerbosityCombo->insertItem(__tr2qs_ctx("Quiet","options")); - m_pVerbosityCombo->insertItem(__tr2qs_ctx("Normal","options")); - m_pVerbosityCombo->insertItem(__tr2qs_ctx("Verbose","options")); - m_pVerbosityCombo->insertItem(__tr2qs_ctx("Paranoic","options")); + m_pVerbosityCombo->addItem(__tr2qs_ctx("Mute","options")); + m_pVerbosityCombo->addItem(__tr2qs_ctx("Quiet","options")); + m_pVerbosityCombo->addItem(__tr2qs_ctx("Normal","options")); + m_pVerbosityCombo->addItem(__tr2qs_ctx("Verbose","options")); + m_pVerbosityCombo->addItem(__tr2qs_ctx("Paranoic","options")); if(KVI_OPTION_UINT(KviOption_uintOutputVerbosityLevel) > KVI_VERBOSITY_LEVEL_PARANOIC) KVI_OPTION_UINT(KviOption_uintOutputVerbosityLevel) = KVI_VERBOSITY_LEVEL_NORMAL; - m_pVerbosityCombo->setCurrentItem(KVI_OPTION_UINT(KviOption_uintOutputVerbosityLevel)); + m_pVerbosityCombo->setCurrentIndex(KVI_OPTION_UINT(KviOption_uintOutputVerbosityLevel)); KviTalGroupBox * g = addGroupBox(0,1,1,1,Qt::Horizontal,__tr2qs_ctx("Show in active window","options")); addBoolSelector(g,__tr2qs_ctx("External messages","options"),KviOption_boolExternalMessagesToActiveWindow); @@ -83,7 +83,7 @@ void KviIrcOutputOptionsWidget::commit() { KviOptionsWidget::commit(); - int i = m_pVerbosityCombo->currentItem(); + int i = m_pVerbosityCombo->currentIndex(); if((i < 0) || (i > KVI_VERBOSITY_LEVEL_PARANOIC))i = KVI_VERBOSITY_LEVEL_NORMAL; KVI_OPTION_UINT(KviOption_uintOutputVerbosityLevel) = i; } diff --git a/src/modules/options/optw_ircoutput.h b/src/modules/options/optw_ircoutput.h index 41575950a..c9f9fe76f 100644 --- a/src/modules/options/optw_ircoutput.h +++ b/src/modules/options/optw_ircoutput.h @@ -24,7 +24,7 @@ // #include "kvi_optionswidget.h" -#include "kvi_tal_listview.h" + class QComboBox; diff --git a/src/modules/options/optw_mediatypes.cpp b/src/modules/options/optw_mediatypes.cpp index 94c4e1da0..d14c4694c 100644 --- a/src/modules/options/optw_mediatypes.cpp +++ b/src/modules/options/optw_mediatypes.cpp @@ -44,17 +44,17 @@ static void copyMediaType(KviMediaType * dst,const KviMediaType * src) dst->szIcon = src->szIcon; } -KviMediaTypeListViewItem::KviMediaTypeListViewItem(KviTalListView * w,KviMediaType * t) -: KviTalListViewItem(w) +KviMediaTypeTreeWidgetItem::KviMediaTypeTreeWidgetItem(KviTalTreeWidget * w,KviMediaType * t) +: KviTalTreeWidgetItem(w) { copyData(t); } -KviMediaTypeListViewItem::~KviMediaTypeListViewItem() +KviMediaTypeTreeWidgetItem::~KviMediaTypeTreeWidgetItem() { } -void KviMediaTypeListViewItem::copyData(KviMediaType * t) +void KviMediaTypeTreeWidgetItem::copyData(KviMediaType * t) { copyMediaType(&m_data,t); setText(0,m_data.szFileMask.ptr()); @@ -67,16 +67,19 @@ KviMediaTypesOptionsWidget::KviMediaTypesOptionsWidget(QWidget * parent) { createLayout(); - m_pListView = new KviTalListView(this); - m_pListView->addColumn(__tr2qs_ctx("Pattern","options")); - m_pListView->addColumn(__tr2qs_ctx("MIME Type","options")); - m_pListView->addColumn(__tr2qs_ctx("Description","options")); - m_pListView->setAllColumnsShowFocus(true); + m_pTreeWidget = new KviTalTreeWidget(this); + m_pTreeWidget->setColumnCount(3); + QStringList columnLabels; + columnLabels.append(__tr2qs_ctx("Pattern","options")); + columnLabels.append(__tr2qs_ctx("MIME Type","options")); + columnLabels.append(__tr2qs_ctx("Description","options")); + m_pTreeWidget->setHeaderLabels(columnLabels); + m_pTreeWidget->setAllColumnsShowFocus(true); + m_pTreeWidget->setRootIsDecorated(false); + connect(m_pTreeWidget,SIGNAL(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *)),this,SLOT(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *))); - connect(m_pListView,SIGNAL(currentChanged(KviTalListViewItem *)),this,SLOT(currentItemChanged(KviTalListViewItem *))); - - layout()->addWidget(m_pListView,0,0,1,3); -// layout()->addMultiCellWidget(m_pListView,0,0,0,2); + layout()->addWidget(m_pTreeWidget,0,0,1,3); +// layout()->addMultiCellWidget(m_pTreeWidget,0,0,0,2); QLabel * l = new QLabel(__tr2qs_ctx("Description:","options"),this); layout()->addWidget(l,1,0); @@ -149,22 +152,22 @@ KviMediaTypesOptionsWidget::KviMediaTypesOptionsWidget(QWidget * parent) m_pLastItem = 0; - fillListView(); + fillTreeWidget(); } KviMediaTypesOptionsWidget::~KviMediaTypesOptionsWidget() { } -void KviMediaTypesOptionsWidget::fillListView() +void KviMediaTypesOptionsWidget::fillTreeWidget() { - m_pListView->clear(); + m_pTreeWidget->clear(); g_pMediaManager->lock(); KviPointerList<KviMediaType> * l = g_pMediaManager->mediaTypeList(); - KviMediaTypeListViewItem * it; + KviMediaTypeTreeWidgetItem * it; for(KviMediaType * t = l->first();t;t = l->next()) { - it = new KviMediaTypeListViewItem(m_pListView,t); + it = new KviMediaTypeTreeWidgetItem(m_pTreeWidget,t); } g_pMediaManager->unlock(); enableOrDisable(); @@ -215,13 +218,13 @@ void KviMediaTypesOptionsWidget::setLineEdits() m_pIcon->setText(m_pLastItem ? m_pLastItem->data()->szIcon.ptr() : ""); } -void KviMediaTypesOptionsWidget::currentItemChanged(KviTalListViewItem *it) +void KviMediaTypesOptionsWidget::currentItemChanged(KviTalTreeWidgetItem *it,KviTalTreeWidgetItem *prev) { saveLastItem(); - m_pLastItem = (KviMediaTypeListViewItem *)it; + m_pLastItem = (KviMediaTypeTreeWidgetItem *)it; if(it) { - if(!it->isSelected())m_pListView->setSelected(it,true); + if(!it->isSelected())it->setSelected(true); } setLineEdits(); enableOrDisable(); @@ -231,16 +234,16 @@ void KviMediaTypesOptionsWidget::newMediaType() { KviMediaType empty; empty.szDescription = __tr2qs_ctx("New Media Type","options"); - KviMediaTypeListViewItem * it = new KviMediaTypeListViewItem(m_pListView,&empty); - m_pListView->setCurrentItem(it); - m_pListView->setSelected(it,true); + KviMediaTypeTreeWidgetItem * it = new KviMediaTypeTreeWidgetItem(m_pTreeWidget,&empty); + m_pTreeWidget->setCurrentItem(it); + it->setSelected(true); } void KviMediaTypesOptionsWidget::delMediaType() { if(m_pLastItem) { - KviMediaTypeListViewItem * it = m_pLastItem; + KviMediaTypeTreeWidgetItem * it = m_pLastItem; m_pLastItem = 0; delete it; } @@ -249,15 +252,17 @@ void KviMediaTypesOptionsWidget::delMediaType() void KviMediaTypesOptionsWidget::commit() { saveLastItem(); - KviMediaTypeListViewItem * it = (KviMediaTypeListViewItem *)m_pListView->firstChild(); + KviMediaTypeTreeWidgetItem * it;// = (KviMediaTypeTreeWidgetItem *)m_pTreeWidget->firstChild(); g_pMediaManager->lock(); g_pMediaManager->clear(); - while(it) + //while(it) + for(int i=0;i<m_pTreeWidget->topLevelItemCount();i++) { + it=(KviMediaTypeTreeWidgetItem *)m_pTreeWidget->topLevelItem(i); KviMediaType * t = new KviMediaType; copyMediaType(t,it->data()); g_pMediaManager->insertMediaType(t); - it = (KviMediaTypeListViewItem *)it->nextSibling(); + // it = (KviMediaTypeTreeWidgetItem *)it->nextSibling(); } g_pMediaManager->unlock(); } diff --git a/src/modules/options/optw_mediatypes.h b/src/modules/options/optw_mediatypes.h index 3ec91c12f..b4dafe9f2 100644 --- a/src/modules/options/optw_mediatypes.h +++ b/src/modules/options/optw_mediatypes.h @@ -25,17 +25,17 @@ #include "kvi_optionswidget.h" #include "kvi_mediatype.h" -#include "kvi_tal_listview.h" +#include "kvi_tal_treewidget.h" #include <QLineEdit> #include <QPushButton> -class KviMediaTypeListViewItem : public KviTalListViewItem +class KviMediaTypeTreeWidgetItem : public KviTalTreeWidgetItem { public: - KviMediaTypeListViewItem(KviTalListView * w,KviMediaType * t); - ~KviMediaTypeListViewItem(); + KviMediaTypeTreeWidgetItem(KviTalTreeWidget * w,KviMediaType * t); + ~KviMediaTypeTreeWidgetItem(); private: KviMediaType m_data; public: @@ -57,7 +57,7 @@ public: KviMediaTypesOptionsWidget(QWidget * parent); ~KviMediaTypesOptionsWidget(); private: - KviTalListView * m_pListView; + KviTalTreeWidget * m_pTreeWidget; QLineEdit * m_pDescription; QLineEdit * m_pIanaType; QLineEdit * m_pFileMask; @@ -67,14 +67,14 @@ private: QLineEdit * m_pRemoteExecCommandline; QLineEdit * m_pIcon; QPushButton * m_pDelete; - KviMediaTypeListViewItem * m_pLastItem; + KviMediaTypeTreeWidgetItem * m_pLastItem; private: - void fillListView(); + void fillTreeWidget(); void saveLastItem(); void enableOrDisable(); void setLineEdits(); private slots: - void currentItemChanged(KviTalListViewItem *it); + void currentItemChanged(KviTalTreeWidgetItem *it,KviTalTreeWidgetItem *prev); void newMediaType(); void delMediaType(); public: diff --git a/src/modules/options/optw_messages.cpp b/src/modules/options/optw_messages.cpp index 8b2be8f08..aa70d6d2e 100644 --- a/src/modules/options/optw_messages.cpp +++ b/src/modules/options/optw_messages.cpp @@ -413,7 +413,7 @@ KviMessageColorsOptionsWidget::KviMessageColorsOptionsWidget(QWidget * parent) lbt = new KviTalListBoxText(m_pLevelListBox,tmpn); } - m_pIconButton = new KviStyledToolButton(box); + m_pIconButton = new QToolButton(box); connect(m_pIconButton,SIGNAL(clicked()),this,SLOT(iconButtonClicked())); m_pIconPopup = new KviTalPopupMenu(this); @@ -422,7 +422,7 @@ KviMessageColorsOptionsWidget::KviMessageColorsOptionsWidget(QWidget * parent) m_pIconPopup->insertItem(iw); - m_pEnableLogging = new KviStyledCheckBox(__tr2qs_ctx("Log this","options"),box); + m_pEnableLogging = new QCheckBox(__tr2qs_ctx("Log this","options"),box); KviTalHBox * h = new KviTalHBox(this); addWidgetToLayout(h,0,1,3,1); diff --git a/src/modules/options/optw_nickserv.cpp b/src/modules/options/optw_nickserv.cpp index 864038db4..54b16ef3f 100644 --- a/src/modules/options/optw_nickserv.cpp +++ b/src/modules/options/optw_nickserv.cpp @@ -30,7 +30,7 @@ #include "kvi_nickserv.h" #include "kvi_ircmask.h" #include "kvi_tal_tooltip.h" -#include "kvi_tal_listview.h" +#include "kvi_tal_TreeWidget.h" #include <QLayout> #include <QLineEdit> @@ -51,7 +51,7 @@ KviNickServRuleEditor::KviNickServRuleEditor(QWidget * par,bool bUseServerMaskFi QString html_center_begin = "<center>"; QString html_center_end = "</center>"; - QGridLayout * gl = new QGridLayout(this,bUseServerMaskField ? 7 : 6,4,10,5); + QGridLayout * gl = new QGridLayout(this);//,bUseServerMaskField ? 7 : 6,4,10,5); QLabel * l = new QLabel(__tr2qs_ctx("Registered NickName","options"),this); gl->addWidget(l,0,0); @@ -229,26 +229,28 @@ KviNickServOptionsWidget::KviNickServOptionsWidget(QWidget * parent) KviNickServRuleSet * rs = g_pNickServRuleSet; bool bNickServEnabled = rs ? (rs->isEnabled() && !rs->isEmpty()) : false; - m_pNickServCheck = new KviStyledCheckBox(__tr2qs_ctx("Enable NickServ Identification","options"),this); + m_pNickServCheck = new QCheckBox(__tr2qs_ctx("Enable NickServ Identification","options"),this); gl->addWidget(m_pNickServCheck,0,0,1,3); // gl->addMultiCellWidget(m_pNickServCheck,0,0,0,2); - KviTalToolTip::add(m_pNickServCheck, - __tr2qs_ctx("This check enables the automatic identification with NickServ","options")); + KviTalToolTip::add(m_pNickServCheck,__tr2qs_ctx("This check enables the automatic identification with NickServ","options")); m_pNickServCheck->setChecked(bNickServEnabled); - m_pNickServListView = new KviTalListView(this); - m_pNickServListView->setSelectionMode(KviTalListView::Single); - m_pNickServListView->setAllColumnsShowFocus(true); - m_pNickServListView->addColumn(__tr2qs_ctx("Nickname","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("Server mask","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("NickServ Mask","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("NickServ Request Mask","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("Identify Command","options")); - connect(m_pNickServListView,SIGNAL(selectionChanged()),this,SLOT(enableDisableNickServControls())); + m_pNickServTreeWidget = new KviTalTreeWidget(this); + m_pNickServTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); + m_pNickServTreeWidget->setAllColumnsShowFocus(true); + QStringList columnLabels; + + columnLabels.append(__tr2qs_ctx("Nickname","options")); + columnLabels.append(__tr2qs_ctx("Server mask","options")); + columnLabels.append(__tr2qs_ctx("NickServ Mask","options")); + columnLabels.append(__tr2qs_ctx("NickServ Request Mask","options")); + columnLabels.append(__tr2qs_ctx("Identify Command","options")); + m_pNickServTreeWidget->setHeaderLabels(columnLabels); + connect(m_pNickServTreeWidget,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableNickServControls())); - gl->addWidget(m_pNickServListView,1,0,1,3); -// gl->addMultiCellWidget(m_pNickServListView,1,1,0,2); - KviTalToolTip::add(m_pNickServListView, + gl->addWidget(m_pNickServTreeWidget,1,0,1,3); +// gl->addMultiCellWidget(m_pNickServTreeWidget,1,1,0,2); + KviTalToolTip::add(m_pNickServTreeWidget,\ __tr2qs_ctx("<center>This is a list of NickServ identification rules. " \ "KVIrc will use them to model its automatic interaction with NickServ on all the networks.<br>" \ "Please be aware that this feature can cause your NickServ passwords to be stolen " \ @@ -278,7 +280,7 @@ KviNickServOptionsWidget::KviNickServOptionsWidget(QWidget * parent) KviPointerList<KviNickServRule> * ll = rs->rules(); for(KviNickServRule * rule = ll->first();rule;rule = ll->next()) { - (void)new KviTalListViewItem(m_pNickServListView,rule->registeredNick(),rule->serverMask(),rule->nickServMask(),rule->messageRegexp(),rule->identifyCommand()); + (void)new KviTalTreeWidgetItem(m_pNickServTreeWidget,rule->registeredNick(),rule->serverMask(),rule->nickServMask(),rule->messageRegexp(),rule->identifyCommand()); } } @@ -293,7 +295,7 @@ KviNickServOptionsWidget::~KviNickServOptionsWidget() void KviNickServOptionsWidget::editNickServRule() { - KviTalListViewItem * it = m_pNickServListView->currentItem(); + KviTalTreeWidgetItem * it = (KviTalTreeWidgetItem *)m_pNickServTreeWidget->currentItem(); if(!it)return; KviNickServRule r(it->text(0),it->text(2),it->text(3),it->text(4),it->text(1)); KviNickServRuleEditor ed(this,true); @@ -312,12 +314,12 @@ void KviNickServOptionsWidget::addNickServRule() KviNickServRule r; KviNickServRuleEditor ed(this,true); if(ed.editRule(&r)) - (void)new KviTalListViewItem(m_pNickServListView,r.registeredNick(),r.serverMask(),r.nickServMask(),r.messageRegexp(),r.identifyCommand()); + (void)new KviTalTreeWidgetItem(m_pNickServTreeWidget,r.registeredNick(),r.serverMask(),r.nickServMask(),r.messageRegexp(),r.identifyCommand()); } void KviNickServOptionsWidget::delNickServRule() { - KviTalListViewItem * it = m_pNickServListView->currentItem(); + KviTalTreeWidgetItem * it = (KviTalTreeWidgetItem *)m_pNickServTreeWidget->currentItem(); if(!it)return; delete it; enableDisableNickServControls(); @@ -326,9 +328,9 @@ void KviNickServOptionsWidget::delNickServRule() void KviNickServOptionsWidget::enableDisableNickServControls() { bool bEnabled = m_pNickServCheck->isChecked(); - m_pNickServListView->setEnabled(bEnabled); + m_pNickServTreeWidget->setEnabled(bEnabled); m_pAddRuleButton->setEnabled(bEnabled); - bEnabled = bEnabled && (m_pNickServListView->childCount() > 0) && m_pNickServListView->currentItem(); + bEnabled = bEnabled && (m_pNickServTreeWidget->topLevelItemCount()) && m_pNickServTreeWidget->currentItem(); m_pDelRuleButton->setEnabled(bEnabled); m_pEditRuleButton->setEnabled(bEnabled); } @@ -336,14 +338,16 @@ void KviNickServOptionsWidget::enableDisableNickServControls() void KviNickServOptionsWidget::commit() { g_pNickServRuleSet->clear(); - if(m_pNickServListView->childCount() > 0) + if(m_pNickServTreeWidget->topLevelItemCount()) { g_pNickServRuleSet->setEnabled(m_pNickServCheck->isChecked()); - KviTalListViewItem * it = m_pNickServListView->firstChild(); - while(it) + KviTalTreeWidgetItem * it;// = m_pNickServTreeWidget->firstChild(); + for (int i=0;i<m_pNickServTreeWidget->topLevelItemCount();i++) +// while(it) { + it=(KviTalTreeWidgetItem *)m_pNickServTreeWidget->topLevelItem(i); g_pNickServRuleSet->addRule(KviNickServRule::createInstance(it->text(0),it->text(2),it->text(3),it->text(4),it->text(1))); - it = it->nextSibling(); + //it = it->nextSibling(); } } KviOptionsWidget::commit(); diff --git a/src/modules/options/optw_nickserv.h b/src/modules/options/optw_nickserv.h index aa3f43010..8afec3843 100644 --- a/src/modules/options/optw_nickserv.h +++ b/src/modules/options/optw_nickserv.h @@ -35,7 +35,7 @@ class QLineEdit; class QPushButton; class QCheckBox; class KviNickServRule; -class KviTalListView; +class KviTalTreeWidget; #define KVI_OPTIONS_WIDGET_ICON_KviNickServOptionsWidget KVI_SMALLICON_NICKSERV #define KVI_OPTIONS_WIDGET_NAME_KviNickServOptionsWidget __tr2qs_no_lookup("NickServ") @@ -72,7 +72,7 @@ public: KviNickServOptionsWidget(QWidget * parent); ~KviNickServOptionsWidget(); protected: - KviTalListView * m_pNickServListView; + KviTalTreeWidget * m_pNickServTreeWidget; QCheckBox * m_pNickServCheck; QPushButton * m_pAddRuleButton; QPushButton * m_pDelRuleButton; diff --git a/src/modules/options/optw_proxy.cpp b/src/modules/options/optw_proxy.cpp index 67ad78039..5f83ed9b2 100644 --- a/src/modules/options/optw_proxy.cpp +++ b/src/modules/options/optw_proxy.cpp @@ -29,7 +29,7 @@ #include "kvi_netutils.h" #include "kvi_settings.h" #include "kvi_options.h" -#include "kvi_styled_controls.h" +//#include "kvi_styled_controls.h" #include <kvi_tal_groupbox.h> #include "kvi_tal_popupmenu.h" #include "kvi_tal_tooltip.h" @@ -40,16 +40,17 @@ #include <QCheckBox> #include <QCursor> #include <QToolButton> +#include <QIcon> -KviProxyOptionsListViewItem::KviProxyOptionsListViewItem(KviTalListView *parent,const QPixmap &pm,KviProxy * prx) -: KviTalListViewItem(parent,prx->m_szHostname.ptr()) +KviProxyOptionsTreeWidgetItem::KviProxyOptionsTreeWidgetItem(KviTalTreeWidget *parent,const QPixmap &pm,KviProxy * prx) +: KviTalTreeWidgetItem(parent,prx->m_szHostname.ptr()) { - setPixmap(0,pm); + setIcon(0,QIcon(pm)); m_pProxyData = new KviProxy(*prx); } -KviProxyOptionsListViewItem::~KviProxyOptionsListViewItem() +KviProxyOptionsTreeWidgetItem::~KviProxyOptionsTreeWidgetItem() { delete m_pProxyData; } @@ -61,34 +62,35 @@ KviProxyOptionsWidget::KviProxyOptionsWidget(QWidget * parent) addBoolSelector(0,0,1,0,__tr2qs_ctx("Use proxy","options"),KviOption_boolUseProxyHost); - m_pListView = new KviTalListView(this); - addWidgetToLayout(m_pListView,0,1,0,1); - m_pListView->addColumn(__tr2qs_ctx("Proxy","options")); - m_pListView->setRootIsDecorated(true); - m_pListView->setAllColumnsShowFocus(true); - m_pListView->setSelectionMode(KviTalListView::Single); + m_pTreeWidget = new KviTalTreeWidget(this); + addWidgetToLayout(m_pTreeWidget,0,1,0,1); + m_pTreeWidget->addColumn(__tr2qs_ctx("Proxy","options")); + m_pTreeWidget->setRootIsDecorated(true); + m_pTreeWidget->setAllColumnsShowFocus(true); + m_pTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); - connect(m_pListView,SIGNAL(selectionChanged(KviTalListViewItem *)), - this,SLOT(listViewItemSelectionChanged(KviTalListViewItem *))); - connect(m_pListView,SIGNAL(rightButtonPressed(KviTalListViewItem *,const QPoint &,int)), - this,SLOT(listViewRightButtonPressed(KviTalListViewItem *,const QPoint &,int))); + connect(m_pTreeWidget,SIGNAL(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *)), + this,SLOT(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *))); + m_pTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu); + connect(m_pTreeWidget,SIGNAL(customContextMenuRequested(const QPoint &)), + this,SLOT(customContextMenuRequested(const QPoint &))); QString tiptxt = __tr2qs_ctx("<center>This is the list of available proxy servers.<br>" \ "Right-click on the list to add or remove proxies.</center>","options"); - mergeTip(m_pListView,tiptxt); - mergeTip(m_pListView->viewport(),tiptxt); + mergeTip(m_pTreeWidget,tiptxt); + mergeTip(m_pTreeWidget->viewport(),tiptxt); KviTalVBox * vbox = new KviTalVBox(this); addWidgetToLayout(vbox,1,1,1,1); - QToolButton * tb = new KviStyledToolButton(vbox); - tb->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY))); + QToolButton * tb = new QToolButton(vbox); + tb->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY)))); tb->setAutoRaise(true); connect(tb,SIGNAL(clicked()),this,SLOT(newProxy())); mergeTip(tb,__tr2qs_ctx("New Proxy","options")); - tb = new KviStyledToolButton(vbox); - tb->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_CUT))); + tb = new QToolButton(vbox); + tb->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_CUT)))); //tb->setEnabled(false); tb->setAutoRaise(true); connect(tb,SIGNAL(clicked()),this,SLOT(removeCurrent())); @@ -114,14 +116,14 @@ KviProxyOptionsWidget::KviProxyOptionsWidget(QWidget * parent) m_pPassLabel = new QLabel(__tr2qs_ctx("Password:","options"),gbox); m_pPassEdit = new QLineEdit(gbox); m_pProtocolLabel = new QLabel(__tr2qs_ctx("Protocol:","options"),gbox); - m_pProtocolBox = new QComboBox(false,gbox); + m_pProtocolBox = new QComboBox(gbox); QStringList l; KviProxy::getSupportedProtocolNames(l); - m_pProtocolBox->insertStringList(l); + m_pProtocolBox->addItems(l); - m_pIpV6Check = new KviStyledCheckBox(__tr2qs_ctx("Use IPv6 protocol","options"),gbox); + m_pIpV6Check = new QCheckBox(__tr2qs_ctx("Use IPv6 protocol","options"),gbox); connect(m_pIpV6Check,SIGNAL(toggled(bool)),this,SLOT(ipV6CheckToggled(bool))); #ifndef COMPILE_IPV6_SUPPORT m_pIpV6Check->setEnabled(false); @@ -148,26 +150,26 @@ void KviProxyOptionsWidget::ipV6CheckToggled(bool bEnabled) void KviProxyOptionsWidget::fillProxyList() { - KviProxyOptionsListViewItem * prx; + KviProxyOptionsTreeWidgetItem * prx; KviPointerList<KviProxy> * l = g_pProxyDataBase->proxyList(); for(KviProxy * p = l->first();p;p = l->next()) { - prx = new KviProxyOptionsListViewItem(m_pListView,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY)),p); + prx = new KviProxyOptionsTreeWidgetItem(m_pTreeWidget,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY)),p); if(p == g_pProxyDataBase->currentProxy()) { - m_pListView->setSelected(prx,true); - m_pListView->ensureItemVisible(prx); + prx->setSelected(true); + m_pTreeWidget->scrollToItem(prx); } } - if(!(g_pProxyDataBase->currentProxy()))listViewItemSelectionChanged(0); + if(!(g_pProxyDataBase->currentProxy()))currentItemChanged(0,0); } -void KviProxyOptionsWidget::listViewItemSelectionChanged(KviTalListViewItem *it) +void KviProxyOptionsWidget::currentItemChanged(KviTalTreeWidgetItem *it,KviTalTreeWidgetItem *prev) { if(m_pLastEditedItem)saveLastItem(); - m_pLastEditedItem = (KviProxyOptionsListViewItem *)it; + m_pLastEditedItem = (KviProxyOptionsTreeWidgetItem *)it; m_pProxyLabel->setEnabled(m_pLastEditedItem); m_pProxyEdit->setEnabled(m_pLastEditedItem); @@ -193,10 +195,10 @@ void KviProxyOptionsWidget::listViewItemSelectionChanged(KviTalListViewItem *it) for(int i=0;i<m_pProtocolBox->count();i++) { - KviStr txt = m_pProtocolBox->text(i); + KviStr txt = m_pProtocolBox->itemText(i); if(kvi_strEqualCI(m_pLastEditedItem->m_pProxyData->protocolName(),txt.ptr())) { - m_pProtocolBox->setCurrentItem(i); + m_pProtocolBox->setCurrentIndex(i); break; } } @@ -288,18 +290,21 @@ void KviProxyOptionsWidget::commit() { saveLastItem(); g_pProxyDataBase->clear(); - KviProxyOptionsListViewItem * it = (KviProxyOptionsListViewItem *)m_pListView->firstChild(); - while(it) + KviProxyOptionsTreeWidgetItem * it;// = (KviProxyOptionsTreeWidgetItem *)m_pTreeWidget->topLevelItemCount(); + + //while(it) + for(int i=0;i<m_pTreeWidget->topLevelItemCount();i++) { - KviStr tmp = it->text(0); - if(tmp.hasData()) + it=(KviProxyOptionsTreeWidgetItem *)m_pTreeWidget->topLevelItem(i); + QString tmp = it->text(0); + if(!tmp.isEmpty()) { - KviProxy * prx = new KviProxy(*(((KviProxyOptionsListViewItem *)it)->m_pProxyData)); + KviProxy * prx = new KviProxy(*(((KviProxyOptionsTreeWidgetItem *)it)->m_pProxyData)); g_pProxyDataBase->insertProxy(prx); if(it == m_pLastEditedItem)g_pProxyDataBase->setCurrentProxy(prx); } - it = (KviProxyOptionsListViewItem *)it->nextSibling(); + //it = (KviProxyOptionsTreeWidgetItem *)it->nextSibling(); } if(g_pProxyDataBase->currentProxy() == 0) @@ -310,8 +315,9 @@ void KviProxyOptionsWidget::commit() KviOptionsWidget::commit(); } -void KviProxyOptionsWidget::listViewRightButtonPressed(KviTalListViewItem *it,const QPoint &pnt,int col) +void KviProxyOptionsWidget::customContextMenuRequested(const QPoint &pos) { + KviTalTreeWidgetItem *it=(KviTalTreeWidgetItem *)m_pTreeWidget->itemAt(pos); m_pContextPopup->clear(); m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY)),__tr2qs_ctx("&New Proxy","options"),this,SLOT(newProxy())); m_pContextPopup->setItemEnabled(m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_CUT)),__tr2qs_ctx("Re&move Proxy","options"),this,SLOT(removeCurrent())),it); @@ -321,9 +327,9 @@ void KviProxyOptionsWidget::listViewRightButtonPressed(KviTalListViewItem *it,co void KviProxyOptionsWidget::newProxy() { KviProxy prx; - KviProxyOptionsListViewItem * it = new KviProxyOptionsListViewItem(m_pListView,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY)),&prx); - m_pListView->setSelected(it,true); - m_pListView->ensureItemVisible(it); + KviProxyOptionsTreeWidgetItem * it = new KviProxyOptionsTreeWidgetItem(m_pTreeWidget,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PROXY)),&prx); + it->setSelected(true); + m_pTreeWidget->scrollToItem(it); } void KviProxyOptionsWidget::removeCurrent() @@ -332,13 +338,13 @@ void KviProxyOptionsWidget::removeCurrent() { delete m_pLastEditedItem; m_pLastEditedItem = 0; - KviTalListViewItem * it = m_pListView->firstChild(); + KviTalTreeWidgetItem * it = (KviTalTreeWidgetItem *)m_pTreeWidget->topLevelItem(0); if(it) { - m_pListView->setSelected(it,true); - m_pListView->ensureItemVisible(it); + it->setSelected(true); + //m_pTreeWidget->ensureItemVisible(it); } else { - listViewItemSelectionChanged(0); + currentItemChanged(0,0); } } } diff --git a/src/modules/options/optw_proxy.h b/src/modules/options/optw_proxy.h index 143957973..9f6ced14f 100644 --- a/src/modules/options/optw_proxy.h +++ b/src/modules/options/optw_proxy.h @@ -24,7 +24,7 @@ // #include "kvi_optionswidget.h" -#include "kvi_tal_listview.h" +#include "kvi_tal_treewidget.h" class QLabel; class QLineEdit; @@ -37,11 +37,11 @@ class KviProxyDataBase; extern KVIRC_API KviProxyDataBase * g_pProxyDataBase; -class KviProxyOptionsListViewItem : public KviTalListViewItem +class KviProxyOptionsTreeWidgetItem : public KviTalTreeWidgetItem { public: - KviProxyOptionsListViewItem(KviTalListView *parent,const QPixmap &pm,KviProxy * prx); - ~KviProxyOptionsListViewItem(); + KviProxyOptionsTreeWidgetItem(KviTalTreeWidget *parent,const QPixmap &pm,KviProxy * prx); + ~KviProxyOptionsTreeWidgetItem(); public: KviProxy * m_pProxyData; }; @@ -60,7 +60,7 @@ public: KviProxyOptionsWidget(QWidget * parent); ~KviProxyOptionsWidget(); protected: - KviTalListView * m_pListView; + KviTalTreeWidget * m_pTreeWidget; QLabel * m_pProxyLabel; QLineEdit * m_pProxyEdit; QLabel * m_pIpLabel; @@ -75,14 +75,14 @@ protected: QComboBox * m_pProtocolBox; KviTalPopupMenu * m_pContextPopup; QCheckBox * m_pIpV6Check; - KviProxyOptionsListViewItem * m_pLastEditedItem; + KviProxyOptionsTreeWidgetItem * m_pLastEditedItem; private: void fillProxyList(); void saveLastItem(); protected slots: - void listViewItemSelectionChanged(KviTalListViewItem *it); - void listViewRightButtonPressed(KviTalListViewItem *it,const QPoint &pnt,int col); + void currentItemChanged(KviTalTreeWidgetItem *it,KviTalTreeWidgetItem *prev); + void customContextMenuRequested(const QPoint &pnt); void newProxy(); void removeCurrent(); void ipV6CheckToggled(bool bEnabled); diff --git a/src/modules/options/optw_servers.cpp b/src/modules/options/optw_servers.cpp index 61175c157..972df5712 100644 --- a/src/modules/options/optw_servers.cpp +++ b/src/modules/options/optw_servers.cpp @@ -63,11 +63,14 @@ #include <QComboBox> #include <QButtonGroup> #include <QInputDialog> +#include <QIcon> KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n) - : QDialog(par,"network_details",true) + : QDialog(par) { + setModal(true); + setObjectName("network_details"); m_pOnConnectEditor=0; m_pOnLoginEditor=0; @@ -81,7 +84,7 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n m_pAutoConnectCheck=0; - m_pNickServListView=0; + m_pNickServTreeWidget=0; m_pNickServCheck=0; m_pAddRuleButton=0; m_pDelRuleButton=0; @@ -92,7 +95,7 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n QGridLayout * g = new QGridLayout(this); setWindowTitle(__tr2qs_ctx("Network Details","options")); - setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD))); + setWindowIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)))); QString szTmp = "<font size=\"+1\"><b>"; szTmp += n->name(); @@ -138,7 +141,7 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n l = new QLabel(__tr2qs_ctx("Nickname:","options"),gbox); m_pNickEditor = new QLineEdit(gbox); - QValidator * v = new QRegExpValidator(QRegExp("[^-0-9 ][^ ]*","options"),gbox); + QValidator * v = new QRegExpValidator(QRegExp("[^-0-9 ][^ ]*",Qt::CaseSensitive),gbox); m_pNickEditor->setValidator(v); m_pNickEditor->setText(n->nickName()); KviTalToolTip::add(m_pNickEditor,__tr2qs_ctx("<center>You can specify a \"special\" <b>nickname</b> that will be used to log in to the servers on this network.<br>" \ @@ -152,7 +155,7 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n l = new QLabel(__tr2qs_ctx("Encoding:","options"),tab); gl->addWidget(l,1,0); - m_pEncodingEditor = new QComboBox(false,tab); + m_pEncodingEditor = new QComboBox(tab); m_pEncodingEditor->setDuplicatesEnabled(false); gl->addWidget(m_pEncodingEditor,1,1); KviTalToolTip::add(m_pEncodingEditor,__tr2qs_ctx("<center>This box allows you to choose the preferred encoding for the servers in this network. " \ @@ -163,19 +166,19 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n int current = 0; KviLocale::EncodingDescription * d = KviLocale::encodingDescription(i); QString tmp; - m_pEncodingEditor->insertItem(__tr2qs_ctx("Use System Encoding","options")); + m_pEncodingEditor->addItem(__tr2qs_ctx("Use System Encoding","options")); while(d->szName) { KviQString::sprintf(tmp,"%s (%s)",d->szName,d->szDescription); - m_pEncodingEditor->insertItem(tmp); + m_pEncodingEditor->insertItem(m_pEncodingEditor->count(),tmp); if(KviQString::equalCI(d->szName,n->encoding()))current = i + 1; i = i + 1; d = KviLocale::encodingDescription(i); } - m_pEncodingEditor->setCurrentItem(current); + m_pEncodingEditor->setCurrentIndex(current); - m_pAutoConnectCheck = new KviStyledCheckBox(__tr2qs_ctx("Connect to this network at startup","options"),tab); + m_pAutoConnectCheck = new QCheckBox(__tr2qs_ctx("Connect to this network at startup","options"),tab); m_pAutoConnectCheck->setChecked(n->autoConnect()); gl->addWidget(m_pAutoConnectCheck,2,0,1,2); // gl->addMultiCellWidget(m_pAutoConnectCheck,2,2,0,1); @@ -250,24 +253,27 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n KviNickServRuleSet * rs = n->nickServRuleSet(); bool bNickServEnabled = rs ? (rs->isEnabled() && !rs->isEmpty()) : false; - m_pNickServCheck = new KviStyledCheckBox(__tr2qs_ctx("Enable NickServ Identification","options"),tab); + m_pNickServCheck = new QCheckBox(__tr2qs_ctx("Enable NickServ Identification","options"),tab); gl->addWidget(m_pNickServCheck,0,0,1,3); // gl->addMultiCellWidget(m_pNickServCheck,0,0,0,2); KviTalToolTip::add(m_pNickServCheck, __tr2qs_ctx("This check enables the automatic identification with NickServ","options")); m_pNickServCheck->setChecked(bNickServEnabled); - m_pNickServListView = new KviTalListView(tab); - m_pNickServListView->setSelectionMode(KviTalListView::Single); - m_pNickServListView->setAllColumnsShowFocus(true); - m_pNickServListView->addColumn(__tr2qs_ctx("Nickname","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("NickServ Mask","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("NickServ Request Mask","options")); - m_pNickServListView->addColumn(__tr2qs_ctx("Identify Command","options")); - connect(m_pNickServListView,SIGNAL(selectionChanged()),this,SLOT(enableDisableNickServControls())); - gl->addWidget(m_pNickServListView,1,0,1,3); -//// gl->addMultiCellWidget(m_pNickServListView,1,1,0,2); - KviTalToolTip::add(m_pNickServListView, + m_pNickServTreeWidget = new KviTalTreeWidget(tab); + m_pNickServTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); + m_pNickServTreeWidget->setAllColumnsShowFocus(true); + m_pNickServTreeWidget->setColumnCount(4); + QStringList columnLabels; + columnLabels.append(__tr2qs_ctx("Nickname","options")); + columnLabels.append(__tr2qs_ctx("NickServ Mask","options")); + columnLabels.append(__tr2qs_ctx("NickServ Request Mask","options")); + columnLabels.append(__tr2qs_ctx("Identify Command","options")); + m_pNickServTreeWidget->setHeaderLabels(columnLabels); + connect(m_pNickServTreeWidget,SIGNAL(itemSelectionChanged()),this,SLOT(enableDisableNickServControls())); + gl->addWidget(m_pNickServTreeWidget,1,0,1,3); +//// gl->addMultiCellWidget(m_pNickServTreeWidget,1,1,0,2); + KviTalToolTip::add(m_pNickServTreeWidget, __tr2qs_ctx("<center>This is a list of NickServ identification rules. " \ "KVIrc will use them to model its automatic interaction with NickServ on this network.<br>" \ "Please be aware that this feature can cause your NickServ passwords to be stolen " \ @@ -295,7 +301,7 @@ KviNetworkDetailsWidget::KviNetworkDetailsWidget(QWidget * par,KviIrcNetwork * n KviPointerList<KviNickServRule> * ll = rs->rules(); for(KviNickServRule * rule = ll->first();rule;rule = ll->next()) { - (void)new KviTalListViewItem(m_pNickServListView,rule->registeredNick(),rule->nickServMask(),rule->messageRegexp(),rule->identifyCommand()); + (void)new KviTalTreeWidgetItem(m_pNickServTreeWidget,rule->registeredNick(),rule->nickServMask(),rule->messageRegexp(),rule->identifyCommand()); } } @@ -331,7 +337,7 @@ KviNetworkDetailsWidget::~KviNetworkDetailsWidget() void KviNetworkDetailsWidget::editNickServRule() { - KviTalListViewItem * it = m_pNickServListView->currentItem(); + KviTalTreeWidgetItem * it = (KviTalTreeWidgetItem *) m_pNickServTreeWidget->currentItem(); if(!it)return; KviNickServRule r(it->text(0),it->text(1),it->text(2),it->text(3)); KviNickServRuleEditor ed(this,false); @@ -349,12 +355,12 @@ void KviNetworkDetailsWidget::addNickServRule() KviNickServRule r; KviNickServRuleEditor ed(this,false); if(ed.editRule(&r)) - (void)new KviTalListViewItem(m_pNickServListView,r.registeredNick(),r.nickServMask(),r.messageRegexp(),r.identifyCommand()); + (void)new KviTalTreeWidgetItem(m_pNickServTreeWidget,r.registeredNick(),r.nickServMask(),r.messageRegexp(),r.identifyCommand()); } void KviNetworkDetailsWidget::delNickServRule() { - KviTalListViewItem * it = m_pNickServListView->currentItem(); + KviTalTreeWidgetItem * it = (KviTalTreeWidgetItem *)m_pNickServTreeWidget->currentItem(); if(!it)return; delete it; enableDisableNickServControls(); @@ -363,9 +369,9 @@ void KviNetworkDetailsWidget::delNickServRule() void KviNetworkDetailsWidget::enableDisableNickServControls() { bool bEnabled = m_pNickServCheck->isChecked(); - m_pNickServListView->setEnabled(bEnabled); + m_pNickServTreeWidget->setEnabled(bEnabled); m_pAddRuleButton->setEnabled(bEnabled); - bEnabled = bEnabled && (m_pNickServListView->childCount() > 0) && m_pNickServListView->currentItem(); + bEnabled = bEnabled && (m_pNickServTreeWidget->topLevelItemCount()) && m_pNickServTreeWidget->currentItem(); m_pDelRuleButton->setEnabled(bEnabled); m_pEditRuleButton->setEnabled(bEnabled); } @@ -379,26 +385,28 @@ void KviNetworkDetailsWidget::fillData(KviIrcNetwork * n) if(m_pAutoConnectCheck) n->setAutoConnect(m_pAutoConnectCheck->isChecked()); if(m_pEncodingEditor) - if(m_pEncodingEditor->currentItem() <= 0)n->setEncoding(QString::null); + if(m_pEncodingEditor->currentIndex() <= 0)n->setEncoding(QString::null); else { - KviLocale::EncodingDescription * d = KviLocale::encodingDescription(m_pEncodingEditor->currentItem() - 1); + KviLocale::EncodingDescription * d = KviLocale::encodingDescription(m_pEncodingEditor->currentIndex() - 1); n->setEncoding(d->szName); } if(m_pChannelListSelector) m_pChannelListSelector->commit(); if(m_lstChannels.isEmpty())n->setAutoJoinChannelList(0); else n->setAutoJoinChannelList(new QStringList(m_lstChannels)); - if(m_pNickServListView) + if(m_pNickServTreeWidget) { - if(m_pNickServListView->childCount() > 0) + if(m_pNickServTreeWidget->topLevelItemCount() > 0) { KviNickServRuleSet * rs = KviNickServRuleSet::createInstance(); rs->setEnabled(m_pNickServCheck->isChecked()); - KviTalListViewItem * it = m_pNickServListView->firstChild(); - while(it) + KviTalTreeWidgetItem * it;// = (KviTalTreeWidgetItem *)m_pNickServTreeWidget->firstChild(); + for (int i=0;i<m_pNickServTreeWidget->topLevelItemCount();i++) + //while(it) { + it=(KviTalTreeWidgetItem *) m_pNickServTreeWidget->topLevelItem(i); rs->addRule(KviNickServRule::createInstance(it->text(0),it->text(1),it->text(2),it->text(3))); - it = it->nextSibling(); + // it = it->nextSibling(); } n->setNickServRuleSet(rs); } else n->setNickServRuleSet(0); @@ -419,13 +427,15 @@ void KviNetworkDetailsWidget::fillData(KviIrcNetwork * n) KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) - : QDialog(par,"server_details",true) + : QDialog(par)//,"server_details",true) { + setModal(true); + setObjectName("server_details"); m_szHostname = s->hostName(); QGridLayout * g = new QGridLayout(this); setWindowTitle(__tr2qs_ctx("Server Details","options")); - setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER))); + setWindowIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)))); m_pHeaderLabel = new QLabel("",this); // the text will be set later m_pHeaderLabel->setFrameStyle(QFrame::Raised | QFrame::StyledPanel); @@ -488,7 +498,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) gbox = new KviTalGroupBox(Qt::Horizontal,__tr2qs_ctx("User Mode","options"),tab); gl->addWidget(gbox,1,0); - m_pUseDefaultInitUMode = new KviStyledCheckBox(__tr2qs_ctx("Use default user mode","options"),gbox); + m_pUseDefaultInitUMode = new QCheckBox(__tr2qs_ctx("Use default user mode","options"),gbox); KviTalToolTip::add(m_pUseDefaultInitUMode,__tr2qs_ctx("<center>If this is enabled, the global initial <b>user mode</b> (configured from"\ " the identity dialog) will be used. If disabled, you can configure an initial user mode for this server","options")); bool bHasUmode = !(s->initUMode().isEmpty()); @@ -496,17 +506,17 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) m_pUseDefaultInitUMode->setChecked(!bHasUmode); connect(m_pUseDefaultInitUMode,SIGNAL(toggled(bool)),this,SLOT(useDefaultInitUModeToggled(bool))); - m_pIMode = new KviStyledCheckBox(__tr2qs_ctx("Invisible (+i)","options"),gbox); + m_pIMode = new QCheckBox(__tr2qs_ctx("Invisible (+i)","options"),gbox); m_pIMode->setEnabled(bHasUmode); - m_pIMode->setChecked(bHasUmode ? s->initUMode().contains('i',false) : szDefUMode.contains('i',false)); + m_pIMode->setChecked(bHasUmode ? s->initUMode().contains('i',Qt::CaseInsensitive) : szDefUMode.contains('i',Qt::CaseInsensitive)); - m_pSMode = new KviStyledCheckBox(__tr2qs_ctx("Server notices (+s)","options"),gbox); + m_pSMode = new QCheckBox(__tr2qs_ctx("Server notices (+s)","options"),gbox); m_pSMode->setEnabled(bHasUmode); - m_pSMode->setChecked(bHasUmode ? s->initUMode().contains('s',false) : szDefUMode.contains('s',false)); + m_pSMode->setChecked(bHasUmode ? s->initUMode().contains('s',Qt::CaseInsensitive) : szDefUMode.contains('s',Qt::CaseInsensitive)); - m_pWMode = new KviStyledCheckBox(__tr2qs_ctx("Wallops (+w)","options"),gbox); + m_pWMode = new QCheckBox(__tr2qs_ctx("Wallops (+w)","options"),gbox); m_pWMode->setEnabled(bHasUmode); - m_pWMode->setChecked(bHasUmode ? s->initUMode().contains('w',false) : szDefUMode.contains('w',false)); + m_pWMode->setChecked(bHasUmode ? s->initUMode().contains('w',Qt::CaseInsensitive) : szDefUMode.contains('w',Qt::CaseInsensitive)); l = new QLabel("",tab); gl->addWidget(l,2,0); @@ -558,7 +568,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) #endif } - m_pCacheIpCheck = new KviStyledCheckBox(__tr2qs_ctx("Cache IP address","options"),tab); + m_pCacheIpCheck = new QCheckBox(__tr2qs_ctx("Cache IP address","options"),tab); gl->addWidget(m_pCacheIpCheck,2,0,1,2); // gl->addMultiCellWidget(m_pCacheIpCheck,2,2,0,1); KviTalToolTip::add(m_pCacheIpCheck,__tr2qs_ctx("<center>This check will enable <b>IP address caching</b> for this server:<br>" \ @@ -570,7 +580,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) m_pCacheIpCheck->setChecked(s->cacheIp()); - m_pUseIPV6Check = new KviStyledCheckBox(__tr2qs_ctx("Use IPv6 protocol","options"),tab); + m_pUseIPV6Check = new QCheckBox(__tr2qs_ctx("Use IPv6 protocol","options"),tab); gl->addWidget(m_pUseIPV6Check,3,0,1,2); // gl->addMultiCellWidget(m_pUseIPV6Check,3,3,0,1); #ifdef COMPILE_IPV6_SUPPORT @@ -583,7 +593,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) KviTalToolTip::add(m_pUseIPV6Check,__tr2qs_ctx("<center>This check identifies IPv6 servers.<br>If enabled, KVIrc will attempt to use the IPv6 protocol " \ "(thus your OS <b>must</b> have a working IPv6 stack and you <b>must</b> have an IPv6 connection).</center>","options")); - m_pUseSSLCheck = new KviStyledCheckBox(__tr2qs_ctx("Use SSL protocol","options"),tab); + m_pUseSSLCheck = new QCheckBox(__tr2qs_ctx("Use SSL protocol","options"),tab); gl->addWidget(m_pUseSSLCheck,4,0,1,2); // gl->addMultiCellWidget(m_pUseSSLCheck,4,4,0,1); KviTalToolTip::add(m_pUseSSLCheck,__tr2qs_ctx("<center>This check will cause the connection to use the <b>Secure Socket Layer</b> " \ @@ -594,7 +604,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) m_pUseSSLCheck->setChecked(s->useSSL()); - m_pUseAutoConnect = new KviStyledCheckBox(__tr2qs_ctx("Connect to this server at startup","options"),tab); + m_pUseAutoConnect = new QCheckBox(__tr2qs_ctx("Connect to this server at startup","options"),tab); m_pUseAutoConnect->setChecked(s->autoConnect()); gl->addWidget(m_pUseAutoConnect,5,0,1,2); @@ -603,7 +613,7 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) l = new QLabel(__tr2qs_ctx("Encoding:","options"),tab); gl->addWidget(l,6,0); - m_pEncodingEditor = new QComboBox(false,tab); + m_pEncodingEditor = new QComboBox(tab); m_pEncodingEditor->setDuplicatesEnabled(false); gl->addWidget(m_pEncodingEditor,6,1); KviTalToolTip::add(m_pEncodingEditor,__tr2qs_ctx("<center>This box allows you to choose the preferred encoding for this sever. " \ @@ -614,26 +624,27 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) int current = 0; KviLocale::EncodingDescription * d = KviLocale::encodingDescription(i); QString tmp; - m_pEncodingEditor->insertItem(__tr2qs_ctx("Use Network Encoding","options")); + m_pEncodingEditor->addItem(__tr2qs_ctx("Use Network Encoding","options")); while(d->szName) { KviQString::sprintf(tmp,"%s (%s)",d->szName,d->szDescription); - m_pEncodingEditor->insertItem(tmp); + m_pEncodingEditor->insertItem(m_pEncodingEditor->count(),tmp); if(KviQString::equalCI(d->szName,s->encoding()))current = i + 1; i = i + 1; d = KviLocale::encodingDescription(i); } - m_pEncodingEditor->setCurrentItem(current); + m_pEncodingEditor->setCurrentIndex(current); l = new QLabel(__tr2qs_ctx("Link filter:","options"),tab); gl->addWidget(l,7,0); - m_pLinkFilterEditor = new QComboBox(true,tab); + m_pLinkFilterEditor = new QComboBox(tab); + m_pLinkFilterEditor->setEditable(true); m_pLinkFilterEditor->setDuplicatesEnabled(false); gl->addWidget(m_pLinkFilterEditor,7,1); - m_pLinkFilterEditor->insertItem(""); + m_pLinkFilterEditor->addItem(""); g_pModuleManager->loadModulesByCaps("linkfilter"); KviModuleExtensionDescriptorList * mexl = KviModuleExtensionManager::instance()->getExtensionList("linkfilter"); @@ -643,16 +654,23 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) if(mexl) { for(KviModuleExtensionDescriptor * d = mexl->first();d;d = mexl->next()) - m_pLinkFilterEditor->insertItem(d->name().ptr()); + m_pLinkFilterEditor->addItem(d->name().ptr()); } else { if(!s->linkFilter().isEmpty()) - m_pLinkFilterEditor->insertItem(s->linkFilter()); + m_pLinkFilterEditor->addItem(s->linkFilter()); } if(!s->linkFilter().isEmpty()) - m_pLinkFilterEditor->setCurrentText(s->linkFilter()); + { + //m_pLinkFilterEditor->setCurrentText(s->linkFilter()); + int i = m_pLinkFilterEditor->findText(s->linkFilter());
+ if (i != -1)
+ m_pLinkFilterEditor->setCurrentIndex(i);
+ else
+ m_pLinkFilterEditor->setEditText(s->linkFilter());
+ } else - m_pLinkFilterEditor->setCurrentText(""); + m_pLinkFilterEditor->setCurrentIndex(0); KviTalToolTip::add(m_pLinkFilterEditor,__tr2qs_ctx("<center>This field specifies the name of a module that exports a link filter for this type of server.<br>" \ @@ -678,16 +696,16 @@ KviServerDetailsWidget::KviServerDetailsWidget(QWidget * par,KviIrcServer * s) "If this field is set in \"Default\" KVirc will use global proxy settings, if it is set in \"Direct connection\" " \ "KVirc will connect to this server without proxy. You can define new proxy server in global options' \"Proxy servers\" menu.</center>","options")); - m_pProxyEditor->insertItem(__tr2qs_ctx("Default","options")); - m_pProxyEditor->insertItem(__tr2qs_ctx("Direct connection","options")); + m_pProxyEditor->addItem(__tr2qs_ctx("Default","options")); + m_pProxyEditor->addItem(__tr2qs_ctx("Direct connection","options")); KviPointerList<KviProxy> * proxylist = g_pProxyDataBase->proxyList(); for(KviProxy * p = proxylist->first();p;p = proxylist->next()) { - m_pProxyEditor->insertItem(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->setCurrentItem(s->proxy()+2); + m_pProxyEditor->setCurrentIndex(s->proxy()+2); l = new QLabel("",tab); @@ -819,9 +837,9 @@ void KviServerDetailsWidget::fillData(KviIrcServer * s) if(m_pLinkFilterEditor) s->setLinkFilter(m_pLinkFilterEditor->lineEdit()->text()); if(m_pEncodingEditor) - if(m_pEncodingEditor->currentItem() <= 0)s->m_szEncoding = ""; + if(m_pEncodingEditor->currentIndex() <= 0)s->m_szEncoding = ""; else { - KviLocale::EncodingDescription * d = KviLocale::encodingDescription(m_pEncodingEditor->currentItem() - 1); + KviLocale::EncodingDescription * d = KviLocale::encodingDescription(m_pEncodingEditor->currentIndex() - 1); s->m_szEncoding = d->szName; } s->setIpAddress(""); @@ -908,7 +926,7 @@ void KviServerDetailsWidget::fillData(KviIrcServer * s) if(m_pUseAutoConnect) s->setAutoConnect(m_pUseAutoConnect->isChecked()); if(m_pProxyEditor) - s->setProxy(m_pProxyEditor->currentItem()-2); + s->setProxy(m_pProxyEditor->currentIndex()-2); } void KviServerDetailsWidget::useDefaultInitUModeToggled(bool b) @@ -921,33 +939,33 @@ void KviServerDetailsWidget::useDefaultInitUModeToggled(bool b) // kvi_app.cpp extern KVIRC_API KviIrcServerDataBase * g_pIrcServerDataBase; -KviServerOptionsListViewItem::KviServerOptionsListViewItem(KviTalListView *parent,const QPixmap &pm,const KviIrcNetwork *n) - : KviTalListViewItem(parent) +KviServerOptionsTreeWidgetItem::KviServerOptionsTreeWidgetItem(KviTalTreeWidget *parent,const QPixmap &pm,const KviIrcNetwork *n) + : KviTalTreeWidgetItem(parent) { - setPixmap(0,pm); + setIcon(0,QIcon(pm)); m_pServerData = 0; m_pNetworkData = new KviIrcNetwork(*n); setText(0,n->name()); setText(1,n->description()); } -KviServerOptionsListViewItem::KviServerOptionsListViewItem(KviTalListViewItem *parent,const QPixmap &pm,const KviIrcServer *s) - : KviTalListViewItem(parent) +KviServerOptionsTreeWidgetItem::KviServerOptionsTreeWidgetItem(KviTalTreeWidgetItem *parent,const QPixmap &pm,const KviIrcServer *s) + : KviTalTreeWidgetItem(parent) { - setPixmap(0,pm); + setIcon(0,QIcon(pm)); m_pServerData = new KviIrcServer(*s); setText(0,s->hostName()); setText(1,s->description()); m_pNetworkData = 0; } -KviServerOptionsListViewItem::~KviServerOptionsListViewItem() +KviServerOptionsTreeWidgetItem::~KviServerOptionsTreeWidgetItem() { if(m_pServerData)delete m_pServerData; if(m_pNetworkData)delete m_pNetworkData; } -void KviServerOptionsListViewItem::updateVisibleStrings() +void KviServerOptionsTreeWidgetItem::updateVisibleStrings() { if(m_pNetworkData) { @@ -978,43 +996,53 @@ KviServerOptionsWidget::KviServerOptionsWidget(QWidget * parent) m_pNetworkDetailsDialog = 0; m_pImportFilter = 0; - m_pListView = new KviTalListView(this); - addWidgetToLayout(m_pListView,0,0,0,0); - m_pListView->addColumn(__tr2qs_ctx("Server","options")); - m_pListView->addColumn(__tr2qs_ctx("Description","options")); - m_pListView->setRootIsDecorated(true); - m_pListView->setAllColumnsShowFocus(true); - m_pListView->setSelectionMode(KviTalListView::Single); - connect(m_pListView,SIGNAL(selectionChanged(KviTalListViewItem *)), - this,SLOT(listViewItemSelectionChanged(KviTalListViewItem *))); - connect(m_pListView,SIGNAL(rightButtonPressed(KviTalListViewItem *,const QPoint &,int)), - this,SLOT(listViewRightButtonPressed(KviTalListViewItem *,const QPoint &,int))); - connect(m_pListView,SIGNAL(doubleClicked(KviTalListViewItem*, const QPoint&, int )), - this,SLOT(detailsClicked())); + m_pTreeWidget = new KviTalTreeWidget(this); + addWidgetToLayout(m_pTreeWidget,0,0,0,0); + m_pTreeWidget->setColumnCount(2); + m_pTreeWidget->setMinimumWidth(500); + QStringList columLabels; + columLabels.append(__tr2qs_ctx("Server","options")); + columLabels.append(__tr2qs_ctx("Description","options")); + m_pTreeWidget->setColumnWidth(0,150); + m_pTreeWidget->setColumnWidth(1,150); + + m_pTreeWidget->setHeaderLabels(columLabels); + m_pTreeWidget->setRootIsDecorated(true); + m_pTreeWidget->setAllColumnsShowFocus(true); + m_pTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); + m_pTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu); + connect(m_pTreeWidget,SIGNAL(customContextMenuRequested(const QPoint &)), + this,SLOT(customContextMenuRequested(const QPoint &))); + connect(m_pTreeWidget,SIGNAL(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *)), + this,SLOT(currentItemChanged(KviTalTreeWidgetItem *,KviTalTreeWidgetItem *))); + + connect(m_pTreeWidget,SIGNAL(itemDoubleClicked(KviTalTreeWidgetItem*, int )), + this,SLOT(itemDoubleClicked(KviTalTreeWidgetItem*, int ))); QString tiptxt = __tr2qs_ctx("<center>This is the list of available IRC servers.<br>" \ "Right-click on the list to add or remove servers and perform other actions.<br>"\ "Double-click on a item for advanced options.</center>","options"); - KviTalToolTip::add(m_pListView,tiptxt); - KviTalToolTip::add(m_pListView->viewport(),tiptxt); + KviTalToolTip::add(m_pTreeWidget,tiptxt); + KviTalToolTip::add(m_pTreeWidget->viewport(),tiptxt); KviTalVBox * vbox = new KviTalVBox(this); + vbox->setSpacing(0); addWidgetToLayout(vbox,1,0,1,0); - m_pNewNetworkButton = new KviStyledToolButton(vbox); - m_pNewNetworkButton->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD))); + m_pNewNetworkButton = new QToolButton(vbox); + m_pNewNetworkButton->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)))); m_pNewNetworkButton->setAutoRaise(true); connect(m_pNewNetworkButton,SIGNAL(clicked()),this,SLOT(newNetwork())); KviTalToolTip::add(m_pNewNetworkButton,__tr2qs_ctx("New Network","options")); - m_pNewServerButton = new KviStyledToolButton(vbox); - m_pNewServerButton->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER))); + m_pNewServerButton = new QToolButton(vbox); + m_pNewServerButton->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)))); m_pNewServerButton->setAutoRaise(true); connect(m_pNewServerButton,SIGNAL(clicked()),this,SLOT(newServer())); KviTalToolTip::add(m_pNewServerButton,__tr2qs_ctx("New Server","options")); - m_pRemoveButton = new KviStyledToolButton(vbox); - m_pRemoveButton->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_CUT))); + m_pRemoveButton = new QToolButton(vbox); + m_pRemoveButton->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_CUT)))); m_pRemoveButton->setEnabled(false); m_pRemoveButton->setAutoRaise(true); connect(m_pRemoveButton,SIGNAL(clicked()),this,SLOT(removeCurrent())); @@ -1023,15 +1051,15 @@ KviServerOptionsWidget::KviServerOptionsWidget(QWidget * parent) QFrame * f = new QFrame(vbox); f->setFrameStyle(QFrame::Sunken | QFrame::HLine); - m_pCopyServerButton = new KviStyledToolButton(vbox); - m_pCopyServerButton->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_COPY))); + m_pCopyServerButton = new QToolButton(vbox); + m_pCopyServerButton->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_COPY)))); m_pCopyServerButton->setEnabled(false); m_pCopyServerButton->setAutoRaise(true); connect(m_pCopyServerButton,SIGNAL(clicked()),this,SLOT(copyServer())); KviTalToolTip::add(m_pCopyServerButton,__tr2qs_ctx("Copy Server","options")); - m_pPasteServerButton = new KviStyledToolButton(vbox); - m_pPasteServerButton->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PASTE))); + m_pPasteServerButton = new QToolButton(vbox); + m_pPasteServerButton->setIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_PASTE))); m_pPasteServerButton->setEnabled(false); m_pPasteServerButton->setAutoRaise(true); connect(m_pPasteServerButton,SIGNAL(clicked()),this,SLOT(pasteServer())); @@ -1040,11 +1068,11 @@ KviServerOptionsWidget::KviServerOptionsWidget(QWidget * parent) f = new QFrame(vbox); f->setFrameStyle(QFrame::Sunken | QFrame::HLine); - m_pImportButton = new KviStyledToolButton(vbox); - m_pImportButton->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_FOLDER))); + m_pImportButton = new QToolButton(vbox); + m_pImportButton->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_FOLDER)))); m_pImportButton->setAutoRaise(true); - m_pImportButton->setPopup(m_pImportPopup); - m_pImportButton->setPopupDelay(1); + m_pImportButton->setMenu(m_pImportPopup); +// m_pImportButton->setPopupDelay(1); KviTalToolTip::add(m_pImportButton,__tr2qs_ctx("Import List","options")); QFrame * lll = new QFrame(vbox); @@ -1057,7 +1085,7 @@ KviServerOptionsWidget::KviServerOptionsWidget(QWidget * parent) KviTalToolTip::add(m_pSrvNetEdit,__tr2qs_ctx("<center>This is the name of the currently selected server or network</center>","options")); /* - m_pIpV6Check = new KviStyledCheckBox(__tr2qs_ctx("Use IPv6 protocol","options"),gbox); + m_pIpV6Check = new QCheckBox(__tr2qs_ctx("Use IPv6 protocol","options"),gbox); #ifndef COMPILE_IPV6_SUPPORT m_pIpV6Check->setEnabled(false); @@ -1086,11 +1114,11 @@ KviServerOptionsWidget::KviServerOptionsWidget(QWidget * parent) connect(m_pRecentPopup,SIGNAL(aboutToShow()),this,SLOT(recentServersPopupAboutToShow())); connect(m_pRecentPopup,SIGNAL(activated(int)),this,SLOT(recentServersPopupClicked(int))); - QToolButton * tb = new KviStyledToolButton(this); + QToolButton * tb = new QToolButton(this); addWidgetToLayout(tb,1,2,1,2); - tb->setPixmap(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_TIME))); - tb->setPopup(m_pRecentPopup); - tb->setPopupDelay(1); + tb->setIcon(QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_TIME)))); + tb->setMenu(m_pRecentPopup); +// tb->setPopupDelay(1); KviTalToolTip::add(tb,__tr2qs_ctx("<center>This button shows a list of recently used servers. It allows you to quickly find them in the list.</center>","options")); KviBoolSelector * b = addBoolSelector(0,3,1,3,__tr2qs_ctx("Show this dialog at startup","options"),KviOption_boolShowServersConnectDialogOnStart); @@ -1146,21 +1174,27 @@ void KviServerOptionsWidget::recentServersPopupClicked(int id) kvi_u32_t uPort = port.toUInt(&bOk); // we have the port too - KviTalListViewItem * pFoundNet = 0; - KviTalListViewItem * pFoundSrv = 0; + KviTalTreeWidgetItem * pFoundNet = 0; + KviTalTreeWidgetItem * pFoundSrv = 0; - for(KviTalListViewItem * net = m_pListView->firstChild();net;net = net->nextSibling()) + //for(KviTalTreeWidgetItem * net = m_pTreeWidget->firstChild();net;net = net->nextSibling() + KviTalTreeWidgetItem * net; + for(int i=0;i<m_pTreeWidget->topLevelItemCount();i++) { - for(KviTalListViewItem * srv = net->firstChild();srv;srv = srv->nextSibling()) + net=(KviTalTreeWidgetItem *) m_pTreeWidget->topLevelItem(i); + //for(KviTalTreeWidgetItem * srv = net->firstChild();srv;srv = srv->nextSibling()) + KviTalTreeWidgetItem * srv; + for (int j=0;j<net->childCount();j++) { - KviStr tmp = ((KviServerOptionsListViewItem *)srv)->m_pServerData->hostName(); + srv=(KviTalTreeWidgetItem *)net->child(i); + KviStr tmp = ((KviServerOptionsTreeWidgetItem *)srv)->m_pServerData->hostName(); if(kvi_strEqualCI(tmp.ptr(),data.ptr())) { - if(((KviServerOptionsListViewItem *)srv)->m_pServerData->port() == uPort) + if(((KviServerOptionsTreeWidgetItem *)srv)->m_pServerData->port() == uPort) { - net->setOpen(true); - m_pListView->setCurrentItem(srv); - m_pListView->ensureItemVisible(srv); + net->setExpanded(true); + m_pTreeWidget->setCurrentItem(srv); + m_pTreeWidget->scrollToItem(srv); return; } else { if(!pFoundNet) @@ -1179,9 +1213,9 @@ void KviServerOptionsWidget::recentServersPopupClicked(int id) // fallback to the server with the wrong port if(pFoundNet) { - pFoundNet->setOpen(true); - m_pListView->setCurrentItem(pFoundSrv); - m_pListView->ensureItemVisible(pFoundSrv); + pFoundNet->setExpanded(true); + m_pTreeWidget->setCurrentItem(pFoundSrv); + m_pTreeWidget->scrollToItem(pFoundSrv); } } @@ -1196,37 +1230,40 @@ void KviServerOptionsWidget::connectCurrentClicked() void KviServerOptionsWidget::fillServerList() { - KviServerOptionsListViewItem * net; - KviServerOptionsListViewItem * srv; - KviServerOptionsListViewItem * cur = 0; + KviServerOptionsTreeWidgetItem * net; + KviServerOptionsTreeWidgetItem * srv; + KviServerOptionsTreeWidgetItem * cur = 0; KviPointerHashTableIterator<QString,KviIrcServerDataBaseRecord> it(*(g_pIrcServerDataBase->recordDict())); while(KviIrcServerDataBaseRecord * r = it.current()) { - net = new KviServerOptionsListViewItem(m_pListView,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),r->network()); + net = new KviServerOptionsTreeWidgetItem(m_pTreeWidget,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),r->network()); KviPointerList<KviIrcServer> * sl = r->serverList(); bool bCurrent = r->network()->name() == g_pIrcServerDataBase->currentNetworkName().toUtf8().data(); - net->setOpen(bCurrent); + net->setExpanded(bCurrent); for(KviIrcServer * s = sl->first();s;s = sl->next()) { - srv = new KviServerOptionsListViewItem(net,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),s); + srv = new KviServerOptionsTreeWidgetItem(net,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),s); if((s == r->currentServer()) && bCurrent) { - m_pListView->setSelected(srv,true); + srv->setSelected(true); cur = srv; } } ++it; } - if(cur)m_pListView->ensureItemVisible(cur); + if(cur)m_pTreeWidget->scrollToItem(cur); } - -void KviServerOptionsWidget::listViewItemSelectionChanged(KviTalListViewItem *it) +void KviServerOptionsWidget::itemDoubleClicked(KviTalTreeWidgetItem*, int ) +{ + detailsClicked(); +} +void KviServerOptionsWidget::currentItemChanged(KviTalTreeWidgetItem *it,KviTalTreeWidgetItem *prev) { saveLastItem(); - m_pLastEditedItem = (KviServerOptionsListViewItem *)it; + m_pLastEditedItem = (KviServerOptionsTreeWidgetItem *)it; if(m_pLastEditedItem) { @@ -1280,61 +1317,67 @@ void KviServerOptionsWidget::commit() { saveLastItem(); g_pIrcServerDataBase->clear(); - KviServerOptionsListViewItem * it = (KviServerOptionsListViewItem *)m_pListView->firstChild(); - while(it) +// KviServerOptionsTreeWidgetItem * it = (KviServerOptionsTreeWidgetItem *)m_pTreeWidget->firstChild(); + KviServerOptionsTreeWidgetItem * network; + for (int i=0;i<m_pTreeWidget->topLevelItemCount();i++) + //while(it) { - QString tmp = it->m_pNetworkData ? it->m_pNetworkData->name() : QString::null; - if(!tmp.isEmpty()) + network=(KviServerOptionsTreeWidgetItem *) m_pTreeWidget->topLevelItem(i); + QString tmp = network->m_pNetworkData->name(); + KviIrcNetwork * net = 0; + KviIrcServerDataBaseRecord * r = g_pIrcServerDataBase->findRecord(tmp); + if(r) { - KviIrcNetwork * net = 0; - KviIrcServerDataBaseRecord * r = g_pIrcServerDataBase->findRecord(tmp); - if(r) - { - net = r->network(); - net->copyFrom(*(it->m_pNetworkData)); - } else { - net = new KviIrcNetwork(tmp); - net->copyFrom(*(it->m_pNetworkData)); - r = g_pIrcServerDataBase->insertNetwork(net); - } - if(it == m_pLastEditedItem)g_pIrcServerDataBase->setCurrentNetwork(net->name()); - - KviServerOptionsListViewItem * ch = (KviServerOptionsListViewItem *)it->firstChild(); + net = r->network(); + net->copyFrom(*(network->m_pNetworkData)); + } else { + net = new KviIrcNetwork(tmp); + net->copyFrom(*(network->m_pNetworkData)); + r = g_pIrcServerDataBase->insertNetwork(net); + } + if(network == m_pLastEditedItem)g_pIrcServerDataBase->setCurrentNetwork(net->name()); + + KviServerOptionsTreeWidgetItem * ch; + for (int j=0;j<network->childCount();i++) + { + //KviServerOptionsTreeWidgetItem * ch;// = (KviServerOptionsTreeWidgetItem *)it->firstChild(); KviIrcServer *srv; - - while(ch) + ch=(KviServerOptionsTreeWidgetItem *)network->child(i); + // while(ch) + // { + if(ch->m_pServerData) { - if(ch->m_pServerData) + if(!ch->m_pServerData->m_szHostname.isEmpty()) { - if(!ch->m_pServerData->m_szHostname.isEmpty()) + srv = r->findServer(ch->m_pServerData); + if(!srv) + { + srv = new KviIrcServer(*(ch->m_pServerData)); + r->insertServer(srv); + } else *srv = *(ch->m_pServerData); + if(srv->id().isEmpty())srv->generateUniqueId(); + if(ch == m_pLastEditedItem) { - srv = r->findServer(ch->m_pServerData); - if(!srv) - { - srv = new KviIrcServer(*(ch->m_pServerData)); - r->insertServer(srv); - } else *srv = *(ch->m_pServerData); - if(srv->id().isEmpty())srv->generateUniqueId(); - if(ch == m_pLastEditedItem) - { - g_pIrcServerDataBase->setCurrentNetwork(net->name()); - r->setCurrentServer(srv); - } + g_pIrcServerDataBase->setCurrentNetwork(net->name()); + r->setCurrentServer(srv); } } - ch = (KviServerOptionsListViewItem *)ch->nextSibling(); } + //ch = (KviServerOptionsTreeWidgetItem *)ch->nextSibling(); } - it = (KviServerOptionsListViewItem *)it->nextSibling(); + } + // it = (KviServerOptionsTreeWidgetItem *)it->nextSibling(); +//} KviOptionsWidget::commit(); } -void KviServerOptionsWidget::listViewRightButtonPressed(KviTalListViewItem *it,const QPoint &pnt,int col) +void KviServerOptionsWidget::customContextMenuRequested(const QPoint &pnt) { int id; - bool bServer = (it && ((KviServerOptionsListViewItem *)it)->m_pServerData); + KviTalTreeWidgetItem *it=(KviTalTreeWidgetItem *) m_pTreeWidget->itemAt(pnt); + bool bServer = (it && ((KviServerOptionsTreeWidgetItem *)it)->m_pServerData); m_pContextPopup->clear(); m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),__tr2qs_ctx("New Network","options"),this,SLOT(newNetwork())); id = m_pContextPopup->insertItem(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_CUT)),__tr2qs_ctx("Remove Network","options"),this,SLOT(removeCurrent())); @@ -1423,16 +1466,19 @@ void KviServerOptionsWidget::importerDead() void KviServerOptionsWidget::importServer(const KviIrcServer &s,const QString &network) { - KviServerOptionsListViewItem * net = findNetItem(network); + KviServerOptionsTreeWidgetItem * net = findNetItem(network); if(!net) { KviIrcNetwork d(network); - net = new KviServerOptionsListViewItem(m_pListView,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),&d); - net->setOpen(true); + net = new KviServerOptionsTreeWidgetItem(m_pTreeWidget,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),&d); + net->setExpanded(true); } - for(KviServerOptionsListViewItem * srv = (KviServerOptionsListViewItem *)net->firstChild();srv;srv = (KviServerOptionsListViewItem *)srv->nextSibling()) + //for(KviServerOptionsTreeWidgetItem * srv = (KviServerOptionsTreeWidgetItem *)net->firstChild();srv;srv = (KviServerOptionsTreeWidgetItem *)srv->nextSibling()) + KviServerOptionsTreeWidgetItem * srv ; + for(int i=0;i<net->childCount();i++) { + srv=(KviServerOptionsTreeWidgetItem *) net->child(i); if((srv)->m_pServerData->useSSL() == s.useSSL()) { if(srv->m_pServerData->isIpV6() == s.isIpV6()) @@ -1444,8 +1490,8 @@ void KviServerOptionsWidget::importServer(const KviIrcServer &s,const QString &n if(!s.ipAddress().isEmpty())srv->m_pServerData->setIpAddress(s.ipAddress()); if(!s.password().isEmpty())srv->m_pServerData->setPassword(s.password()); if(!s.nickName().isEmpty())srv->m_pServerData->setNickName(s.nickName()); - m_pListView->setCurrentItem(srv); - m_pListView->ensureItemVisible(srv); + m_pTreeWidget->setCurrentItem(srv); + m_pTreeWidget->scrollToItem(srv); return; } } @@ -1453,28 +1499,28 @@ void KviServerOptionsWidget::importServer(const KviIrcServer &s,const QString &n } // not found : add it! - KviServerOptionsListViewItem * newServer = new KviServerOptionsListViewItem(net,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),&s); - m_pListView->setCurrentItem(newServer); - m_pListView->ensureItemVisible(newServer); + KviServerOptionsTreeWidgetItem * newServer = new KviServerOptionsTreeWidgetItem(net,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),&s); + m_pTreeWidget->setCurrentItem(newServer); + m_pTreeWidget->scrollToItem(newServer); } void KviServerOptionsWidget::newNetwork() { KviIrcNetwork d(__tr2qs_ctx("New Network","options")); - KviServerOptionsListViewItem * it = new KviServerOptionsListViewItem(m_pListView,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),&d); - it->setOpen(true); - m_pListView->setSelected(it,true); - m_pListView->ensureItemVisible(it); + KviServerOptionsTreeWidgetItem * it = new KviServerOptionsTreeWidgetItem(m_pTreeWidget,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),&d); + it->setExpanded(true); + it->setSelected(true); + m_pTreeWidget->scrollToItem(it); } void KviServerOptionsWidget::newServer() { if(m_pLastEditedItem) { - KviServerOptionsListViewItem * net; + KviServerOptionsTreeWidgetItem * net; if(m_pLastEditedItem->m_pServerData) { - net = (KviServerOptionsListViewItem *)m_pLastEditedItem->parent(); + net = (KviServerOptionsTreeWidgetItem *)m_pLastEditedItem->parent(); if(!net)return; } else net = m_pLastEditedItem; @@ -1484,13 +1530,13 @@ void KviServerOptionsWidget::newServer() tmp.setCacheIp(false); tmp.generateUniqueId(); - KviServerOptionsListViewItem * it = new KviServerOptionsListViewItem(net, + KviServerOptionsTreeWidgetItem * it = new KviServerOptionsTreeWidgetItem(net, *(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),&tmp); - net->setOpen(true); + net->setExpanded(true); - m_pListView->setSelected(it,true); - m_pListView->ensureItemVisible(it); + it->setSelected(true); + m_pTreeWidget->scrollToItem(it); } } @@ -1513,58 +1559,63 @@ void KviServerOptionsWidget::pasteServer() { if(m_pLastEditedItem) { - KviServerOptionsListViewItem * net; + KviServerOptionsTreeWidgetItem * net; if(m_pLastEditedItem->m_pServerData) { - net = (KviServerOptionsListViewItem *)m_pLastEditedItem->parent(); + net = (KviServerOptionsTreeWidgetItem *)m_pLastEditedItem->parent(); if(!net)return; } else net = m_pLastEditedItem; - KviServerOptionsListViewItem * it = new KviServerOptionsListViewItem(net, + KviServerOptionsTreeWidgetItem * it = new KviServerOptionsTreeWidgetItem(net, *(g_pIconManager->getSmallIcon(KVI_SMALLICON_SERVER)),m_pClipboard); - net->setOpen(true); + net->setExpanded(true); - m_pListView->setSelected(it,true); - m_pListView->ensureItemVisible(it); + it->setSelected(true); + m_pTreeWidget->scrollToItem(it); } } } void KviServerOptionsWidget::removeCurrent() { + /* if(m_pLastEditedItem) { - KviTalListViewItem * it = m_pLastEditedItem->itemAbove(); + KviTalTreeWidgetItem * it = m_pLastEditedItem->itemAbove(); if(!it)it = m_pLastEditedItem->firstChild() ? m_pLastEditedItem->nextSibling() : m_pLastEditedItem->itemBelow(); delete m_pLastEditedItem; m_pLastEditedItem = 0; - if(!it)it = m_pListView->firstChild(); + if(!it)it = m_pTreeWidget->firstChild(); if(it) { - m_pListView->setSelected(it,true); - m_pListView->ensureItemVisible(it); + it->setSelected(true); + m_pTreeWidget->scrollToItem(it); } } + */ } -KviServerOptionsListViewItem * KviServerOptionsWidget::findNetItem(const QString &netname) +KviServerOptionsTreeWidgetItem * KviServerOptionsWidget::findNetItem(const QString &netname) { - KviServerOptionsListViewItem * it = (KviServerOptionsListViewItem *)m_pListView->firstChild(); - while(it) + + KviServerOptionsTreeWidgetItem * it;// = (KviServerOptionsTreeWidgetItem *)m_pTreeWidget->firstChild(); + //while(it) + for(int i=0;i<m_pTreeWidget->topLevelItemCount();i++) { + it=(KviServerOptionsTreeWidgetItem *)m_pTreeWidget->topLevelItem(i); if(KviQString::equalCI(it->text(0),netname))return it; - it = (KviServerOptionsListViewItem *)it->nextSibling(); + // it = (KviServerOptionsTreeWidgetItem *)it->nextSibling(); } return 0; } void KviServerOptionsWidget::clearList() { - m_pListView->clear(); + m_pTreeWidget->clear(); m_pLastEditedItem = 0; - listViewItemSelectionChanged(0); + currentItemChanged(0,0); } void KviServerOptionsWidget::detailsClicked() diff --git a/src/modules/options/optw_servers.h b/src/modules/options/optw_servers.h index 97a773f9e..efaf51308 100644 --- a/src/modules/options/optw_servers.h +++ b/src/modules/options/optw_servers.h @@ -26,7 +26,7 @@ //============================================================================= #include "kvi_optionswidget.h" -#include "kvi_tal_listview.h" +#include "kvi_tal_TreeWidget.h" #include <QDialog> #include <QButtonGroup> @@ -50,12 +50,12 @@ class KviIrcNetworkData; class KviMexServerImport; -class KviServerOptionsListViewItem : public KviTalListViewItem +class KviServerOptionsTreeWidgetItem : public KviTalTreeWidgetItem { public: - KviServerOptionsListViewItem(KviTalListView *parent,const QPixmap &pm,const KviIrcNetwork *n); - KviServerOptionsListViewItem(KviTalListViewItem *parent,const QPixmap &pm,const KviIrcServer *s); - ~KviServerOptionsListViewItem(); + KviServerOptionsTreeWidgetItem(KviTalTreeWidget *parent,const QPixmap &pm,const KviIrcNetwork *n); + KviServerOptionsTreeWidgetItem(KviTalTreeWidgetItem *parent,const QPixmap &pm,const KviIrcServer *s); + ~KviServerOptionsTreeWidgetItem(); public: KviIrcServer * m_pServerData; KviIrcNetwork * m_pNetworkData; @@ -84,7 +84,7 @@ protected: QCheckBox * m_pAutoConnectCheck; - KviTalListView * m_pNickServListView; + KviTalTreeWidget * m_pNickServTreeWidget; QCheckBox * m_pNickServCheck; QPushButton * m_pAddRuleButton; QPushButton * m_pDelRuleButton; @@ -157,7 +157,7 @@ public: KviServerOptionsWidget(QWidget * parent); ~KviServerOptionsWidget(); protected: - KviTalListView * m_pListView; + KviTalTreeWidget * m_pTreeWidget; QLabel * m_pSrvNetLabel; QLineEdit * m_pSrvNetEdit; //QLabel * m_pPortLabel; @@ -170,7 +170,7 @@ protected: //QCheckBox * m_pIpV6Check; QPushButton * m_pConnectCurrent; QPushButton * m_pConnectNew; - KviServerOptionsListViewItem * m_pLastEditedItem; + KviServerOptionsTreeWidgetItem * m_pLastEditedItem; KviServerDetailsWidget * m_pServerDetailsDialog; KviNetworkDetailsWidget * m_pNetworkDetailsDialog; KviMexServerImport * m_pImportFilter; @@ -184,19 +184,20 @@ protected: private: void fillServerList(); void saveLastItem(); - KviServerOptionsListViewItem * findNetItem(const QString &netname); + KviServerOptionsTreeWidgetItem * findNetItem(const QString &netname); protected slots: void importerDead(); void importServer(const KviIrcServer & s,const QString &network); void importPopupAboutToShow(); - void listViewItemSelectionChanged(KviTalListViewItem *it); - void listViewRightButtonPressed(KviTalListViewItem *it,const QPoint &pnt,int col); + void currentItemChanged(KviTalTreeWidgetItem *cur,KviTalTreeWidgetItem *prev); + void customContextMenuRequested(const QPoint &pnt); void newNetwork(); void removeCurrent(); void newServer(); void copyServer(); void pasteServer(); void clearList(); + void itemDoubleClicked(KviTalTreeWidgetItem*, int ); void detailsClicked(); void connectCurrentClicked(); void recentServersPopupAboutToShow(); diff --git a/src/modules/options/optw_sound.cpp b/src/modules/options/optw_sound.cpp index 42dbe1e86..0a2ec002c 100644 --- a/src/modules/options/optw_sound.cpp +++ b/src/modules/options/optw_sound.cpp @@ -124,7 +124,7 @@ KviSoundGeneralOptionsWidget::KviSoundGeneralOptionsWidget(QWidget * parent) m_pWinampEncodingCombo = new QComboBox(h); - m_pWinampEncodingCombo->insertItem(__tr2qs_ctx("Use Language Encoding","options")); + m_pWinampEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options")); i = 0; iMatch = 0; @@ -229,7 +229,7 @@ void KviSoundGeneralOptionsWidget::mediaFillBox() for(i=0;i<cnt;i++) { - QString t = m_pMediaPlayerBox->text(i); + QString t = m_pMediaPlayerBox->itemText(i); if(KviQString::equalCI(t,KVI_OPTION_STRING(KviOption_stringPreferredMediaPlayer))) { m_pMediaPlayerBox->setCurrentIndex(i); diff --git a/src/modules/options/optw_taskbar.cpp b/src/modules/options/optw_taskbar.cpp index 46a31a6e9..2ebb42e57 100644 --- a/src/modules/options/optw_taskbar.cpp +++ b/src/modules/options/optw_taskbar.cpp @@ -171,7 +171,7 @@ void KviTreeTaskBarBackgroundOptionsWidget::commit() KviOptionsWidget::commit(); int iFlags=0; - switch(m_pHorizontalAlign->currentItem()) + switch(m_pHorizontalAlign->currentIndex()) { case 1: iFlags|=Qt::AlignLeft; @@ -183,7 +183,7 @@ void KviTreeTaskBarBackgroundOptionsWidget::commit() iFlags|=Qt::AlignHCenter; break; } - switch(m_pVerticalAlign->currentItem()) + switch(m_pVerticalAlign->currentIndex()) { case 1: iFlags|=Qt::AlignTop; diff --git a/src/modules/options/optw_urlhandlers.cpp b/src/modules/options/optw_urlhandlers.cpp index 12787c604..72e9d3cc2 100644 --- a/src/modules/options/optw_urlhandlers.cpp +++ b/src/modules/options/optw_urlhandlers.cpp @@ -85,37 +85,37 @@ void KviUrlHandlersOptionsWidget::commit() KviOptionsWidget::commit(); #ifdef COMPILE_ON_WINDOWS - KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("\\\\","@MAGIC@","options"); - KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("\\","\\\\","options"); - KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("@MAGIC@","\\\\","options"); + KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("\\\\","@MAGIC@"); + KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("\\","\\\\"); + KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("@MAGIC@","\\\\"); - KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("\\\\","@MAGIC@","options"); - KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("\\","\\\\","options"); - KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("@MAGIC@","\\\\","options"); + KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("\\\\","@MAGIC@"); + KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("\\","\\\\"); + KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("@MAGIC@","\\\\"); - KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("\\\\","@MAGIC@","options"); - KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("\\","\\\\","options"); - KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("@MAGIC@","\\\\","options"); + KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("\\\\","@MAGIC@"); + KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("\\","\\\\"); + KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("@MAGIC@","\\\\"); - KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("\\\\","@MAGIC@","options"); - KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("\\","\\\\","options"); - KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("@MAGIC@","\\\\","options"); + KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("\\\\","@MAGIC@"); + KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("\\","\\\\"); + KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("@MAGIC@","\\\\"); - KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("\\\\","@MAGIC@","options"); - KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("\\","\\\\","options"); - KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("@MAGIC@","\\\\","options"); + KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("\\\\","@MAGIC@"); + KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("\\","\\\\"); + KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("@MAGIC@","\\\\"); - KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("\\\\","@MAGIC@","options"); - KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("\\","\\\\","options"); - KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("@MAGIC@","\\\\","options"); + KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("\\\\","@MAGIC@"); + KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("\\","\\\\"); + KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("@MAGIC@","\\\\"); //Check for escaped " in url handler ( \" ) - KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("\\\\\"","\\\"","options"); - KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("\\\\\"","\\\"","options"); - KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("\\\\\"","\\\"","options"); - KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("\\\\\"","\\\"","options"); - KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("\\\\\"","\\\"","options"); - KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("\\\\\"","\\\"","options"); + KVI_OPTION_STRING(KviOption_stringUrlHttpCommand).replace("\\\\\"","\\\""); + KVI_OPTION_STRING(KviOption_stringUrlHttpsCommand).replace("\\\\\"","\\\""); + KVI_OPTION_STRING(KviOption_stringUrlFtpCommand).replace("\\\\\"","\\\""); + KVI_OPTION_STRING(KviOption_stringUrlMailtoCommand).replace("\\\\\"","\\\""); + KVI_OPTION_STRING(KviOption_stringUrlFileCommand).replace("\\\\\"","\\\""); + KVI_OPTION_STRING(KviOption_stringUrlUnknownCommand).replace("\\\\\"","\\\""); #endif } diff --git a/src/modules/options/optw_userlist.cpp b/src/modules/options/optw_userlist.cpp index 1eb77c4a8..0200fed84 100644 --- a/src/modules/options/optw_userlist.cpp +++ b/src/modules/options/optw_userlist.cpp @@ -88,12 +88,12 @@ KviUserListGridOptionsWidget::KviUserListGridOptionsWidget(QWidget * parent) QLabel * l = new QLabel(__tr2qs_ctx("Grid type:","options"),hb); l->setEnabled(KVI_OPTION_BOOL(KviOption_boolUserListViewDrawGrid)); connect(b,SIGNAL(toggled(bool)),l,SLOT(setEnabled(bool))); - m_pGridTypeCombo = new QComboBox(false,hb); - m_pGridTypeCombo->insertItem(__tr2qs_ctx("3D Grid","options")); - m_pGridTypeCombo->insertItem(__tr2qs_ctx("3D Buttons","options")); - m_pGridTypeCombo->insertItem(__tr2qs_ctx("Plain Grid","options")); - m_pGridTypeCombo->insertItem(__tr2qs_ctx("Dotted Grid","options")); - m_pGridTypeCombo->setCurrentItem(KVI_OPTION_UINT(KviOption_uintUserListViewGridType)); + m_pGridTypeCombo = new QComboBox(hb); + m_pGridTypeCombo->addItem(__tr2qs_ctx("3D Grid","options")); + m_pGridTypeCombo->addItem(__tr2qs_ctx("3D Buttons","options")); + m_pGridTypeCombo->addItem(__tr2qs_ctx("Plain Grid","options")); + m_pGridTypeCombo->addItem(__tr2qs_ctx("Dotted Grid","options")); + m_pGridTypeCombo->setCurrentIndex(KVI_OPTION_UINT(KviOption_uintUserListViewGridType)); m_pGridTypeCombo->setEnabled(KVI_OPTION_BOOL(KviOption_boolUserListViewDrawGrid)); connect(b,SIGNAL(toggled(bool)),m_pGridTypeCombo,SLOT(setEnabled(bool))); addRowSpacer(0,3,0,3); @@ -106,7 +106,7 @@ KviUserListGridOptionsWidget::~KviUserListGridOptionsWidget() void KviUserListGridOptionsWidget::commit() { KviOptionsWidget::commit(); - KVI_OPTION_UINT(KviOption_uintUserListViewGridType) = m_pGridTypeCombo->currentItem(); + KVI_OPTION_UINT(KviOption_uintUserListViewGridType) = m_pGridTypeCombo->currentIndex(); if(KVI_OPTION_UINT(KviOption_uintUserListViewGridType) > KVI_USERLISTVIEW_GRIDTYPE_MAXIMUM) KVI_OPTION_UINT(KviOption_uintUserListViewGridType) = KVI_USERLISTVIEW_GRIDTYPE_DEFAULT; @@ -134,44 +134,44 @@ KviUserListLookBackgroundOptionsWidget::KviUserListLookBackgroundOptionsWidget(Q m_pVerticalAlign=new QComboBox(this); addWidgetToLayout(m_pVerticalAlign,1,3,1,3); - m_pHorizontalAlign->insertItem(__tr2qs_ctx("Tile","options")); - m_pHorizontalAlign->insertItem(__tr2qs_ctx("Left","options")); - m_pHorizontalAlign->insertItem(__tr2qs_ctx("Right","options")); - m_pHorizontalAlign->insertItem(__tr2qs_ctx("Center","options")); + m_pHorizontalAlign->addItem(__tr2qs_ctx("Tile","options")); + m_pHorizontalAlign->addItem(__tr2qs_ctx("Left","options")); + m_pHorizontalAlign->addItem(__tr2qs_ctx("Right","options")); + m_pHorizontalAlign->addItem(__tr2qs_ctx("Center","options")); - m_pVerticalAlign->insertItem(__tr2qs_ctx("Tile","options")); - m_pVerticalAlign->insertItem(__tr2qs_ctx("Top","options")); - m_pVerticalAlign->insertItem(__tr2qs_ctx("Bottom","options")); - m_pVerticalAlign->insertItem(__tr2qs_ctx("Center","options")); + m_pVerticalAlign->addItem(__tr2qs_ctx("Tile","options")); + m_pVerticalAlign->addItem(__tr2qs_ctx("Top","options")); + m_pVerticalAlign->addItem(__tr2qs_ctx("Bottom","options")); + m_pVerticalAlign->addItem(__tr2qs_ctx("Center","options")); switch( KVI_OPTION_UINT(KviOption_uintUserListPixmapAlign) & Qt::AlignHorizontal_Mask) { case Qt::AlignLeft: - m_pHorizontalAlign->setCurrentItem(1); + m_pHorizontalAlign->setCurrentIndex(1); break; case Qt::AlignRight: - m_pHorizontalAlign->setCurrentItem(2); + m_pHorizontalAlign->setCurrentIndex(2); break; case Qt::AlignHCenter: - m_pHorizontalAlign->setCurrentItem(3); + m_pHorizontalAlign->setCurrentIndex(3); break; default: - m_pHorizontalAlign->setCurrentItem(0); + m_pHorizontalAlign->setCurrentIndex(0); } switch( KVI_OPTION_UINT(KviOption_uintUserListPixmapAlign) & Qt::AlignVertical_Mask) { case Qt::AlignTop: - m_pVerticalAlign->setCurrentItem(1); + m_pVerticalAlign->setCurrentIndex(1); break; case Qt::AlignBottom: - m_pVerticalAlign->setCurrentItem(2); + m_pVerticalAlign->setCurrentIndex(2); break; case Qt::AlignVCenter: - m_pVerticalAlign->setCurrentItem(3); + m_pVerticalAlign->setCurrentIndex(3); break; default: - m_pVerticalAlign->setCurrentItem(0); + m_pVerticalAlign->setCurrentIndex(0); } @@ -189,7 +189,7 @@ void KviUserListLookBackgroundOptionsWidget::commit() KviOptionsWidget::commit(); int iFlags=0; - switch(m_pHorizontalAlign->currentItem()) + switch(m_pHorizontalAlign->currentIndex()) { case 1: iFlags|=Qt::AlignLeft; @@ -201,7 +201,7 @@ void KviUserListLookBackgroundOptionsWidget::commit() iFlags|=Qt::AlignHCenter; break; } - switch(m_pVerticalAlign->currentItem()) + switch(m_pVerticalAlign->currentIndex()) { case 1: iFlags|=Qt::AlignTop; |
