KDE/kdebase/workspace/plasma/dataengines/tasks
Christian Mollekopf
chrigi_1 at fastmail.fm
Wed Dec 17 21:45:20 CET 2008
Am 17.12.2008, 21:42 Uhr, schrieb Christian Mollekopf
<chrigi_1 at fastmail.fm>:
> Am 17.12.2008, 18:58 Uhr, schrieb Alain Boyer <alainboyer at 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/
More information about the Plasma-devel
mailing list