diff options
Diffstat (limited to 'Swift/QtUI/QtHighlightEditor.cpp')
-rw-r--r-- | Swift/QtUI/QtHighlightEditor.cpp | 67 |
1 files changed, 66 insertions, 1 deletions
diff --git a/Swift/QtUI/QtHighlightEditor.cpp b/Swift/QtUI/QtHighlightEditor.cpp index f4ec78f..bc07158 100644 --- a/Swift/QtUI/QtHighlightEditor.cpp +++ b/Swift/QtUI/QtHighlightEditor.cpp @@ -14,9 +14,11 @@ #include <boost/lexical_cast.hpp> +#include <Swift/QtUI/UserSearch/QtSuggestingJIDInput.h> #include <Swift/Controllers/HighlightManager.cpp> #include <Swift/QtUI/QtHighlightEditor.h> #include <Swift/QtUI/QtSwiftUtil.h> +#include <Swift/QtUI/QtSettingsProvider.h> #include <QTreeWidgetItem> @@ -58,6 +60,9 @@ QtHighlightEditor::QtHighlightEditor(QtSettingsProvider* settings, QWidget* pare connect(ui_.buttonBox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), SLOT(onCancelButtonClick())); connect(ui_.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), SLOT(onOkButtonClick())); + ui_.lineEdit->setVisible(false); + ui_.horizontalLayout_2->addWidget(new QtSuggestingJIDInput(this, settings)); + setWindowTitle(tr("Highlight Rules")); } @@ -145,7 +150,6 @@ void QtHighlightEditor::onCurrentRowChanged(int currentRow) //ui_.ruleWidget->setEnabled(index.isValid()); ui_.deleteButton->setEnabled(currentRow != -1); - ui_.moveUpButton->setEnabled(currentRow != -1 && currentRow != 0); ui_.moveDownButton->setEnabled(currentRow != -1 && currentRow != (ui_.listWidget->count()-1)); } @@ -184,4 +188,65 @@ int QtHighlightEditor::getSelectedRow() const return -1; } +HighlightRule QtHighlightEditor::ruleFromDialog() +{ + HighlightRule rule; + + return rule; +} + +void QtHighlightEditor::ruleToDialog(const HighlightRule& rule) +{ + ui_.checkBox->setChecked(rule.getMatchChat()); + ui_.checkBox_2->setChecked(rule.getMatchMUC()); + + std::vector<std::string> senders = rule.getSenders(); + if (senders.empty()) { + ui_.checkBox_3->setChecked(false); + ui_.lineEdit->setEnabled(false); + ui_.lineEdit->setText(""); + } else { + ui_.checkBox_3->setChecked(true); + ui_.lineEdit->setEnabled(true); + ui_.lineEdit->setText(P2QSTRING(senders[0])); + } + + std::vector<std::string> keywords = rule.getKeywords(); + if (keywords.empty()) { + ui_.checkBox_4->setChecked(false); + ui_.lineEdit_2->setEnabled(false); + ui_.lineEdit_2->setText(""); + } else { + ui_.checkBox_4->setChecked(true); + ui_.lineEdit_2->setEnabled(true); + ui_.lineEdit_2->setText(P2QSTRING(keywords[0])); + } + + ui_.nickIsKeyword->setChecked(rule.getNickIsKeyword()); + ui_.matchWholeWords_2->setChecked(rule.getMatchWholeWords()); + ui_.matchCase_2->setChecked(rule.getMatchCase()); + + const HighlightAction &action = rule.getAction(); + + if (action.highlightText()) { + if (action.getTextColor().empty() && action.getTextBackground().empty()) { + ui_.radioButton_2->setChecked(true); + } else { + ui_.radioButton_7->setChecked(true); + } + } else { + ui_.radioButton->setChecked(true); + } + + if (action.playSound()) { + if (action.getSoundFile().empty()) { + ui_.radioButton_5->setChecked(true); + } else { + ui_.radioButton_6->setChecked(true); + } + } else { + ui_.radioButton_4->setChecked(true); + } +} + } |