summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtHighlightEditor.cpp')
-rw-r--r--Swift/QtUI/QtHighlightEditor.cpp94
1 files changed, 66 insertions, 28 deletions
diff --git a/Swift/QtUI/QtHighlightEditor.cpp b/Swift/QtUI/QtHighlightEditor.cpp
index 5ac2857..e18ca94 100644
--- a/Swift/QtUI/QtHighlightEditor.cpp
+++ b/Swift/QtUI/QtHighlightEditor.cpp
@@ -12,7 +12,13 @@
#include <cassert>
+#include <boost/lexical_cast.hpp>
+
+#include <Swift/Controllers/HighlightManager.cpp>
#include <Swift/QtUI/QtHighlightEditor.h>
+#include <Swift/QtUI/QtSwiftUtil.h>
+
+#include <QTreeWidgetItem>
namespace Swift {
@@ -41,15 +47,16 @@ QtHighlightEditor::QtHighlightEditor(QtSettingsProvider* settings, QWidget* pare
//
//setHighlightManager(NULL); // setup buttons for empty rules list
//
- //connect(ui_.treeView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), SLOT(onCurrentRowChanged(QModelIndex)));
-//
- //connect(ui_.newButton, SIGNAL(clicked()), SLOT(onNewButtonClicked()));
- //connect(ui_.deleteButton, SIGNAL(clicked()), SLOT(onDeleteButtonClicked()));
-//
- //connect(ui_.moveUpButton, SIGNAL(clicked()), SLOT(onMoveUpButtonClicked()));
- //connect(ui_.moveDownButton, SIGNAL(clicked()), SLOT(onMoveDownButtonClicked()));
-//
- //connect(ui_.closeButton, SIGNAL(clicked()), SLOT(close()));
+ connect(ui_.listWidget, SIGNAL(currentRowChanged(int)), SLOT(onCurrentRowChanged(int)));
+
+ connect(ui_.newButton, SIGNAL(clicked()), SLOT(onNewButtonClicked()));
+ connect(ui_.deleteButton, SIGNAL(clicked()), SLOT(onDeleteButtonClicked()));
+ connect(ui_.moveUpButton, SIGNAL(clicked()), SLOT(onMoveUpButtonClicked()));
+ connect(ui_.moveDownButton, SIGNAL(clicked()), SLOT(onMoveDownButtonClicked()));
+
+ connect(ui_.buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), SLOT(onApplyButtonClick()));
+ connect(ui_.buttonBox->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), SLOT(onCancelButtonClick()));
+ connect(ui_.buttonBox->button(QDialogButtonBox::Ok), SIGNAL(clicked()), SLOT(onOkButtonClick()));
setWindowTitle(tr("Highlight Rules"));
}
@@ -67,8 +74,23 @@ void QtHighlightEditor::show()
QWidget::activateWindow();
}
+std::string formatNaturalDescription(const HighlightRule& rule)
+{
+ return "(null)";
+}
+
void QtHighlightEditor::setHighlightManager(HighlightManager* highlightManager)
{
+ highlightManager_ = highlightManager;
+
+ ui_.listWidget->clear();
+
+ foreach(const HighlightRule &rule, highlightManager_->getRules()) {
+ QListWidgetItem *item = new QListWidgetItem();
+ item->setText(P2QSTRING(formatNaturalDescription(rule)));
+ ui_.listWidget->addItem(item);
+ }
+
//itemModel_->setHighlightManager(highlightManager);
//ui_.newButton->setEnabled(highlightManager != NULL);
//
@@ -78,16 +100,13 @@ void QtHighlightEditor::setHighlightManager(HighlightManager* highlightManager)
//ui_.moveDownButton->setEnabled(false);
}
-void QtHighlightEditor::closeEvent(QCloseEvent* event) {
- //ui_.ruleWidget->save();
- //event->accept();
-}
-
void QtHighlightEditor::onNewButtonClicked()
{
- //int row = getSelectedRow() + 1;
- //itemModel_->insertRow(row, QModelIndex());
- //selectRow(row);
+ int row = getSelectedRow() + 1;
+ QListWidgetItem *item = new QListWidgetItem();
+ item->setText("New rule");
+ ui_.listWidget->insertItem(row, item);
+ selectRow(row);
}
void QtHighlightEditor::onDeleteButtonClicked()
@@ -125,31 +144,50 @@ void QtHighlightEditor::onMoveDownButtonClicked()
//}
}
-void QtHighlightEditor::onCurrentRowChanged(const QModelIndex& index)
+void QtHighlightEditor::onCurrentRowChanged(int currentRow)
{
//ui_.ruleWidget->save();
//ui_.ruleWidget->setActiveIndex(index);
//
//ui_.ruleWidget->setEnabled(index.isValid());
-//
- //ui_.deleteButton->setEnabled(index.isValid());
-//
- //ui_.moveUpButton->setEnabled(index.isValid() && index.row() != 0);
- //ui_.moveDownButton->setEnabled(index.isValid() && index.row() != itemModel_->rowCount(QModelIndex()) - 1);
+
+ ui_.deleteButton->setEnabled(currentRow != -1);
+
+ ui_.moveUpButton->setEnabled(currentRow != -1 && currentRow != 0);
+ ui_.moveDownButton->setEnabled(currentRow != -1 && currentRow != (ui_.listWidget->count()-1));
+}
+
+void QtHighlightEditor::onApplyButtonClick()
+{
+ close();
+}
+
+void QtHighlightEditor::onCancelButtonClick()
+{
+ close();
+}
+
+void QtHighlightEditor::onOkButtonClick()
+{
+ close();
}
void QtHighlightEditor::selectRow(int row)
{
- //QModelIndex index = itemModel_->index(row, 0, QModelIndex());
- //ui_.treeView->selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+ for (int i = 0; i < ui_.listWidget->count(); ++i) {
+ ui_.listWidget->item(i)->setSelected(i == row);
+ }
}
/** Return index of selected row or -1 if none is selected */
int QtHighlightEditor::getSelectedRow() const
{
- //QModelIndexList rows = ui_.treeView->selectionModel()->selectedRows();
- //return rows.isEmpty() ? -1 : rows[0].row();
- return 0;
+ for (int i = 0; i < ui_.listWidget->count(); ++i) {
+ if (ui_.listWidget->item(i)->isSelected()) {
+ return i;
+ }
+ }
+ return -1;
}
}