summaryrefslogtreecommitdiff
path: root/src/categoriesdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/categoriesdialog.cpp')
-rw-r--r--src/categoriesdialog.cpp120
1 files changed, 62 insertions, 58 deletions
diff --git a/src/categoriesdialog.cpp b/src/categoriesdialog.cpp
index 7d195ce6..99a931ef 100644
--- a/src/categoriesdialog.cpp
+++ b/src/categoriesdialog.cpp
@@ -18,45 +18,46 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
#include "categoriesdialog.h"
-#include "ui_categoriesdialog.h"
#include "categories.h"
-#include "utility.h"
#include "settings.h"
+#include "ui_categoriesdialog.h"
+#include "utility.h"
#include <QItemDelegate>
-#include <QRegularExpressionValidator>
#include <QLineEdit>
#include <QMenu>
+#include <QRegularExpressionValidator>
-
-class NewIDValidator : public QIntValidator {
+class NewIDValidator : public QIntValidator
+{
public:
- NewIDValidator(const std::set<int> &ids)
- : m_UsedIDs(ids) {}
- virtual State validate(QString &input, int &pos) const {
+ NewIDValidator(const std::set<int>& ids) : m_UsedIDs(ids) {}
+ virtual State validate(QString& input, int& pos) const
+ {
State intRes = QIntValidator::validate(input, pos);
if (intRes == Acceptable) {
bool ok = false;
- int id = input.toInt(&ok);
+ int id = input.toInt(&ok);
if (m_UsedIDs.find(id) != m_UsedIDs.end()) {
return QValidator::Intermediate;
}
}
return intRes;
}
+
private:
- const std::set<int> &m_UsedIDs;
+ const std::set<int>& m_UsedIDs;
};
-
-class ExistingIDValidator : public QIntValidator {
+class ExistingIDValidator : public QIntValidator
+{
public:
- ExistingIDValidator(const std::set<int> &ids)
- : m_UsedIDs(ids) {}
- virtual State validate(QString &input, int &pos) const {
+ ExistingIDValidator(const std::set<int>& ids) : m_UsedIDs(ids) {}
+ virtual State validate(QString& input, int& pos) const
+ {
State intRes = QIntValidator::validate(input, pos);
if (intRes == Acceptable) {
bool ok = false;
- int id = input.toInt(&ok);
+ int id = input.toInt(&ok);
if ((id == 0) || (m_UsedIDs.find(id) != m_UsedIDs.end())) {
return QValidator::Acceptable;
} else {
@@ -66,43 +67,48 @@ public:
return intRes;
}
}
+
private:
- const std::set<int> &m_UsedIDs;
+ const std::set<int>& m_UsedIDs;
};
-
-class ValidatingDelegate : public QItemDelegate {
+class ValidatingDelegate : public QItemDelegate
+{
public:
- ValidatingDelegate(QObject *parent, QValidator *validator)
- : QItemDelegate(parent), m_Validator(validator) {}
+ ValidatingDelegate(QObject* parent, QValidator* validator)
+ : QItemDelegate(parent), m_Validator(validator)
+ {}
- QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem&, const QModelIndex&) const
+ QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem&,
+ const QModelIndex&) const
{
- QLineEdit *edit = new QLineEdit(parent);
+ QLineEdit* edit = new QLineEdit(parent);
edit->setValidator(m_Validator);
return edit;
}
- virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
+ virtual void setModelData(QWidget* editor, QAbstractItemModel* model,
+ const QModelIndex& index) const
{
- QLineEdit *edit = qobject_cast<QLineEdit*>(editor);
- int pos = 0;
+ QLineEdit* edit = qobject_cast<QLineEdit*>(editor);
+ int pos = 0;
QString editText = edit->text();
if (m_Validator->validate(editText, pos) == QValidator::Acceptable) {
QItemDelegate::setModelData(editor, model, index);
}
}
+
private:
- QValidator *m_Validator;
+ QValidator* m_Validator;
};
-
-CategoriesDialog::CategoriesDialog(QWidget *parent)
- : TutorableDialog("Categories", parent), ui(new Ui::CategoriesDialog)
+CategoriesDialog::CategoriesDialog(QWidget* parent)
+ : TutorableDialog("Categories", parent), ui(new Ui::CategoriesDialog)
{
ui->setupUi(this);
fillTable();
- connect(ui->categoriesTable, SIGNAL(cellChanged(int,int)), this, SLOT(cellChanged(int,int)));
+ connect(ui->categoriesTable, SIGNAL(cellChanged(int, int)), this,
+ SLOT(cellChanged(int, int)));
}
CategoriesDialog::~CategoriesDialog()
@@ -116,7 +122,6 @@ int CategoriesDialog::exec()
return QDialog::exec();
}
-
void CategoriesDialog::cellChanged(int row, int)
{
int currentID = ui->categoriesTable->item(row, 0)->text().toInt();
@@ -125,14 +130,13 @@ void CategoriesDialog::cellChanged(int row, int)
}
}
-
void CategoriesDialog::commitChanges()
{
- CategoryFactory &categories = CategoryFactory::instance();
+ CategoryFactory& categories = CategoryFactory::instance();
categories.reset();
for (int i = 0; i < ui->categoriesTable->rowCount(); ++i) {
- int index = ui->categoriesTable->verticalHeader()->logicalIndex(i);
+ int index = ui->categoriesTable->verticalHeader()->logicalIndex(i);
QString nexusIDString = ui->categoriesTable->item(index, 2)->text();
QStringList nexusIDStringList = nexusIDString.split(',', Qt::SkipEmptyParts);
std::vector<int> nexusIDs;
@@ -141,18 +145,15 @@ void CategoriesDialog::commitChanges()
nexusIDs.push_back(iter->toInt());
}
- categories.addCategory(
- ui->categoriesTable->item(index, 0)->text().toInt(),
- ui->categoriesTable->item(index, 1)->text(),
- nexusIDs,
- ui->categoriesTable->item(index, 3)->text().toInt());
+ categories.addCategory(ui->categoriesTable->item(index, 0)->text().toInt(),
+ ui->categoriesTable->item(index, 1)->text(), nexusIDs,
+ ui->categoriesTable->item(index, 3)->text().toInt());
}
categories.setParents();
categories.saveCategories();
}
-
void CategoriesDialog::refreshIDs()
{
m_HighestID = 0;
@@ -165,13 +166,12 @@ void CategoriesDialog::refreshIDs()
}
}
-
void CategoriesDialog::fillTable()
{
- CategoryFactory &categories = CategoryFactory::instance();
- QTableWidget *table = ui->categoriesTable;
+ CategoryFactory& categories = CategoryFactory::instance();
+ QTableWidget* table = ui->categoriesTable;
-#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
table->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch);
table->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Fixed);
@@ -187,27 +187,33 @@ void CategoriesDialog::fillTable()
table->verticalHeader()->setResizeMode(QHeaderView::Fixed);
#endif
-
- table->setItemDelegateForColumn(0, new ValidatingDelegate(this, new NewIDValidator(m_IDs)));
- table->setItemDelegateForColumn(2, new ValidatingDelegate(this, new QRegularExpressionValidator(QRegularExpression("([0-9]+)?(,[0-9]+)*"), this)));
- table->setItemDelegateForColumn(3, new ValidatingDelegate(this, new ExistingIDValidator(m_IDs)));
+ table->setItemDelegateForColumn(
+ 0, new ValidatingDelegate(this, new NewIDValidator(m_IDs)));
+ table->setItemDelegateForColumn(
+ 2, new ValidatingDelegate(this,
+ new QRegularExpressionValidator(
+ QRegularExpression("([0-9]+)?(,[0-9]+)*"), this)));
+ table->setItemDelegateForColumn(
+ 3, new ValidatingDelegate(this, new ExistingIDValidator(m_IDs)));
int row = 0;
- for (std::vector<CategoryFactory::Category>::const_iterator iter = categories.m_Categories.begin();
+ for (std::vector<CategoryFactory::Category>::const_iterator iter =
+ categories.m_Categories.begin();
iter != categories.m_Categories.end(); ++iter, ++row) {
- const CategoryFactory::Category &category = *iter;
+ const CategoryFactory::Category& category = *iter;
if (category.m_ID == 0) {
--row;
continue;
}
table->insertRow(row);
-// table->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
+ // table->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
QScopedPointer<QTableWidgetItem> idItem(new QTableWidgetItem());
idItem->setData(Qt::DisplayRole, category.m_ID);
QScopedPointer<QTableWidgetItem> nameItem(new QTableWidgetItem(category.m_Name));
- QScopedPointer<QTableWidgetItem> nexusIDItem(new QTableWidgetItem(MOBase::VectorJoin(category.m_NexusIDs, ",")));
+ QScopedPointer<QTableWidgetItem> nexusIDItem(
+ new QTableWidgetItem(MOBase::VectorJoin(category.m_NexusIDs, ",")));
QScopedPointer<QTableWidgetItem> parentIDItem(new QTableWidgetItem());
parentIDItem->setData(Qt::DisplayRole, category.m_ParentID);
@@ -220,26 +226,24 @@ void CategoriesDialog::fillTable()
refreshIDs();
}
-
void CategoriesDialog::addCategory_clicked()
{
int row = m_ContextRow >= 0 ? m_ContextRow : 0;
ui->categoriesTable->insertRow(row);
ui->categoriesTable->setVerticalHeaderItem(row, new QTableWidgetItem(" "));
- ui->categoriesTable->setItem(row, 0, new QTableWidgetItem(QString::number(++m_HighestID)));
+ ui->categoriesTable->setItem(row, 0,
+ new QTableWidgetItem(QString::number(++m_HighestID)));
ui->categoriesTable->setItem(row, 1, new QTableWidgetItem("new"));
ui->categoriesTable->setItem(row, 2, new QTableWidgetItem(""));
ui->categoriesTable->setItem(row, 3, new QTableWidgetItem("0"));
}
-
void CategoriesDialog::removeCategory_clicked()
{
ui->categoriesTable->removeRow(m_ContextRow);
}
-
-void CategoriesDialog::on_categoriesTable_customContextMenuRequested(const QPoint &pos)
+void CategoriesDialog::on_categoriesTable_customContextMenuRequested(const QPoint& pos)
{
m_ContextRow = ui->categoriesTable->rowAt(pos.y());
QMenu menu;