Am 17.12.2008, 21:42 Uhr, schrieb Christian Mollekopf <chrig...@fastmail.fm>:
> Am 17.12.2008, 18:58 Uhr, schrieb Alain Boyer <alainbo...@gmail.com>: > >> Hello, >> >> I'm not sure that this is the best way to go about fixing the >> onCurrentDesktop update. This fixes the tasks data engine but >> libtaskmanager is still broken... >> >> I have attached a patch that fixes the problem in libtaskmanager and >> makes this commit (897412) no longer necessary. I'd like to ask those >> more familiar with libtaskmanager if my changes make sense. > > This makes sense to me, though i think making Task::refresh() a slot and > connecting to the > desktopChanged signal would be nicer... Ooops, aseigo is right of course =P > > Regards, > > Christian > >> >> Also, there is still a minor problem with some of the calls to >> Task::refresh() being munged by d->lastUpdate in >> libs/taskmanager/task.cpp. >> >> Alain. >> >> >> Thomas Schildknecht wrote: >>> SVN commit 897412 by tschildknecht: >>> >>> Fix the onCurrentDesktop update >>> >>> >>> M +16 -0 tasksengine.cpp >>> M +1 -0 tasksengine.h >>> >>> >>> --- >>> trunk/KDE/kdebase/workspace/plasma/dataengines/tasks/tasksengine.cpp >>> #897411:897412 >>> @@ -68,6 +68,7 @@ >>> connect(TaskManager::TaskManager::self(), >>> SIGNAL(startupRemoved(StartupPtr)), this, >>> SLOT(startupRemoved(StartupPtr))); >>> connect(TaskManager::TaskManager::self(), >>> SIGNAL(taskAdded(TaskPtr)), this, SLOT(taskAdded(TaskPtr))); >>> connect(TaskManager::TaskManager::self(), >>> SIGNAL(taskRemoved(TaskPtr)), this, SLOT(taskRemoved(TaskPtr))); >>> + connect(TaskManager::TaskManager::self(), >>> SIGNAL(desktopChanged(int)), this, SLOT(desktopChanged(int))); >>> } >>> >>> void TasksEngine::startupAdded(StartupPtr startup) >>> @@ -94,6 +95,21 @@ >>> removeSource(getTaskName(task)); >>> } >>> >>> +void TasksEngine::desktopChanged(int desktop) >>> +{ >>> + Q_UNUSED(desktop); >>> + QHashIterator <QString, Plasma::DataContainer*> >>> it(containerDict()); >>> + >>> + while (it.hasNext()) { >>> + TaskSource *source = >>> static_cast<TaskSource*>(it.next().value()); >>> + bool onCurrent = source->m_task->isOnCurrentDesktop(); >>> + if (source->data()["onCurrentDesktop"].toBool() != onCurrent) >>> { >>> + source->setData("onCurrentDesktop", onCurrent); >>> + } >>> + source->checkForUpdate(); >>> + } >>> +} >>> + >>> void TasksEngine::addStartup(StartupPtr startup) >>> { >>> TaskSource *taskSource = new TaskSource(startup, this); >>> --- trunk/KDE/kdebase/workspace/plasma/dataengines/tasks/tasksengine.h >>> #897411:897412 >>> @@ -62,6 +62,7 @@ >>> void startupRemoved(StartupPtr startup); >>> void taskAdded(TaskPtr task); >>> void taskRemoved(TaskPtr task); >>> + void desktopChanged(int desktop); >>> >>> private: >>> friend class TaskSource; > > > -- Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/ _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel