Engines
tasksource.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "tasksource.h"
00020
00021
00022 #include "tasksengine.h"
00023 #include "taskservice.h"
00024
00025 TaskSource::TaskSource(StartupPtr startup, QObject *parent) :
00026 Plasma::DataContainer(parent),
00027 m_startup(startup),
00028 m_task(),
00029 m_isTask(false)
00030 {
00031 setObjectName(TasksEngine::getStartupName(m_startup));
00032 setData("startup", true);
00033 setData("task", false);
00034 updateStartup(TaskManager::TaskUnchanged);
00035 }
00036
00037 TaskSource::TaskSource(TaskPtr task, QObject *parent) :
00038 Plasma::DataContainer(parent),
00039 m_startup(),
00040 m_task(task),
00041 m_isTask(true)
00042 {
00043 setObjectName(TasksEngine::getTaskName(m_task));
00044 setData("startup", false);
00045 setData("task", true);
00046 updateTask(TaskManager::EverythingChanged);
00047 }
00048
00049 TaskSource::~TaskSource()
00050 {
00051 }
00052
00053 Plasma::Service *TaskSource::createService()
00054 {
00055 return new TaskService(this);
00056 }
00057
00058 TaskPtr TaskSource::getTask()
00059 {
00060 return m_task;
00061 }
00062
00063 bool TaskSource::isTask()
00064 {
00065 return m_isTask;
00066 }
00067
00068 void TaskSource::updateStartup(::TaskManager::TaskChanges startupChanges)
00069 {
00070 switch (startupChanges) {
00071 case TaskManager::TaskUnchanged:
00072 setData("text", m_startup->text());
00073 setData("bin", m_startup->bin());
00074 setData("icon", m_startup->icon());
00075 }
00076 checkForUpdate();
00077 }
00078
00079 void TaskSource::updateTask(::TaskManager::TaskChanges taskChanges)
00080 {
00081
00082 switch (taskChanges) {
00083 case TaskManager::EverythingChanged:
00084 setData("name", m_task->name());
00085 setData("visibleName", m_task->visibleName());
00086 setData("visibleNameWithState", m_task->visibleNameWithState());
00087 setData("maximized", m_task->isMaximized());
00088 setData("minimized", m_task->isMinimized());
00089 setData("shaded", m_task->isShaded());
00090 setData("fullScreen", m_task->isFullScreen());
00091 setData("alwaysOnTop", m_task->isAlwaysOnTop());
00092 setData("keptBelowOthers", m_task->isKeptBelowOthers());
00093 setData("active", m_task->isActive());
00094 setData("onTop", m_task->isOnTop());
00095 setData("onCurrentDesktop", m_task->isOnCurrentDesktop());
00096 setData("onAllDesktops", m_task->isOnAllDesktops());
00097 setData("desktop", m_task->desktop());
00098 break;
00099 case TaskManager::NameChanged:
00100 setData("name", m_task->name());
00101 setData("visibleName", m_task->visibleName());
00102 setData("visibleNameWithState", m_task->visibleNameWithState());
00103 break;
00104 case TaskManager::StateChanged:
00105 setData("maximized", m_task->isMaximized());
00106 setData("minimized", m_task->isMinimized());
00107 setData("shaded", m_task->isShaded());
00108 setData("fullScreen", m_task->isFullScreen());
00109 setData("alwaysOnTop", m_task->isAlwaysOnTop());
00110 setData("keptBelowOthers", m_task->isKeptBelowOthers());
00111 setData("active", m_task->isActive());
00112 setData("onTop", m_task->isOnTop());
00113 break;
00114 case TaskManager::DesktopChanged:
00115 setData("onCurrentDesktop", m_task->isOnCurrentDesktop());
00116 setData("onAllDesktops", m_task->isOnAllDesktops());
00117 setData("desktop", m_task->desktop());
00118 break;
00119 default:
00120 break;
00121 }
00122 checkForUpdate();
00123 }
00124
00125 void TaskSource::updateDesktop(int desktop)
00126 {
00127 Q_UNUSED(desktop);
00128 bool onCurrentDesktop = m_task->isOnCurrentDesktop();
00129 if (data()["onCurrentDesktop"].toBool() != onCurrentDesktop) {
00130 setData("onCurrentDesktop", onCurrentDesktop);
00131 checkForUpdate();
00132 }
00133 }
00134
00135 #include "tasksource.moc"