viewsdialog:update duplicate to multiple selection

work/spdx
Michail Vourlakos
parent f273da26db
commit 3fa524f06c

@ -119,7 +119,7 @@ void Views::init()
m_duplicateAction = new QAction(QIcon::fromTheme("edit-copy"), i18n("Duplicate Here"), m_view);
m_duplicateAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D));
connect(m_duplicateAction, &QAction::triggered, this, &Views::duplicateSelectedView);
connect(m_duplicateAction, &QAction::triggered, this, &Views::duplicateSelectedViews);
m_view->addAction(m_cutAction);
m_view->addAction(m_copyAction);
@ -163,17 +163,6 @@ int Views::rowForId(QString id) const
return -1;
}
const Latte::Data::View Views::selectedViewCurrentData() const
{
int selectedRow = m_view->currentIndex().row();
if (selectedRow >= 0) {
QString selectedId = m_proxyModel->data(m_proxyModel->index(selectedRow, Model::Views::IDCOLUMN), Qt::UserRole).toString();
return m_model->currentData(selectedId);
} else {
return Latte::Data::View();
}
}
const Data::ViewsTable Views::selectedViewsCurrentData() const
{
Data::ViewsTable selectedviews;
@ -192,14 +181,6 @@ const Data::ViewsTable Views::selectedViewsCurrentData() const
return selectedviews;
}
const Latte::Data::View Views::selectedViewOriginalData() const
{
int selectedRow = m_view->currentIndex().row();
QString selectedId = m_proxyModel->data(m_proxyModel->index(selectedRow, Model::Layouts::IDCOLUMN), Qt::UserRole).toString();
return m_model->originalData(selectedId);
}
const Latte::Data::View Views::appendViewFromViewTemplate(const Data::View &view)
{
Data::View newview = view;
@ -208,7 +189,7 @@ const Latte::Data::View Views::appendViewFromViewTemplate(const Data::View &view
return newview;
}
void Views::duplicateSelectedView()
void Views::duplicateSelectedViews()
{
qDebug() << Q_FUNC_INFO;
@ -216,25 +197,29 @@ void Views::duplicateSelectedView()
return;
}
Latte::Data::View selectedview = selectedViewCurrentData();
if (selectedview.state() == Data::View::IsCreated) {
Latte::Data::Layout originallayout = m_handler->originalData();
Latte::Data::Layout currentlayout = m_handler->currentData();
Latte::CentralLayout *centralActive = m_handler->isSelectedLayoutOriginal() ? m_handler->corona()->layoutsManager()->synchronizer()->centralLayout(originallayout.name) : nullptr;
Latte::CentralLayout *central = centralActive ? centralActive : new Latte::CentralLayout(this, currentlayout.id);
QString storedviewpath = central->storedView(selectedview.id.toInt());
Latte::Data::View duplicatedview = selectedview;
duplicatedview.setState(Data::View::OriginFromViewTemplate, storedviewpath);
appendViewFromViewTemplate(duplicatedview);
} else if (selectedview.state() == Data::View::OriginFromViewTemplate) {
Latte::Data::View duplicatedview = selectedview;
appendViewFromViewTemplate(duplicatedview);
Data::ViewsTable selectedviews = selectedViewsCurrentData();
Latte::Data::Layout originallayout = m_handler->originalData();
Latte::Data::Layout currentlayout = m_handler->currentData();
Latte::CentralLayout *centralActive = m_handler->isSelectedLayoutOriginal() ? m_handler->corona()->layoutsManager()->synchronizer()->centralLayout(originallayout.name) : nullptr;
Latte::CentralLayout *central = centralActive ? centralActive : new Latte::CentralLayout(this, currentlayout.id);
for(int i=0; i<selectedviews.rowCount(); ++i) {
if (selectedviews[i].state() == Data::View::IsCreated) {
QString storedviewpath = central->storedView(selectedviews[i].id.toInt());
Latte::Data::View duplicatedview = selectedviews[i];
duplicatedview.setState(Data::View::OriginFromViewTemplate, storedviewpath);
duplicatedview.isActive = false;
appendViewFromViewTemplate(duplicatedview);
} else if (selectedviews[i].state() == Data::View::OriginFromViewTemplate) {
Latte::Data::View duplicatedview = selectedviews[i];
duplicatedview.isActive = false;
appendViewFromViewTemplate(duplicatedview);
}
}
}
void Views::removeSelected()
void Views::removeSelectedViews()
{
if (!hasSelectedView()) {
return;

@ -73,9 +73,6 @@ public:
void sortByColumn(int column, Qt::SortOrder order);
bool hasSelectedView() const;
const Latte::Data::View selectedViewCurrentData() const;
const Latte::Data::View selectedViewOriginalData() const;
const Data::ViewsTable selectedViewsCurrentData() const;
const Latte::Data::View appendViewFromViewTemplate(const Data::View &view);
@ -85,10 +82,10 @@ public:
//! actions
void reset();
void save();
void removeSelected();
public slots:
void duplicateSelectedView();
void duplicateSelectedViews();
void removeSelectedViews();
signals:
void dataChanged();

@ -97,7 +97,7 @@ void ViewsHandler::init()
m_duplicateViewAction->setIcon(QIcon::fromTheme("edit-copy"));
m_duplicateViewAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D));
connectActionWithButton(m_ui->duplicateBtn, m_duplicateViewAction);
connect(m_duplicateViewAction, &QAction::triggered, m_viewsController, &Controller::Views::duplicateSelectedView);
connect(m_duplicateViewAction, &QAction::triggered, m_viewsController, &Controller::Views::duplicateSelectedViews);
//! Remove Button
m_removeViewAction = new QAction(i18nc("remove layout", "Remove"), this);
@ -105,7 +105,7 @@ void ViewsHandler::init()
m_removeViewAction->setIcon(QIcon::fromTheme("delete"));
m_removeViewAction->setShortcut(QKeySequence(Qt::Key_Delete));
connectActionWithButton(m_ui->removeBtn, m_removeViewAction);
connect(m_removeViewAction, &QAction::triggered, this, &ViewsHandler::removeSelectedView);
connect(m_removeViewAction, &QAction::triggered, this, &ViewsHandler::removeSelectedViews);
//! signals
connect(this, &ViewsHandler::currentLayoutChanged, this, &ViewsHandler::reload);
@ -250,7 +250,7 @@ void ViewsHandler::newView(const Data::Generic &templateData)
}
}
void ViewsHandler::removeSelectedView()
void ViewsHandler::removeSelectedViews()
{
qDebug() << Q_FUNC_INFO;
@ -258,7 +258,7 @@ void ViewsHandler::removeSelectedView()
return;
}
m_viewsController->removeSelected();
m_viewsController->removeSelectedViews();
}
void ViewsHandler::onCurrentLayoutIndexChanged(int row)

@ -85,7 +85,7 @@ signals:
private slots:
void initViewTemplatesSubMenu();
void removeSelectedView();
void removeSelectedViews();
void updateWindowTitle();
void onCurrentLayoutIndexChanged(int row);

Loading…
Cancel
Save