screensdialog:update remove button enablement

pull/22/head
Michail Vourlakos 4 years ago
parent e7dba6be58
commit ceec503cec

@ -40,7 +40,7 @@ void ScreensHandler::init()
m_ui->screensTable->verticalHeader()->setVisible(false);
//! Data Changed
connect(m_screensModel, &Settings::Model::Screens::screensDataChanged, this, &ScreensHandler::dataChanged);
connect(m_screensModel, &Settings::Model::Screens::screenDataChanged, this, &ScreensHandler::dataChanged);
//! Screens Proxy Model
m_screensProxyModel = new QSortFilterProxyModel(this);
@ -61,6 +61,11 @@ void ScreensHandler::init()
//! load data
m_screensModel->setData(m_dialog->layoutsController()->screensData());
//! signals
connect(m_screensModel, &Settings::Model::Screens::screenDataChanged, this, &ScreensHandler::onScreenDataChanged);
onScreenDataChanged();
}
bool ScreensHandler::hasChangedData() const
@ -90,6 +95,12 @@ void ScreensHandler::resetDefaults()
reset();
}
void ScreensHandler::onScreenDataChanged()
{
m_dialog->removeNowButton()->setEnabled(m_screensModel->hasSelected());
}
void ScreensHandler::save()
{
//do nothing

@ -55,6 +55,9 @@ private:
void init();
void initDefaults();
private:
void onScreenDataChanged();
private:
Dialog::ScreensDialog *m_dialog{nullptr};
Ui::ScreensDialog *m_ui{nullptr};

@ -31,6 +31,17 @@ bool Screens::hasChangedData() const
return c_screens != o_screens;
}
bool Screens::hasSelected() const
{
for(int i=0; i<c_screens.rowCount(); ++i) {
if (c_screens[i].isSelected) {
return true;
}
}
return false;
}
int Screens::rowCount() const
{
return c_screens.rowCount();
@ -80,7 +91,7 @@ void Screens::clear()
c_screens.clear();
endRemoveRows();
emit screensDataChanged();
emit screenDataChanged();
}
}
@ -94,7 +105,7 @@ void Screens::deselectAll()
}
emit dataChanged(index(0, SCREENCOLUMN), index(c_screens.rowCount()-1, SCREENCOLUMN), roles);
emit screensDataChanged();
emit screenDataChanged();
}
void Screens::reset()
@ -105,7 +116,7 @@ void Screens::reset()
roles << Qt::CheckStateRole;
emit dataChanged(index(0, SCREENCOLUMN), index(c_screens.rowCount()-1, SCREENCOLUMN), roles);
emit screensDataChanged();
emit screenDataChanged();
}
QString Screens::sortableId(const QString &id) const
@ -154,7 +165,7 @@ void Screens::setData(const Latte::Data::ScreensTable &screens)
o_screens = c_screens;
endInsertRows();
emit screensDataChanged();
emit screenDataChanged();
}
}
@ -176,7 +187,7 @@ void Screens::setSelected(const Latte::Data::ScreensTable &screens)
}
if (changed) {
emit screensDataChanged();
emit screenDataChanged();
}
}
@ -248,7 +259,7 @@ bool Screens::setData(const QModelIndex &index, const QVariant &value, int role)
case SCREENCOLUMN:
if (role == Qt::CheckStateRole) {
c_screens[row].isSelected = (value.toInt() > 0 ? true : false);
emit screensDataChanged();
emit screenDataChanged();
return true;
}
break;

@ -51,6 +51,7 @@ public:
~Screens();
bool hasChangedData() const;
bool hasSelected() const;
bool inDefaultValues() const;
int rowCount() const;
@ -73,7 +74,7 @@ public:
void reset();
signals:
void screensDataChanged();
void screenDataChanged();
private:
void initDefaults();

Loading…
Cancel
Save