improve semantics for columns references

pull/1/head
Michail Vourlakos 8 years ago
parent 94d9d817f7
commit 50636fcc0c

@ -45,6 +45,12 @@
namespace Latte { namespace Latte {
const int IDCOLUMN = 0;
const int COLORCOLUMN = 1;
const int NAMECOLUMN = 2;
const int MENUCOLUMN = 3;
const int ACTIVITYCOLUMN = 4;
LayoutConfigDialog::LayoutConfigDialog(QWidget *parent, LayoutManager *manager) LayoutConfigDialog::LayoutConfigDialog(QWidget *parent, LayoutManager *manager)
: QDialog(parent), : QDialog(parent),
ui(new Ui::LayoutConfigDialog), ui(new Ui::LayoutConfigDialog),
@ -92,9 +98,9 @@ LayoutConfigDialog::LayoutConfigDialog(QWidget *parent, LayoutManager *manager)
colors.append(color); colors.append(color);
} }
ui->layoutsView->setItemDelegateForColumn(1, new ColorCmbBoxDelegate(this, iconsPath, colors)); ui->layoutsView->setItemDelegateForColumn(COLORCOLUMN, new ColorCmbBoxDelegate(this, iconsPath, colors));
ui->layoutsView->setItemDelegateForColumn(3, new CheckBoxDelegate(this)); ui->layoutsView->setItemDelegateForColumn(MENUCOLUMN, new CheckBoxDelegate(this));
ui->layoutsView->setItemDelegateForColumn(4, new ActivityCmbBoxDelegate(this)); ui->layoutsView->setItemDelegateForColumn(ACTIVITYCOLUMN, new ActivityCmbBoxDelegate(this));
connect(m_model, &QStandardItemModel::itemChanged, this, &LayoutConfigDialog::itemChanged); connect(m_model, &QStandardItemModel::itemChanged, this, &LayoutConfigDialog::itemChanged);
connect(ui->layoutsView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &LayoutConfigDialog::currentRowChanged); connect(ui->layoutsView->selectionModel(), &QItemSelectionModel::currentRowChanged, this, &LayoutConfigDialog::currentRowChanged);
@ -145,10 +151,10 @@ void LayoutConfigDialog::on_copyButton_clicked()
QString tempDir = uniqueTempDirectory(); QString tempDir = uniqueTempDirectory();
QString id = m_model->data(m_model->index(row, 0), Qt::DisplayRole).toString(); QString id = m_model->data(m_model->index(row, IDCOLUMN), Qt::DisplayRole).toString();
QString color = m_model->data(m_model->index(row, 1), Qt::BackgroundRole).toString(); QString color = m_model->data(m_model->index(row, COLORCOLUMN), Qt::BackgroundRole).toString();
QString layoutName = m_model->data(m_model->index(row, 2), Qt::DisplayRole).toString(); QString layoutName = m_model->data(m_model->index(row, NAMECOLUMN), Qt::DisplayRole).toString();
bool menu = m_model->data(m_model->index(row, 3), Qt::CheckStateRole).toInt() == Qt::Checked ? true : false; bool menu = m_model->data(m_model->index(row, MENUCOLUMN), Qt::CheckStateRole).toInt() == Qt::Checked ? true : false;
QString copiedId = tempDir + "/" + layoutName + ".layout.latte"; QString copiedId = tempDir + "/" + layoutName + ".layout.latte";
QFile(id).copy(copiedId); QFile(id).copy(copiedId);
@ -171,7 +177,7 @@ void LayoutConfigDialog::on_removeButton_clicked()
return; return;
} }
QString layoutName = m_model->data(m_model->index(row, 2), Qt::DisplayRole).toString(); QString layoutName = m_model->data(m_model->index(row, NAMECOLUMN), Qt::DisplayRole).toString();
if (layoutName == m_manager->currentLayoutName()) { if (layoutName == m_manager->currentLayoutName()) {
return; return;
@ -318,7 +324,7 @@ void LayoutConfigDialog::on_exportButton_clicked()
return; return;
} }
QString layoutExported = m_model->data(m_model->index(row, 0), Qt::DisplayRole).toString(); QString layoutExported = m_model->data(m_model->index(row, IDCOLUMN), Qt::DisplayRole).toString();
qDebug() << Q_FUNC_INFO; qDebug() << Q_FUNC_INFO;
@ -506,14 +512,14 @@ void LayoutConfigDialog::loadLayouts()
recalculateAvailableActivities(); recalculateAvailableActivities();
m_model->setHorizontalHeaderItem(0, new QStandardItem(QString("#path"))); m_model->setHorizontalHeaderItem(IDCOLUMN, new QStandardItem(QString("#path")));
m_model->setHorizontalHeaderItem(1, new QStandardItem(QString(i18n("Color")))); m_model->setHorizontalHeaderItem(COLORCOLUMN, new QStandardItem(QString(i18n("Color"))));
m_model->setHorizontalHeaderItem(2, new QStandardItem(QString(i18n("Name")))); m_model->setHorizontalHeaderItem(NAMECOLUMN, new QStandardItem(QString(i18n("Name"))));
m_model->setHorizontalHeaderItem(3, new QStandardItem(QString(i18n("In Menu")))); m_model->setHorizontalHeaderItem(MENUCOLUMN, new QStandardItem(QString(i18n("In Menu"))));
m_model->setHorizontalHeaderItem(4, new QStandardItem(QString(i18n("Activities")))); m_model->setHorizontalHeaderItem(ACTIVITYCOLUMN, new QStandardItem(QString(i18n("Activities"))));
//! this line should be commented for debugging layouts window functionality //! this line should be commented for debugging layouts window functionality
ui->layoutsView->setColumnHidden(0, true); ui->layoutsView->setColumnHidden(IDCOLUMN, true);
} }
void LayoutConfigDialog::insertLayoutInfoAtRow(int row, QString path, QString color, QString name, bool menu, QStringList activities) void LayoutConfigDialog::insertLayoutInfoAtRow(int row, QString path, QString color, QString name, bool menu, QStringList activities)
@ -553,9 +559,9 @@ void LayoutConfigDialog::insertLayoutInfoAtRow(int row, QString path, QString co
qDebug() << "insert row at:" << row << " rows:" << m_model->rowCount(); qDebug() << "insert row at:" << row << " rows:" << m_model->rowCount();
} }
m_model->setData(m_model->index(row, 0), path, Qt::DisplayRole); m_model->setData(m_model->index(row, IDCOLUMN), path, Qt::DisplayRole);
m_model->setData(m_model->index(row, 1), color, Qt::BackgroundRole); m_model->setData(m_model->index(row, COLORCOLUMN), color, Qt::BackgroundRole);
QFont font; QFont font;
@ -571,16 +577,16 @@ void LayoutConfigDialog::insertLayoutInfoAtRow(int row, QString path, QString co
font.setItalic(false); font.setItalic(false);
} }
m_model->setData(m_model->index(row, 2), QVariant(name), Qt::DisplayRole); m_model->setData(m_model->index(row, NAMECOLUMN), QVariant(name), Qt::DisplayRole);
m_model->setData(m_model->index(row, 2), font, Qt::FontRole); m_model->setData(m_model->index(row, NAMECOLUMN), font, Qt::FontRole);
m_model->setData(m_model->index(row, 4), activities, Qt::UserRole); m_model->setData(m_model->index(row, ACTIVITYCOLUMN), activities, Qt::UserRole);
} }
void LayoutConfigDialog::on_switchButton_clicked() void LayoutConfigDialog::on_switchButton_clicked()
{ {
QVariant value = m_model->data(m_model->index(ui->layoutsView->currentIndex().row(), 2), Qt::DisplayRole); QVariant value = m_model->data(m_model->index(ui->layoutsView->currentIndex().row(), NAMECOLUMN), Qt::DisplayRole);
if (value.isValid()) { if (value.isValid()) {
m_manager->switchToLayout(value.toString()); m_manager->switchToLayout(value.toString());
@ -592,7 +598,7 @@ void LayoutConfigDialog::on_switchButton_clicked()
void LayoutConfigDialog::currentLayoutNameChanged() void LayoutConfigDialog::currentLayoutNameChanged()
{ {
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QModelIndex nameIndex = m_model->index(i, 2); QModelIndex nameIndex = m_model->index(i, NAMECOLUMN);
QVariant value = m_model->data(nameIndex); QVariant value = m_model->data(nameIndex);
if (value.isValid()) { if (value.isValid()) {
@ -615,7 +621,7 @@ void LayoutConfigDialog::itemChanged(QStandardItem *item)
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true); ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true);
if (item->column() == 4) { if (item->column() == ACTIVITYCOLUMN) {
//! recalculate the available activities //! recalculate the available activities
recalculateAvailableActivities(); recalculateAvailableActivities();
} }
@ -623,7 +629,7 @@ void LayoutConfigDialog::itemChanged(QStandardItem *item)
void LayoutConfigDialog::currentRowChanged(const QModelIndex &current, const QModelIndex &previous) void LayoutConfigDialog::currentRowChanged(const QModelIndex &current, const QModelIndex &previous)
{ {
QString id = m_model->data(m_model->index(current.row(), 0), Qt::DisplayRole).toString(); QString id = m_model->data(m_model->index(current.row(), IDCOLUMN), Qt::DisplayRole).toString();
if (m_layouts[id]->name() == m_manager->currentLayoutName()) { if (m_layouts[id]->name() == m_manager->currentLayoutName()) {
ui->removeButton->setEnabled(false); ui->removeButton->setEnabled(false);
@ -643,7 +649,7 @@ void LayoutConfigDialog::recalculateAvailableActivities()
QStringList tempActivities = m_manager->activities(); QStringList tempActivities = m_manager->activities();
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QStringList assigned = m_model->data(m_model->index(i, 4), Qt::UserRole).toStringList(); QStringList assigned = m_model->data(m_model->index(i, ACTIVITYCOLUMN), Qt::UserRole).toStringList();
foreach (auto activity, assigned) { foreach (auto activity, assigned) {
if (tempActivities.contains(activity)) { if (tempActivities.contains(activity)) {
@ -658,10 +664,10 @@ void LayoutConfigDialog::recalculateAvailableActivities()
bool LayoutConfigDialog::dataAreAccepted() bool LayoutConfigDialog::dataAreAccepted()
{ {
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QString layout1 = m_model->data(m_model->index(i, 2), Qt::DisplayRole).toString(); QString layout1 = m_model->data(m_model->index(i, NAMECOLUMN), Qt::DisplayRole).toString();
for (int j = i + 1; j < m_model->rowCount(); ++j) { for (int j = i + 1; j < m_model->rowCount(); ++j) {
QString temp = m_model->data(m_model->index(j, 2), Qt::DisplayRole).toString(); QString temp = m_model->data(m_model->index(j, NAMECOLUMN), Qt::DisplayRole).toString();
//!same layout name exists again //!same layout name exists again
if (layout1 == temp) { if (layout1 == temp) {
@ -673,10 +679,10 @@ bool LayoutConfigDialog::dataAreAccepted()
connect(msg, &QMessageBox::finished, this, [ &, i, j](int result) { connect(msg, &QMessageBox::finished, this, [ &, i, j](int result) {
QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::ClearAndSelect; QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::ClearAndSelect;
QModelIndex indexBase = m_model->index(i, 2); QModelIndex indexBase = m_model->index(i, NAMECOLUMN);
ui->layoutsView->selectionModel()->select(indexBase, flags); ui->layoutsView->selectionModel()->select(indexBase, flags);
QModelIndex indexOccurence = m_model->index(j, 2); QModelIndex indexOccurence = m_model->index(j, NAMECOLUMN);
ui->layoutsView->edit(indexOccurence); ui->layoutsView->edit(indexOccurence);
}); });
@ -710,11 +716,11 @@ bool LayoutConfigDialog::saveAllChanges()
QString switchToLayout; QString switchToLayout;
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QString id = m_model->data(m_model->index(i, 0), Qt::DisplayRole).toString(); QString id = m_model->data(m_model->index(i, IDCOLUMN), Qt::DisplayRole).toString();
QString color = m_model->data(m_model->index(i, 1), Qt::BackgroundRole).toString(); QString color = m_model->data(m_model->index(i, COLORCOLUMN), Qt::BackgroundRole).toString();
QString name = m_model->data(m_model->index(i, 2), Qt::DisplayRole).toString(); QString name = m_model->data(m_model->index(i, NAMECOLUMN), Qt::DisplayRole).toString();
bool menu = m_model->data(m_model->index(i, 3), Qt::CheckStateRole).toInt() == Qt::Checked ? true : false; bool menu = m_model->data(m_model->index(i, MENUCOLUMN), Qt::CheckStateRole).toInt() == Qt::Checked ? true : false;
QStringList lActivities = m_model->data(m_model->index(i, 4), Qt::UserRole).toStringList(); QStringList lActivities = m_model->data(m_model->index(i, ACTIVITYCOLUMN), Qt::UserRole).toStringList();
QStringList cleanedActivities; QStringList cleanedActivities;
@ -773,16 +779,16 @@ bool LayoutConfigDialog::saveAllChanges()
m_layouts[newFile] = nLayout; m_layouts[newFile] = nLayout;
for (int j = 0; j < m_model->rowCount(); ++j) { for (int j = 0; j < m_model->rowCount(); ++j) {
QString tId = m_model->data(m_model->index(j, 0), Qt::DisplayRole).toString(); QString tId = m_model->data(m_model->index(j, IDCOLUMN), Qt::DisplayRole).toString();
if (tId == fromRenamePaths[i]) { if (tId == fromRenamePaths[i]) {
m_model->setData(m_model->index(j, 0), newFile, Qt::DisplayRole); m_model->setData(m_model->index(j, IDCOLUMN), newFile, Qt::DisplayRole);
m_initLayoutPaths.append(newFile); m_initLayoutPaths.append(newFile);
QFont font = qvariant_cast<QFont>(m_model->data(m_model->index(j, 2), Qt::FontRole)); QFont font = qvariant_cast<QFont>(m_model->data(m_model->index(j, NAMECOLUMN), Qt::FontRole));
font.setItalic(false); font.setItalic(false);
m_model->setData(m_model->index(j, 2), font, Qt::FontRole); m_model->setData(m_model->index(j, NAMECOLUMN), font, Qt::FontRole);
} }
} }
} }
@ -806,7 +812,7 @@ bool LayoutConfigDialog::saveAllChanges()
bool LayoutConfigDialog::idExistsInModel(QString id) bool LayoutConfigDialog::idExistsInModel(QString id)
{ {
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QString rowId = m_model->data(m_model->index(i, 0), Qt::DisplayRole).toString(); QString rowId = m_model->data(m_model->index(i, IDCOLUMN), Qt::DisplayRole).toString();
if (rowId == id) { if (rowId == id) {
return true; return true;
@ -819,7 +825,7 @@ bool LayoutConfigDialog::idExistsInModel(QString id)
bool LayoutConfigDialog::nameExistsInModel(QString name) bool LayoutConfigDialog::nameExistsInModel(QString name)
{ {
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QString rowName = m_model->data(m_model->index(i, 2), Qt::DisplayRole).toString(); QString rowName = m_model->data(m_model->index(i, NAMECOLUMN), Qt::DisplayRole).toString();
if (rowName == name) { if (rowName == name) {
return true; return true;
@ -832,7 +838,7 @@ bool LayoutConfigDialog::nameExistsInModel(QString name)
int LayoutConfigDialog::ascendingRowFor(QString name) int LayoutConfigDialog::ascendingRowFor(QString name)
{ {
for (int i = 0; i < m_model->rowCount(); ++i) { for (int i = 0; i < m_model->rowCount(); ++i) {
QString rowName = m_model->data(m_model->index(i, 2), Qt::DisplayRole).toString(); QString rowName = m_model->data(m_model->index(i, NAMECOLUMN), Qt::DisplayRole).toString();
if (rowName.toUpper() > name.toUpper()) { if (rowName.toUpper() > name.toUpper()) {
return i; return i;

Loading…
Cancel
Save