Initial CTCP ignore functionality
[quassel.git] / src / qtui / settingspages / ignorelistsettingspage.cpp
index 61f0864..a49b46e 100644 (file)
@@ -31,7 +31,7 @@
 #include "iconloader.h"
 
 IgnoreListSettingsPage::IgnoreListSettingsPage(QWidget *parent)
-  : SettingsPage(tr("Misc"), tr("Ignorelist"), parent)
+  : SettingsPage(tr("IRC"), tr("Ignore List"), parent)
 {
   ui.setupUi(this);
   _delegate = new IgnoreListDelegate(ui.ignoreListView);
@@ -108,7 +108,11 @@ void IgnoreListSettingsPage::deleteSelectedIgnoreRule() {
 
 void IgnoreListSettingsPage::newIgnoreRule(QString rule) {
   IgnoreListManager::IgnoreListItem newItem = IgnoreListManager::IgnoreListItem();
+  newItem.strictness = IgnoreListManager::SoftStrictness;
+  newItem.scope = IgnoreListManager::GlobalScope;
+  newItem.isRegEx = false;
   newItem.isActive = true;
+
   bool enableOkButton = false;
   if(!rule.isEmpty()) {
     // we're called from contextmenu
@@ -118,7 +122,6 @@ void IgnoreListSettingsPage::newIgnoreRule(QString rule) {
 
   IgnoreListEditDlg *dlg = new IgnoreListEditDlg(newItem, this, enableOkButton);
   dlg->enableOkButton(enableOkButton);
-
   while(dlg->exec() == QDialog::Accepted) {
     if(!_ignoreListModel.newIgnoreRule(dlg->ignoreListItem())) {
       if(QMessageBox::warning(this,
@@ -204,11 +207,14 @@ IgnoreListEditDlg::IgnoreListEditDlg(const IgnoreListManager::IgnoreListItem &it
   ui.setupUi(this);
   setAttribute(Qt::WA_DeleteOnClose, false);
   setModal(true);
+  // FIXME patch out the bugger completely if it's good without it
+  ui.isActiveCheckBox->hide();
 
   // setup buttongroups
   // this could be moved to .ui file with qt4.5
   _typeButtonGroup.addButton(ui.senderTypeButton, 0);
   _typeButtonGroup.addButton(ui.messageTypeButton, 1);
+  _typeButtonGroup.addButton(ui.ctcpTypeButton, 2);
   _strictnessButtonGroup.addButton(ui.dynamicStrictnessButton, 0);
   _strictnessButtonGroup.addButton(ui.permanentStrictnessButton, 1);
   _scopeButtonGroup.addButton(ui.globalScopeButton, 0);
@@ -221,6 +227,8 @@ IgnoreListEditDlg::IgnoreListEditDlg(const IgnoreListManager::IgnoreListItem &it
 
   if(item.type == IgnoreListManager::MessageIgnore)
     ui.messageTypeButton->setChecked(true);
+  else if(item.type == IgnoreListManager::CtcpIgnore)
+    ui.ctcpTypeButton->setChecked(true);
   else
     ui.senderTypeButton->setChecked(true);
 
@@ -260,11 +268,14 @@ IgnoreListEditDlg::IgnoreListEditDlg(const IgnoreListManager::IgnoreListItem &it
   connect(ui.isActiveCheckBox, SIGNAL(stateChanged(int)), this, SLOT(widgetHasChanged()));
 
   connect(ui.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(aboutToAccept()));
+  widgetHasChanged();
 }
 
 void IgnoreListEditDlg::widgetHasChanged() {
   if(ui.messageTypeButton->isChecked())
     _clonedIgnoreListItem.type = IgnoreListManager::MessageIgnore;
+  else if(ui.ctcpTypeButton->isChecked())
+    _clonedIgnoreListItem.type = IgnoreListManager::CtcpIgnore;
   else
     _clonedIgnoreListItem.type = IgnoreListManager::SenderIgnore;