[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    two patches for tasks data engine
From:       GALLIEN Matthieu <matthieu_gallien () yahoo ! fr>
Date:       2008-05-06 20:52:31
Message-ID: 20080506205447.27560.qmail () ktown ! kde ! org
[Download RAW message or body]

Hi, everybody
First thank you for all your hard work on plasma.
This is my first patches ever send, but plasma seems a good start for that 
activity ;)
I plan to work on an tasks applet to replace the kasbar of kde3. I mean that I 
want a taskbar without the name of tasks, just icons and the desktop number.
I believe that it could be a good idea to try to use the tasks datengine.
This is why I send those patches.
It seems that the engine does not add sources for startup tasks.
This the goal of the patch-startup.diff.
I am really novice, but it seems also that the coding style could benefit from 
my second patch (maybe not). In all case it may not be correct but may help 
me to better understand the coding style anyway.

I hope to be usefull.

Best regards
-- 
Matthieu Gallien

["patch-startup.diff" (text/x-diff)]

Index: tasksengine.h
===================================================================
--- tasksengine.h	(révision 804229)
+++ tasksengine.h	(copie de travail)
@@ -48,10 +48,15 @@
         void taskChanged();
         void taskAdded(TaskPtr task);
         void taskRemoved(TaskPtr task);
+        void startupChanged();
+        void startupAdded(StartupPtr task);
+        void startupRemoved(StartupPtr);
 
     private:
         void connectTask(TaskPtr task);
         void setDataForTask(TaskPtr task);
+        void connectStartup(StartupPtr task);
+        void setDataForStartup(StartupPtr task);
 };
 
 K_EXPORT_PLASMA_DATAENGINE(tasks, TasksEngine)
Index: tasksengine.cpp
===================================================================
--- tasksengine.cpp	(révision 804229)
+++ tasksengine.cpp	(copie de travail)
@@ -18,11 +18,11 @@
 
 #include "tasksengine.h"
 
+#include <plasma/datacontainer.h>
+
 #include <KDebug>
 #include <KLocale>
 
-#include <plasma/datacontainer.h>
-
 using namespace Plasma;
 
 TasksEngine::TasksEngine(QObject* parent, const QVariantList& args)
@@ -36,6 +36,11 @@
         connect( task.constData() , SIGNAL(changed()) , this , SLOT(taskChanged()) );
 }
 
+void TasksEngine::connectStartup(StartupPtr startup)
+{
+    connect(task.constData(), SIGNAL(changed()), this, SLOT(taskChanged()));
+}
+
 void TasksEngine::init()
 {
     foreach(const TaskPtr &task , TaskManager::TaskManager::self()->tasks().values() ) {
@@ -47,8 +52,48 @@
             this, SLOT(taskAdded(TaskPtr)));
     connect(TaskManager::TaskManager::self(), SIGNAL(taskRemoved(TaskPtr)),
             this, SLOT(taskRemoved(TaskPtr)));
+    connect(TaskManager::TaskManager::self(), SIGNAL(startupAdded(StartupPtr)),
+            this, SLOT(startupAdded(StartupPtr)));
+    connect(TaskManager::TaskManager::self(), SIGNAL(startupRemoved(StartupPtr)),
+            this, SLOT(startupRemoved(StartupPtr)));
 }
 
+void TasksEngine::startupAdded(StartupPtr startup)
+{
+    connectStartup(startup);
+    setDataForStartup(startup);
+}
+
+void TasksEngine::startupRemoved(StartupPtr startup)
+{
+    removeSource(QString(startup->id().id()));
+}
+
+void TasksEngine::startupChanged()
+{
+    TaskManager::Startup* startup = qobject_cast<TaskManager::Startup*>(sender());
+
+    Q_ASSERT(startup);
+
+    setDataForStartup(StartupPtr(startup));
+}
+
+void TasksEngine::setDataForStartup(StartupPtr startup)
+{
+    Q_ASSERT(startup);
+
+    QString name(startup->id().id());
+
+    const QMetaObject* metaObject = startup->metaObject();
+
+    for (int i = 0 ; i < metaObject->propertyCount() ; i++) {
+        QMetaProperty property = metaObject->property(i);
+
+        setData(name, property.name(), property.read(startup.constData()));
+    }
+    setData(name, "TaskOrStartup", QString("startup"));
+}
+
 void TasksEngine::taskAdded(TaskPtr task)
 {
     connectTask(task);
@@ -82,6 +127,8 @@
 
         setData(name,property.name(),property.read(task.constData()));
     }
+    setData(name, "WId", static_cast<qulonglong>(task->window()));
+    setData(name, "TaskOrStartup", QString("task"));
 }
 
 #include "tasksengine.moc"

["patch-coding-style.diff" (text/x-diff)]

Index: tasksengine.h
===================================================================
--- tasksengine.h	(révision 804229)
+++ tasksengine.h	(copie de travail)
@@ -1,5 +1,5 @@
 /*
- *   Copyright (C) 2007 Robert Knight <robertknight@gmail.com> 
+ *   Copyright (C) 2007 Robert Knight <robertknight@gmail.com>
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU Library General Public License version 2 as
@@ -38,20 +38,20 @@
 {
     Q_OBJECT
 
-    public:
-		TasksEngine( QObject* parent, const QVariantList& args);
+public:
+    TasksEngine(QObject* parent, const QVariantList& args);
 
-    protected:
-        virtual void init();
+protected:
+    virtual void init();
 
-    private slots:
-        void taskChanged();
-        void taskAdded(TaskPtr task);
-        void taskRemoved(TaskPtr task);
+private slots:
+    void taskChanged();
+    void taskAdded(TaskPtr task);
+    void taskRemoved(TaskPtr task);
 
-    private:
-        void connectTask(TaskPtr task);
-        void setDataForTask(TaskPtr task);
+private:
+    void connectTask(TaskPtr task);
+    void setDataForTask(TaskPtr task);
 };
 
 K_EXPORT_PLASMA_DATAENGINE(tasks, TasksEngine)
Index: tasksengine.cpp
===================================================================
--- tasksengine.cpp	(révision 804229)
+++ tasksengine.cpp	(copie de travail)
@@ -26,19 +26,19 @@
 using namespace Plasma;
 
 TasksEngine::TasksEngine(QObject* parent, const QVariantList& args)
-    : Plasma::DataEngine(parent, args)
+        : Plasma::DataEngine(parent, args)
 {
     Q_UNUSED(args);
 }
 
 void TasksEngine::connectTask(TaskPtr task)
 {
-        connect( task.constData() , SIGNAL(changed()) , this , SLOT(taskChanged()) );
+    connect(task.constData(), SIGNAL(changed()), this, SLOT(taskChanged()));
 }
 
 void TasksEngine::init()
 {
-    foreach(const TaskPtr &task , TaskManager::TaskManager::self()->tasks().values() ) {
+    foreach(const TaskPtr &task, TaskManager::TaskManager::self()->tasks().values()) {
         connectTask(task);
         setDataForTask(task);
     }
@@ -57,7 +57,7 @@
 
 void TasksEngine::taskRemoved(TaskPtr task)
 {
-    removeSource( QString::number(task->window()) );
+    removeSource(QString::number(task->window()));
 }
 
 void TasksEngine::taskChanged()
@@ -71,16 +71,16 @@
 
 void TasksEngine::setDataForTask(TaskPtr task)
 {
-    Q_ASSERT( task );
+    Q_ASSERT(task);
 
     QString name = QString::number(task->window());
 
     const QMetaObject* metaObject = task->metaObject();
 
-    for ( int i = 0 ; i < metaObject->propertyCount() ; i++ ) {
+    for (int i = 0; i < metaObject->propertyCount(); i++) {
         QMetaProperty property = metaObject->property(i);
 
-        setData(name,property.name(),property.read(task.constData()));
+        setData(name, property.name(), property.read(task.constData()));
     }
 }
 


_______________________________________________
Panel-devel mailing list
Panel-devel@kde.org
https://mail.kde.org/mailman/listinfo/panel-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic