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... 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