1
0
mirror of https://github.com/KDE/latte-dock.git synced 2024-12-24 05:33:50 +03:00

update layout removing in settings window

This commit is contained in:
Michail Vourlakos 2020-03-14 16:37:48 +02:00
parent 60d24144b5
commit e29b5a3e38
4 changed files with 25 additions and 14 deletions

View File

@ -124,7 +124,7 @@ bool Layout::isShared() const
bool Layout::nameWasEdited() const bool Layout::nameWasEdited() const
{ {
return !m_editedName.isEmpty() && (m_editedName != m_originalName); return (!m_editedName.isEmpty() && (m_editedName != m_originalName)) || id.startsWith("/tmp");
} }
QString Layout::editedName() const QString Layout::editedName() const

View File

@ -116,20 +116,33 @@ void Layouts::appendLayout(const Settings::Data::Layout &layout)
void Layouts::removeLayout(const QString &id) void Layouts::removeLayout(const QString &id)
{ {
if (m_layoutsTable.contains(id)) { int index = m_layoutsTable.indexOf(id);
beginInsertRows(QModelIndex(), m_layoutsTable.rowCount(), m_layoutsTable.rowCount());
m_layoutsTable.removeLayout(id); if (index >= 0) {
beginRemoveRows(QModelIndex(), index, index);
m_layoutsTable.remove(index);
endInsertRows(); endInsertRows();
} }
} }
void Layouts::remove(const int &row) bool Layouts::removeRows(int row, int count, const QModelIndex &parent)
{ {
if (m_layoutsTable.rowExists(row)) { Q_UNUSED(parent)
beginInsertRows(QModelIndex(), m_layoutsTable.rowCount(), m_layoutsTable.rowCount());
m_layoutsTable.remove(row); int firstRow = row;
endInsertRows(); int lastRow = row+count-1;
if (count > 0 && m_layoutsTable.rowExists(firstRow) && (m_layoutsTable.rowExists(lastRow))) {
beginRemoveRows(QModelIndex(), firstRow, lastRow);
for(int i=0; i<count; ++i) {
m_layoutsTable.remove(firstRow);
}
endRemoveRows();
return true;
} }
return false;
} }
QVariant Layouts::headerData(int section, Qt::Orientation orientation, int role) const QVariant Layouts::headerData(int section, Qt::Orientation orientation, int role) const

View File

@ -84,12 +84,11 @@ public:
const Data::Layout &at(const int &row); const Data::Layout &at(const int &row);
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
void appendLayout(const Settings::Data::Layout &layout);
void clear(); void clear();
void appendLayout(const Settings::Data::Layout &layout);
void removeLayout(const QString &id); void removeLayout(const QString &id);
void remove(const int &row);
const Data::LayoutsTable &currentData(); const Data::LayoutsTable &currentData();
void setCurrentData(Data::LayoutsTable &data); void setCurrentData(Data::LayoutsTable &data);

View File

@ -1268,8 +1268,7 @@ void SettingsDialog::updatePerLayoutButtonsState()
} }
//! Remove Layout Button //! Remove Layout Button
if (originalName != nameInModel if ((originalName == m_corona->layoutsManager()->currentLayoutName())
|| (originalName == m_corona->layoutsManager()->currentLayoutName())
|| (m_corona->layoutsManager()->synchronizer()->centralLayout(originalName)) || (m_corona->layoutsManager()->synchronizer()->centralLayout(originalName))
|| lockedInModel) { || lockedInModel) {
ui->removeButton->setEnabled(false); ui->removeButton->setEnabled(false);