diff --git a/containmentactions/switchwindow/CMakeLists.txt b/containmentactions/switchwindow/CMakeLists.txt --- a/containmentactions/switchwindow/CMakeLists.txt +++ b/containmentactions/switchwindow/CMakeLists.txt @@ -14,7 +14,7 @@ KF5::KIOCore KF5::I18n KF5::WindowSystem - legacytaskmanager) + taskmanager) install(TARGETS plasma_containmentactions_switchwindow DESTINATION ${KDE_INSTALL_PLUGINDIR}) install(FILES plasma-containmentactions-switchwindow.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) diff --git a/containmentactions/switchwindow/switch.h b/containmentactions/switchwindow/switch.h --- a/containmentactions/switchwindow/switch.h +++ b/containmentactions/switchwindow/switch.h @@ -24,9 +24,7 @@ #include // liblegacytaskmanager -#include #include -#include class QAction; class QTimer; @@ -68,8 +66,7 @@ }; QList m_actions; - LegacyTaskManager::GroupManager *m_groupManager; - LegacyTaskManager::TasksModel *m_tasksModel; + TaskManager::TasksModel *m_tasksModel; Ui::Config m_ui; MenuMode m_mode; QTimer *m_clearOrderTimer; diff --git a/containmentactions/switchwindow/switch.cpp b/containmentactions/switchwindow/switch.cpp --- a/containmentactions/switchwindow/switch.cpp +++ b/containmentactions/switchwindow/switch.cpp @@ -27,20 +27,18 @@ #include #include -#include - #include #include +#include "abstracttasksmodel.h" + SwitchWindow::SwitchWindow(QObject *parent, const QVariantList &args) : Plasma::ContainmentActions(parent, args), - m_groupManager(new LegacyTaskManager::GroupManager(this)), - m_tasksModel(new LegacyTaskManager::TasksModel(m_groupManager, this)), + m_tasksModel(new TaskManager::TasksModel(this)), m_mode(AllFlat), m_clearOrderTimer(0) { - m_groupManager->setGroupingStrategy(static_cast(0)); - m_groupManager->reconnect(); + m_tasksModel->setGroupMode(TaskManager::TasksModel::GroupDisabled); } SwitchWindow::~SwitchWindow() @@ -100,7 +98,7 @@ //make all the window actions for (int i = 0; i < m_tasksModel->rowCount(); ++i) { - if (m_tasksModel->data(m_tasksModel->index(i, 0), LegacyTaskManager::TasksModel::IsStartup).toBool()) { + if (m_tasksModel->data(m_tasksModel->index(i, 0), TaskManager::AbstractTasksModel::IsStartup).toBool()) { qDebug() << "skipped fake task"; continue; } @@ -111,10 +109,16 @@ continue; } + const QVariantList &idList = m_tasksModel->data(m_tasksModel->index(i, 0), TaskManager::AbstractTasksModel::LegacyWinIdList).toList(); + + if (!idList.count()) { + continue; + } + QAction *action = new QAction(name, this); action->setIcon(m_tasksModel->data(m_tasksModel->index(i, 0), Qt::DecorationRole).value()); - action->setData(m_tasksModel->data(m_tasksModel->index(i, 0), LegacyTaskManager::TasksModel::Id).toString()); - desktops.insert(m_tasksModel->data(m_tasksModel->index(i, 0), LegacyTaskManager::TasksModel::Desktop).toInt(), action); + action->setData(idList.at(0)); + desktops.insert(m_tasksModel->data(m_tasksModel->index(i, 0), TaskManager::AbstractTasksModel::VirtualDesktop).toInt(), action); connect(action, &QAction::triggered, [=]() { switchTo(action); }); @@ -183,14 +187,8 @@ void SwitchWindow::switchTo(QAction *action) { int id = action->data().toInt(); - qDebug() << id; - LegacyTaskManager::AbstractGroupableItem* item = m_groupManager->rootGroup()->getMemberById(id); - if (!item) { - return; - } - LegacyTaskManager::TaskItem* taskItem = static_cast(item); - taskItem->task()->activateRaiseOrIconify(); + KWindowSystem::forceActiveWindow(id); } void SwitchWindow::clearWindowsOrder()