• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

Plasma

tasksource.cpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2008 Alain Boyer <alainboyer@gmail.com>
00003  *
00004  * This program is free software; you can redistribute it and/or modify
00005  * it under the terms of the GNU Library General Public License version 2 as
00006  * published by the Free Software Foundation
00007  *
00008  * This program is distributed in the hope that it will be useful,
00009  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011  * GNU General Public License for more details
00012  *
00013  * You should have received a copy of the GNU Library General Public
00014  * License along with this program; if not, write to the
00015  * Free Software Foundation, Inc.,
00016  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00017  */
00018 
00019 #include "tasksource.h"
00020 
00021 // own
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     // only a subset of task information is exported
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"

Plasma

Skip menu "Plasma"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

API Reference

Skip menu "API Reference"
  • KWin
  •   KWin Libraries
  • Libraries
  •   libkworkspace
  •   libsolidcontrol
  •   libtaskmanager
  • Plasma
  •   Animators
  •   Applets
  •   Engines
  • Solid Modules
Generated for API Reference by doxygen 1.5.7
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal