diff --git a/app/settings/settingsdialog/layoutscontroller.cpp b/app/settings/settingsdialog/layoutscontroller.cpp index 5a0f2b9db..f2ff3334d 100644 --- a/app/settings/settingsdialog/layoutscontroller.cpp +++ b/app/settings/settingsdialog/layoutscontroller.cpp @@ -230,9 +230,6 @@ void Layouts::initializeSelectedLayoutViews() m_model->setOriginalViewsForLayout(originalSelectedData); m_model->setLayoutProperties(selectedCurrentData); - qDebug() << "Views For Original Layout :: " << originalSelectedData.name; - selectedCurrentData.views.print(); - if (!islayoutactive) { central->deleteLater(); } diff --git a/app/settings/viewsdialog/viewscontroller.cpp b/app/settings/viewsdialog/viewscontroller.cpp index e96461f3b..bfe3bd485 100644 --- a/app/settings/viewsdialog/viewscontroller.cpp +++ b/app/settings/viewsdialog/viewscontroller.cpp @@ -55,6 +55,8 @@ Views::Views(Settings::Handler::ViewsHandler *parent) connect(m_model, &Model::Views::rowsInserted, this, &Views::dataChanged); connect(m_model, &Model::Views::rowsRemoved, this, &Views::dataChanged); + connect(m_handler, &Handler::ViewsHandler::currentLayoutChanged, this, &Views::onCurrentLayoutChanged); + init(); } @@ -123,6 +125,12 @@ void Views::selectRow(const QString &id) // m_view->selectRow(rowForId(id)); } +void Views::onCurrentLayoutChanged() +{ + Data::Layout layout = m_handler->currentData(); + m_model->setOriginalData(layout.views); +} + void Views::applyColumnWidths() { m_view->horizontalHeader()->setSectionResizeMode(Model::Views::NAMECOLUMN, QHeaderView::Stretch); diff --git a/app/settings/viewsdialog/viewscontroller.h b/app/settings/viewsdialog/viewscontroller.h index 59d50c801..22f6759a9 100644 --- a/app/settings/viewsdialog/viewscontroller.h +++ b/app/settings/viewsdialog/viewscontroller.h @@ -89,6 +89,8 @@ private slots: void storeColumnWidths(); void applyColumnWidths(); + void onCurrentLayoutChanged(); + private: Settings::Handler::ViewsHandler *m_handler{nullptr}; diff --git a/app/settings/viewsdialog/viewshandler.cpp b/app/settings/viewsdialog/viewshandler.cpp index d8535d534..0fb8df953 100644 --- a/app/settings/viewsdialog/viewshandler.cpp +++ b/app/settings/viewsdialog/viewshandler.cpp @@ -76,6 +76,8 @@ void ViewsHandler::init() reload(); + emit currentLayoutChanged(); + //! connect layout combobox after the selected layout has been loaded connect(m_ui->layoutsCmb, QOverload::of(&QComboBox::currentIndexChanged), this, &ViewsHandler::onCurrentLayoutIndexChanged); diff --git a/app/settings/viewsdialog/viewsmodel.cpp b/app/settings/viewsdialog/viewsmodel.cpp index d57defb56..bd6982102 100644 --- a/app/settings/viewsdialog/viewsmodel.cpp +++ b/app/settings/viewsdialog/viewsmodel.cpp @@ -20,6 +20,9 @@ #include "viewsmodel.h" +// local +#include + // KDE #include @@ -118,7 +121,7 @@ QVariant Views::headerData(int section, Qt::Orientation orientation, int role) c if (role == Qt::DisplayRole) { return QString(i18n("Screen")); } - /* } else if (role == Qt::DecorationRole) { + /* } else if (role == Qt::DecorationRole) { return QIcon::fromTheme("desktop"); }*/ break; @@ -126,7 +129,7 @@ QVariant Views::headerData(int section, Qt::Orientation orientation, int role) c if (role == Qt::DisplayRole) { return QString(i18nc("screen edge", "Edge")); } - /* } else if (role == Qt::DecorationRole) { + /* } else if (role == Qt::DecorationRole) { return QIcon::fromTheme("transform-move"); }*/ break; @@ -138,6 +141,10 @@ QVariant Views::headerData(int section, Qt::Orientation orientation, int role) c return QIcon::fromTheme("format-justify-center"); }*/ break; + case SUBCONTAINMENTSCOLUMN: + if (role == Qt::DisplayRole) { + return QString(i18n("Includes")); + } default: break; }; @@ -156,6 +163,72 @@ QVariant Views::data(const QModelIndex &index, int role) const return QVariant{}; } + if (role == IDROLE) { + return m_viewsTable[row].id; + } else if (role == ISACTIVEROLE) { + return m_viewsTable[row].isActive; + } + + if (role == Qt::TextAlignmentRole){ + return static_cast(Qt::AlignHCenter | Qt::AlignVCenter); + } + + switch (column) { + case IDCOLUMN: + if (role == Qt::DisplayRole || role == Qt::UserRole){ + return m_viewsTable[row].id; + } + break; + case NAMECOLUMN: + if (role == Qt::DisplayRole || role == Qt::UserRole){ + return m_viewsTable[row].name; + } + break; + case SCREENCOLUMN: + if (role == Qt::DisplayRole || role == Qt::UserRole){ + return (m_viewsTable[row].onPrimary ? QString("Primary") : QString::number(m_viewsTable[row].screen)); + } + break; + case EDGECOLUMN: + if (role == Qt::DisplayRole || role == Qt::UserRole){ + if (m_viewsTable[row].edge == Plasma::Types::BottomEdge) { + return QString("Bottom"); + } else if (m_viewsTable[row].edge == Plasma::Types::TopEdge) { + return QString("Top"); + } else if (m_viewsTable[row].edge == Plasma::Types::LeftEdge) { + return QString("Left"); + } else if (m_viewsTable[row].edge == Plasma::Types::RightEdge) { + return QString("Right"); + } + + return QString("Unknown"); + } + break; + case ALIGNMENTCOLUMN: + if (role == Qt::DisplayRole || role == Qt::UserRole){ + if (m_viewsTable[row].alignment == Latte::Types::Center) { + return QString("Center"); + } else if (m_viewsTable[row].alignment == Latte::Types::Left) { + return QString("Left"); + } else if (m_viewsTable[row].alignment == Latte::Types::Right) { + return QString("Right"); + } else if (m_viewsTable[row].alignment == Latte::Types::Top) { + return QString("Top"); + } else if (m_viewsTable[row].alignment == Latte::Types::Bottom) { + return QString("Bottom"); + } else if (m_viewsTable[row].alignment == Latte::Types::Justify) { + return QString("Justify"); + } + + return QString("Unknown"); + } + break; + case SUBCONTAINMENTSCOLUMN: + if (role == Qt::DisplayRole || role == Qt::UserRole){ + return m_viewsTable[row].subcontainments.rowCount()>0 ? QString("{" + m_viewsTable[row].subcontainments + "}") : QString(); + } + }; + return QVariant{}; } diff --git a/app/settings/viewsdialog/viewsmodel.h b/app/settings/viewsdialog/viewsmodel.h index 707b67d0c..945034a93 100644 --- a/app/settings/viewsdialog/viewsmodel.h +++ b/app/settings/viewsdialog/viewsmodel.h @@ -46,6 +46,7 @@ public: SCREENCOLUMN, EDGECOLUMN, ALIGNMENTCOLUMN, + SUBCONTAINMENTSCOLUMN, LASTCOLUMN };