diff --git a/CMakeLists.txt b/CMakeLists.txt index 2735250b..18caf7f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,12 +80,6 @@ set_package_properties(Wayland PROPERTIES DESCRIPTION "The Wayland Client and Se PURPOSE "Required for building KWin with Wayland support" ) -find_package(KActivities 6.0.0 CONFIG) -set_package_properties(KActivities PROPERTIES DESCRIPTION "Interface library for the activity manager" - URL "https://projects.kde.org/kactivities" - TYPE REQUIRED - ) - if(Q_WS_X11) find_package(XCB REQUIRED) set_package_properties(XCB PROPERTIES DESCRIPTION "X protocol C-language Binding" @@ -204,7 +198,7 @@ configure_file(config-workspace.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-works add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DHAVE_CONFIG_H=1) add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) -include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${KACTIVITIES_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/libs) +include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${CMAKE_SOURCE_DIR}/libs) # libs add_subdirectory(cmake) diff --git a/kwin/CMakeLists.txt b/kwin/CMakeLists.txt index 75b8dd97..fd4b2f5b 100644 --- a/kwin/CMakeLists.txt +++ b/kwin/CMakeLists.txt @@ -10,7 +10,6 @@ OPTION(KWIN_BUILD_SCRIPTING "Enable building of KWin with scripting support" ON) OPTION(KWIN_BUILD_KAPPMENU "Enable building of KWin with application menu support" ON) OPTION(KWIN_BUILD_XRENDER_COMPOSITING "Enable building of KWin with XRender Compositing support" ON) OPTION(KWIN_BUILD_OPENGL_1_COMPOSITING "Enable support for OpenGL 1.x, automatically disabled when building for OpenGL ES 2.0" ON) -OPTION(KWIN_BUILD_ACTIVITIES "Enable building of KWin with kactivities support" ON) if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop") OPTION(KWIN_PLASMA_ACTIVE "Enable building KWin for Plasma Active." OFF) else() @@ -184,13 +183,6 @@ if(KWIN_BUILD_KAPPMENU) ) endif() -if(KWIN_BUILD_ACTIVITIES) - set( - kwin_KDEINIT_SRCS ${kwin_KDEINIT_SRCS} - activities.cpp - ) -endif() - if(KWIN_HAVE_EGL) set(kwin_KDEINIT_SRCS ${kwin_KDEINIT_SRCS} eglonxbackend.cpp) endif() @@ -274,11 +266,6 @@ if(KWIN_BUILD_SCRIPTING) set(kwin_QT_LIBS ${kwin_QT_LIBS} ${QT_QTSCRIPT_LIBRARY}) endif() -if(KWIN_BUILD_ACTIVITIES) - set(kwin_KDE_LIBS ${kwin_KDE_LIBS} ${KACTIVITIES_LIBRARIES}) - include_directories(${KACTIVITIES_INCLUDE_DIR}) -endif() - if(OPENGL_EGL_FOUND) set(kwin_OPENGL_LIBS ${kwin_OPENGL_LIBS} ${OPENGLES_EGL_LIBRARY}) endif() diff --git a/kwin/activation.cpp b/kwin/activation.cpp index 2a95d3fe..a7687298 100644 --- a/kwin/activation.cpp +++ b/kwin/activation.cpp @@ -31,9 +31,6 @@ along with this program. If not, see . #include "focuschain.h" #include "netinfo.h" #include "workspace.h" -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #include #include @@ -302,14 +299,6 @@ void Workspace::activateClient(Client* c, bool force) VirtualDesktopManager::self()->setCurrent(c->desktop()); --block_focus; } -#ifdef KWIN_BUILD_ACTIVITIES - if (!c->isOnCurrentActivity()) { - ++block_focus; - //DBUS! - Activities::self()->setCurrent(c->activities().first()); //first isn't necessarily best, but it's easiest - --block_focus; - } -#endif if (c->isMinimized()) c->unminimize(); diff --git a/kwin/activities.cpp b/kwin/activities.cpp deleted file mode 100644 index e6f83533..00000000 --- a/kwin/activities.cpp +++ /dev/null @@ -1,286 +0,0 @@ -/******************************************************************** - KWin - the KDE window manager - This file is part of the KDE project. - -Copyright (C) 2013 Martin Gräßlin - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*********************************************************************/ -#include "activities.h" -// KWin -#include "client.h" -#include "workspace.h" -// KDE -#include -#include -#include -#include -// Qt -#include -#include -#include -#include - -namespace KWin -{ - -KWIN_SINGLETON_FACTORY(Activities) - -Activities::Activities(QObject *parent) - : QObject(parent) - , m_controller(new KActivities::Controller(this)) -{ - connect(m_controller, SIGNAL(activityRemoved(QString)), SLOT(slotRemoved(QString))); - connect(m_controller, SIGNAL(activityRemoved(QString)), SIGNAL(removed(QString))); - connect(m_controller, SIGNAL(activityAdded(QString)), SLOT(slotAdded(QString))); - connect(m_controller, SIGNAL(activityAdded(QString)), SIGNAL(added(QString))); - connect(m_controller, SIGNAL(currentActivityChanged(QString)), SLOT(slotCurrentChanged(QString))); -} - -Activities::~Activities() -{ - s_self = NULL; -} - -void Activities::setCurrent(const QString &activity) -{ - m_controller->setCurrentActivity(activity); -} - -void Activities::slotCurrentChanged(const QString &newActivity) -{ - if (m_current == newActivity) { - return; - } - m_previous = m_current; - m_current = newActivity; - emit currentChanged(newActivity); -} - -void Activities::slotAdded(const QString &activity) -{ - m_all << activity; -} - -void Activities::slotRemoved(const QString &activity) -{ - m_all.removeOne(activity); - foreach (Client * client, Workspace::self()->clientList()) { - client->setOnActivity(activity, false); - } - //toss out any session data for it - KConfigGroup cg(KGlobal::config(), QString("SubSession: ") + activity); - cg.deleteGroup(); -} - -void Activities::toggleClientOnActivity(Client* c, const QString &activity, bool dont_activate) -{ - //int old_desktop = c->desktop(); - bool was_on_activity = c->isOnActivity(activity); - bool was_on_all = c->isOnAllActivities(); - //note: all activities === no activities - bool enable = was_on_all || !was_on_activity; - c->setOnActivity(activity, enable); - if (c->isOnActivity(activity) == was_on_activity && c->isOnAllActivities() == was_on_all) // No change - return; - - Workspace *ws = Workspace::self(); - if (c->isOnCurrentActivity()) { - if (c->wantsTabFocus() && options->focusPolicyIsReasonable() && - !was_on_activity && // for stickyness changes - //FIXME not sure if the line above refers to the correct activity - !dont_activate) - ws->requestFocus(c); - else - ws->restackClientUnderActive(c); - } else - ws->raiseClient(c); - - //notifyWindowDesktopChanged( c, old_desktop ); - - ClientList transients_stacking_order = ws->ensureStackingOrder(c->transients()); - for (ClientList::ConstIterator it = transients_stacking_order.constBegin(); - it != transients_stacking_order.constEnd(); - ++it) - toggleClientOnActivity(*it, activity, dont_activate); - ws->updateClientArea(); -} - -bool Activities::start(const QString &id) -{ - Workspace *ws = Workspace::self(); - if (ws->sessionSaving()) { - return false; //ksmserver doesn't queue requests (yet) - } - - if (!m_all.contains(id)) { - return false; //bogus id - } - - ws->loadSubSessionInfo(id); - - QDBusInterface ksmserver("org.kde.ksmserver", "/KSMServer", "org.kde.KSMServerInterface"); - if (ksmserver.isValid()) { - ksmserver.asyncCall("restoreSubSession", id); - } else { - kDebug(1212) << "couldn't get ksmserver interface"; - return false; - } - return true; -} - -bool Activities::stop(const QString &id) -{ - if (Workspace::self()->sessionSaving()) { - return false; //ksmserver doesn't queue requests (yet) - //FIXME what about session *loading*? - } - - //ugly hack to avoid dbus deadlocks - update(true, false); - QMetaObject::invokeMethod(this, "reallyStop", Qt::QueuedConnection, Q_ARG(QString, id)); - //then lie and assume it worked. - return true; -} - -void Activities::reallyStop(const QString &id) -{ - Workspace *ws = Workspace::self(); - if (ws->sessionSaving()) - return; //ksmserver doesn't queue requests (yet) - - kDebug(1212) << id; - - QSet saveSessionIds; - QSet dontCloseSessionIds; - const ClientList &clients = ws->clientList(); - for (ClientList::const_iterator it = clients.constBegin(); it != clients.constEnd(); ++it) { - const Client* c = (*it); - const QByteArray sessionId = c->sessionId(); - if (sessionId.isEmpty()) { - continue; //TODO support old wm_command apps too? - } - - //kDebug() << sessionId; - - //if it's on the activity that's closing, it needs saving - //but if a process is on some other open activity, I don't wanna close it yet - //this is, of course, complicated by a process having many windows. - if (c->isOnAllActivities()) { - dontCloseSessionIds << sessionId; - continue; - } - - const QStringList activities = c->activities(); - foreach (const QString & activityId, activities) { - if (activityId == id) { - saveSessionIds << sessionId; - } else if (m_running.contains(activityId)) { - dontCloseSessionIds << sessionId; - } - } - } - - ws->storeSubSession(id, saveSessionIds); - - QStringList saveAndClose; - QStringList saveOnly; - foreach (const QByteArray & sessionId, saveSessionIds) { - if (dontCloseSessionIds.contains(sessionId)) { - saveOnly << sessionId; - } else { - saveAndClose << sessionId; - } - } - - kDebug(1212) << "saveActivity" << id << saveAndClose << saveOnly; - - //pass off to ksmserver - QDBusInterface ksmserver("org.kde.ksmserver", "/KSMServer", "org.kde.KSMServerInterface"); - if (ksmserver.isValid()) { - ksmserver.asyncCall("saveSubSession", id, saveAndClose, saveOnly); - } else { - kDebug(1212) << "couldn't get ksmserver interface"; - } -} - -//BEGIN threaded activity list fetching -typedef QPair AssignedList; -typedef QPair CurrentAndList; - -static AssignedList -fetchActivityList(KActivities::Controller *controller, QStringList *target, bool running) // could be member function, but actually it's much simpler this way -{ - return AssignedList(target, running ? controller->listActivities(KActivities::Info::Running) : - controller->listActivities()); -} - -static CurrentAndList -fetchActivityListAndCurrent(KActivities::Controller *controller) -{ - QStringList l = controller->listActivities(); - QString c = controller->currentActivity(); - return CurrentAndList(c, l); -} - -void Activities::update(bool running, bool updateCurrent, QObject *target, QString slot) -{ - if (updateCurrent) { - QFutureWatcher* watcher = new QFutureWatcher; - connect( watcher, SIGNAL(finished()), SLOT(handleReply()) ); - if (!slot.isEmpty()) { - watcher->setProperty("activityControllerCallback", slot); // "activity reply trigger" - watcher->setProperty("activityControllerCallbackTarget", qVariantFromValue((void*)target)); - } - watcher->setFuture(QtConcurrent::run(fetchActivityListAndCurrent, m_controller)); - } else { - QFutureWatcher* watcher = new QFutureWatcher; - connect(watcher, SIGNAL(finished()), SLOT(handleReply())); - if (!slot.isEmpty()) { - watcher->setProperty("activityControllerCallback", slot); // "activity reply trigger" - watcher->setProperty("activityControllerCallbackTarget", qVariantFromValue((void*)target)); - } - QStringList *target = running ? &m_running : &m_all; - watcher->setFuture(QtConcurrent::run(fetchActivityList, m_controller, target, running)); - } -} - -void Activities::handleReply() -{ - QObject *watcherObject = 0; - if (QFutureWatcher* watcher = dynamic_cast< QFutureWatcher* >(sender())) { - // we carry over the to-be-updated StringList member as pointer in the threaded return - *(watcher->result().first) = watcher->result().second; - watcherObject = watcher; - } - - if (!watcherObject) { - if (QFutureWatcher* watcher = dynamic_cast< QFutureWatcher* >(sender())) { - m_all = watcher->result().second; - slotCurrentChanged(watcher->result().first); - watcherObject = watcher; - } - } - - if (watcherObject) { - QString slot = watcherObject->property("activityControllerCallback").toString(); - QObject *target = static_cast(watcherObject->property("activityControllerCallbackTarget").value()); - watcherObject->deleteLater(); // has done it's job - if (!slot.isEmpty()) - QMetaObject::invokeMethod(target, slot.toAscii().data(), Qt::DirectConnection); - } -} -//END threaded activity list fetching - -} // namespace diff --git a/kwin/activities.h b/kwin/activities.h deleted file mode 100644 index 87176116..00000000 --- a/kwin/activities.h +++ /dev/null @@ -1,130 +0,0 @@ -/******************************************************************** - KWin - the KDE window manager - This file is part of the KDE project. - -Copyright (C) 2013 Martin Gräßlin - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*********************************************************************/ -#ifndef KWIN_ACTIVITIES_H -#define KWIN_ACTIVITIES_H - -#include - -#include -#include - -namespace KActivities { -class Controller; -} - -namespace KWin -{ -class Client; - -class Activities : public QObject -{ - Q_OBJECT - -public: - ~Activities(); - - bool stop(const QString &id); - bool start(const QString &id); - void update(bool running, bool updateCurrent, QObject *target = NULL, QString slot = QString()); - void setCurrent(const QString &activity); - /** - * Adds/removes client \a c to/from \a activity. - * - * Takes care of transients as well. - */ - void toggleClientOnActivity(Client* c, const QString &activity, bool dont_activate); - - const QStringList &running() const; - const QStringList &all() const; - const QString ¤t() const; - const QString &previous() const; - - static QString nullUuid(); - -Q_SIGNALS: - /** - * This signal is emitted when the global - * activity is changed - * @param id id of the new current activity - */ - void currentChanged(const QString &id); - /** - * This signal is emitted when a new activity is added - * @param id id of the new activity - */ - void added(const QString &id); - /** - * This signal is emitted when the activity - * is removed - * @param id id of the removed activity - */ - void removed(const QString &id); - -private Q_SLOTS: - void slotRemoved(const QString &activity); - void slotAdded(const QString &activity); - void slotCurrentChanged(const QString &newActivity); - void reallyStop(const QString &id); //dbus deadlocks suck - void handleReply(); - -private: - QStringList m_running; - QStringList m_all; - QString m_current; - QString m_previous; - KActivities::Controller *m_controller; - - KWIN_SINGLETON(Activities) -}; - -inline -const QStringList &Activities::all() const -{ - return m_all; -} - -inline -const QString &Activities::current() const -{ - return m_current; -} - -inline -const QString &Activities::previous() const -{ - return m_previous; -} - -inline -const QStringList &Activities::running() const -{ - return m_running; -} - -inline -QString Activities::nullUuid() -{ - // cloned from kactivities/src/lib/core/consumer.cpp - return QString("00000000-0000-0000-0000-000000000000"); -} - -} - -#endif // KWIN_ACTIVITIES_H diff --git a/kwin/client.cpp b/kwin/client.cpp index fa52acee..79a32c77 100644 --- a/kwin/client.cpp +++ b/kwin/client.cpp @@ -21,9 +21,6 @@ along with this program. If not, see . // own #include "client.h" // kwin -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #ifdef KWIN_BUILD_KAPPMENU #include "appmenu.h" #endif @@ -1501,22 +1498,8 @@ void Client::setDesktop(int desktop) */ void Client::setOnActivity(const QString &activity, bool enable) { -#ifdef KWIN_BUILD_ACTIVITIES - QStringList newActivitiesList = activities(); - if (newActivitiesList.contains(activity) == enable) //nothing to do - return; - if (enable) { - QStringList allActivities = Activities::self()->all(); - if (!allActivities.contains(activity)) //bogus ID - return; - newActivitiesList.append(activity); - } else - newActivitiesList.removeOne(activity); - setOnActivities(newActivitiesList); -#else Q_UNUSED(activity) Q_UNUSED(enable) -#endif } /** @@ -1524,33 +1507,7 @@ void Client::setOnActivity(const QString &activity, bool enable) */ void Client::setOnActivities(QStringList newActivitiesList) { -#ifdef KWIN_BUILD_ACTIVITIES - QString joinedActivitiesList = newActivitiesList.join(","); - joinedActivitiesList = rules()->checkActivity(joinedActivitiesList, false); - newActivitiesList = joinedActivitiesList.split(',', QString::SkipEmptyParts); - - QStringList allActivities = Activities::self()->all(); - if ( newActivitiesList.isEmpty() || - (newActivitiesList.count() > 1 && newActivitiesList.count() == allActivities.count()) || - (newActivitiesList.count() == 1 && newActivitiesList.at(0) == Activities::nullUuid())) { - activityList.clear(); - const QByteArray nullUuid = Activities::nullUuid().toUtf8(); - XChangeProperty(display(), window(), atoms->activities, XA_STRING, 8, - PropModeReplace, (const unsigned char *)nullUuid.constData(), nullUuid.length()); - - } else { - QByteArray joined = joinedActivitiesList.toAscii(); - char *data = joined.data(); - activityList = newActivitiesList; - XChangeProperty(display(), window(), atoms->activities, XA_STRING, 8, - PropModeReplace, (unsigned char *)data, joined.size()); - - } - - updateActivities(false); -#else Q_UNUSED(newActivitiesList) -#endif } void Client::blockActivityUpdates(bool b) @@ -1633,16 +1590,6 @@ void Client::setOnAllDesktops(bool b) */ void Client::setOnAllActivities(bool on) { -#ifdef KWIN_BUILD_ACTIVITIES - if (on == isOnAllActivities()) - return; - if (on) { - setOnActivities(QStringList()); - - } else { - setOnActivity(Activities::self()->current(), true); - } -#endif } /** @@ -2377,47 +2324,6 @@ QPixmap* kwin_get_menu_pix_hack() void Client::checkActivities() { -#ifdef KWIN_BUILD_ACTIVITIES - QStringList newActivitiesList; - QByteArray prop = getStringProperty(window(), atoms->activities); - activitiesDefined = !prop.isEmpty(); - if (prop == Activities::nullUuid()) { - //copied from setOnAllActivities to avoid a redundant XChangeProperty. - if (!activityList.isEmpty()) { - activityList.clear(); - updateActivities(true); - } - return; - } - if (prop.isEmpty()) { - //note: this makes it *act* like it's on all activities but doesn't set the property to 'ALL' - if (!activityList.isEmpty()) { - activityList.clear(); - updateActivities(true); - } - return; - } - - newActivitiesList = QString(prop).split(','); - - if (newActivitiesList == activityList) - return; //expected change, it's ok. - - //otherwise, somebody else changed it. we need to validate before reacting - QStringList allActivities = Activities::self()->all(); - if (allActivities.isEmpty()) { - kDebug() << "no activities!?!?"; - //don't touch anything, there's probably something bad going on and we don't wanna make it worse - return; - } - for (int i = 0; i < newActivitiesList.size(); ++i) { - if (! allActivities.contains(newActivitiesList.at(i))) { - kDebug() << "invalid:" << newActivitiesList.at(i); - newActivitiesList.removeAt(i--); - } - } - setOnActivities(newActivitiesList); -#endif } void Client::setSessionInteract(bool needed) diff --git a/kwin/config-kwin.h.cmake b/kwin/config-kwin.h.cmake index 3dbd146b..01fd38ea 100644 --- a/kwin/config-kwin.h.cmake +++ b/kwin/config-kwin.h.cmake @@ -4,7 +4,6 @@ #cmakedefine KWIN_BUILD_SCREENEDGES 1 #cmakedefine KWIN_BUILD_SCRIPTING 1 #cmakedefine KWIN_BUILD_KAPPMENU 1 -#cmakedefine KWIN_BUILD_ACTIVITIES 1 #cmakedefine KWIN_BUILD_OXYGEN 1 #define KWIN_NAME "${KWIN_NAME}" #define KWIN_CONFIG "${KWIN_NAME}rc" diff --git a/kwin/dbusinterface.cpp b/kwin/dbusinterface.cpp index 10ea3f2f..7c4cdfa8 100644 --- a/kwin/dbusinterface.cpp +++ b/kwin/dbusinterface.cpp @@ -30,9 +30,6 @@ along with this program. If not, see . #include "kwinadaptor.h" #include "workspace.h" #include "virtualdesktops.h" -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif // Qt #include @@ -131,20 +128,12 @@ WRAP(bool, waitForCompositingSetup) bool DBusInterface::startActivity(const QString &in0) { -#ifdef KWIN_BUILD_ACTIVITIES - return Activities::self()->start(in0); -#else return false; -#endif } bool DBusInterface::stopActivity(const QString &in0) { -#ifdef KWIN_BUILD_ACTIVITIES - return Activities::self()->stop(in0); -#else return false; -#endif } void DBusInterface::doNotManage(const QString &name) diff --git a/kwin/effects.cpp b/kwin/effects.cpp index e2b0e9f1..12d69f51 100644 --- a/kwin/effects.cpp +++ b/kwin/effects.cpp @@ -22,9 +22,6 @@ along with this program. If not, see . #include "effects.h" #include "effectsadaptor.h" -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #include "decorations.h" #include "deleted.h" #include "client.h" @@ -237,12 +234,6 @@ EffectsHandlerImpl::EffectsHandlerImpl(Compositor *compositor, Scene *scene) connect(Cursor::self(), SIGNAL(mouseChanged(QPoint,QPoint,Qt::MouseButtons,Qt::MouseButtons,Qt::KeyboardModifiers,Qt::KeyboardModifiers)), SIGNAL(mouseChanged(QPoint,QPoint,Qt::MouseButtons,Qt::MouseButtons,Qt::KeyboardModifiers,Qt::KeyboardModifiers))); connect(ws, SIGNAL(propertyNotify(long)), this, SLOT(slotPropertyNotify(long))); -#ifdef KWIN_BUILD_ACTIVITIES - Activities *activities = Activities::self(); - connect(activities, SIGNAL(added(QString)), SIGNAL(activityAdded(QString))); - connect(activities, SIGNAL(removed(QString)), SIGNAL(activityRemoved(QString))); - connect(activities, SIGNAL(currentChanged(QString)), SIGNAL(currentActivityChanged(QString))); -#endif connect(ws, SIGNAL(stackingOrderChanged()), SIGNAL(stackingOrderChanged())); #ifdef KWIN_BUILD_TABBOX TabBox::TabBox *tabBox = TabBox::TabBox::self(); @@ -922,11 +913,7 @@ void EffectsHandlerImpl::setShowingDesktop(bool showing) QString EffectsHandlerImpl::currentActivity() const { -#ifdef KWIN_BUILD_ACTIVITIES - return Activities::self()->current(); -#else return QString(); -#endif } int EffectsHandlerImpl::currentDesktop() const diff --git a/kwin/kcmkwin/kwinrules/CMakeLists.txt b/kwin/kcmkwin/kwinrules/CMakeLists.txt index 3cfc1dcc..054d4df0 100644 --- a/kwin/kcmkwin/kwinrules/CMakeLists.txt +++ b/kwin/kcmkwin/kwinrules/CMakeLists.txt @@ -1,5 +1,3 @@ -include_directories( ${KACTIVITIES_INCLUDE_DIR} ) - ADD_DEFINITIONS(-DKCMRULES) ########### next target ############### @@ -18,7 +16,7 @@ set(kwin_kcm_rules_XCB_LIBS ${X11_XCB_LIBRARIES} ) -target_link_libraries(kdeinit_kwin_rules_dialog ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${X11_LIBRARIES} ${KACTIVITIES_LIBRARIES} ${kwin_kcm_rules_XCB_LIBS}) +target_link_libraries(kdeinit_kwin_rules_dialog ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${X11_LIBRARIES} ${kwin_kcm_rules_XCB_LIBS}) install(TARGETS kdeinit_kwin_rules_dialog ${INSTALL_TARGETS_DEFAULT_ARGS} ) install(TARGETS kwin_rules_dialog DESTINATION ${LIBEXEC_INSTALL_DIR} ) @@ -30,7 +28,7 @@ set(kcm_kwinrules_PART_SRCS kcm.cpp ${kwinrules_SRCS}) kde4_add_plugin(kcm_kwinrules ${kcm_kwinrules_PART_SRCS}) -target_link_libraries(kcm_kwinrules ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${X11_LIBRARIES} ${KACTIVITIES_LIBRARIES} ${kwin_kcm_rules_XCB_LIBS}) +target_link_libraries(kcm_kwinrules ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${X11_LIBRARIES} ${kwin_kcm_rules_XCB_LIBS}) install(TARGETS kcm_kwinrules DESTINATION ${PLUGIN_INSTALL_DIR} ) diff --git a/kwin/kcmkwin/kwinrules/ruleswidget.cpp b/kwin/kcmkwin/kwinrules/ruleswidget.cpp index b30db540..50157019 100644 --- a/kwin/kcmkwin/kwinrules/ruleswidget.cpp +++ b/kwin/kcmkwin/kwinrules/ruleswidget.cpp @@ -28,9 +28,6 @@ #include #include -#ifdef KWIN_BUILD_ACTIVITIES -#include -#endif #include #include @@ -89,9 +86,6 @@ RulesWidget::RulesWidget(QWidget* parent) SETUP(size, set); SETUP(desktop, set); SETUP(screen, set); -#ifdef KWIN_BUILD_ACTIVITIES - SETUP(activity, set); -#endif SETUP(maximizehoriz, set); SETUP(maximizevert, set); SETUP(minimize, set); @@ -130,11 +124,9 @@ RulesWidget::RulesWidget(QWidget* parent) edit_reg_title->hide(); edit_reg_machine->hide(); -#ifndef KWIN_BUILD_ACTIVITIES rule_activity->hide(); enable_activity->hide(); activity->hide(); -#endif int i; for (i = 1; i <= KWindowSystem::numberOfDesktops(); @@ -142,16 +134,6 @@ RulesWidget::RulesWidget(QWidget* parent) desktop->addItem(QString::number(i).rightJustified(2) + ':' + KWindowSystem::desktopName(i)); desktop->addItem(i18n("All Desktops")); -#ifdef KWIN_BUILD_ACTIVITIES - static KActivities::Consumer activities; - foreach (const QString & activityId, activities.listActivities()) { - activity->addItem(KActivities::Info::name(activityId), activityId); - } - // cloned from kactivities/src/lib/core/consumer.cpp - #define NULL_UUID "00000000-0000-0000-0000-000000000000" - activity->addItem(i18n("All Activities"), QString::fromLatin1(NULL_UUID)); - #undef NULL_UUID -#endif } #undef SETUP @@ -168,9 +150,6 @@ UPDATE_ENABLE_SLOT(position) UPDATE_ENABLE_SLOT(size) UPDATE_ENABLE_SLOT(desktop) UPDATE_ENABLE_SLOT(screen) -#ifdef KWIN_BUILD_ACTIVITIES -UPDATE_ENABLE_SLOT(activity) -#endif UPDATE_ENABLE_SLOT(maximizehoriz) UPDATE_ENABLE_SLOT(maximizevert) UPDATE_ENABLE_SLOT(minimize) @@ -288,28 +267,6 @@ int RulesWidget::comboToDesktop(int val) const return NET::OnAllDesktops; return val + 1; } -#ifdef KWIN_BUILD_ACTIVITIES -int RulesWidget::activityToCombo(QString d) const -{ - // TODO: ivan - do a multiselection list - for (int i = 0; i < activity->count(); i++) { - if (activity->itemData(i).toString() == d) { - return i; - } - } - - return activity->count() - 1; // on all activities -} - -QString RulesWidget::comboToActivity(int val) const -{ - // TODO: ivan - do a multiselection list - if (val < 0 || val >= activity->count()) - return QString(); - - return activity->itemData(val).toString(); -} -#endif static int placementToCombo(Placement::Policy placement) { static const int conv[] = { @@ -444,9 +401,6 @@ void RulesWidget::setRules(Rules* rules) LINEEDIT_SET_RULE(size, sizeToStr); COMBOBOX_SET_RULE(desktop, desktopToCombo); SPINBOX_SET_RULE(screen, inc); -#ifdef KWIN_BUILD_ACTIVITIES - COMBOBOX_SET_RULE(activity, activityToCombo); -#endif CHECKBOX_SET_RULE(maximizehoriz,); CHECKBOX_SET_RULE(maximizevert,); CHECKBOX_SET_RULE(minimize,); @@ -543,9 +497,6 @@ Rules* RulesWidget::rules() const LINEEDIT_SET_RULE(size, strToSize); COMBOBOX_SET_RULE(desktop, comboToDesktop); SPINBOX_SET_RULE(screen, dec); -#ifdef KWIN_BUILD_ACTIVITIES - COMBOBOX_SET_RULE(activity, comboToActivity); -#endif CHECKBOX_SET_RULE(maximizehoriz,); CHECKBOX_SET_RULE(maximizevert,); CHECKBOX_SET_RULE(minimize,); diff --git a/kwin/kcmkwin/kwinrules/ruleswidget.h b/kwin/kcmkwin/kwinrules/ruleswidget.h index 7e875601..2a895736 100644 --- a/kwin/kcmkwin/kwinrules/ruleswidget.h +++ b/kwin/kcmkwin/kwinrules/ruleswidget.h @@ -60,9 +60,6 @@ private slots: void updateEnablesize(); void updateEnabledesktop(); void updateEnablescreen(); -#ifdef KWIN_BUILD_ACTIVITIES - void updateEnableactivity(); -#endif void updateEnablemaximizehoriz(); void updateEnablemaximizevert(); void updateEnableminimize(); @@ -98,10 +95,6 @@ private slots: private: int desktopToCombo(int d) const; int comboToDesktop(int val) const; -#ifdef KWIN_BUILD_ACTIVITIES - int activityToCombo(QString d) const; - QString comboToActivity(int val) const; -#endif int comboToTiling(int val) const; int inc(int i) const { return i+1; } int dec(int i) const { return i-1; } diff --git a/kwin/manage.cpp b/kwin/manage.cpp index 99526b9b..9b474475 100644 --- a/kwin/manage.cpp +++ b/kwin/manage.cpp @@ -27,9 +27,6 @@ along with this program. If not, see . #include #include -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #include "cursor.h" #include "decorations.h" #include @@ -203,18 +200,6 @@ bool Client::manage(xcb_window_t w, bool isMapped) desk = info->desktop(); // Window had the initial desktop property, force it if (desktop() == 0 && asn_valid && asn_data.desktop() != 0) desk = asn_data.desktop(); -#ifdef KWIN_BUILD_ACTIVITIES - if (!isMapped && !noborder && isNormalWindow() && !activitiesDefined) { - //a new, regular window, when we're not recovering from a crash, - //and it hasn't got an activity. let's try giving it the current one. - //TODO: decide whether to keep this before the 4.6 release - //TODO: if we are keeping it (at least as an option), replace noborder checking - //with a public API for setting windows to be on all activities. - //something like KWindowSystem::setOnAllActivities or - //KActivityConsumer::setOnAllActivities - setOnActivity(Activities::self()->current(), true); - } -#endif } if (desk == 0) // Assume window wants to be visible on the current desktop diff --git a/kwin/scripting/scripting_model.cpp b/kwin/scripting/scripting_model.cpp index 849c8764..75929323 100644 --- a/kwin/scripting/scripting_model.cpp +++ b/kwin/scripting/scripting_model.cpp @@ -311,20 +311,7 @@ AbstractLevel *AbstractLevel::create(const QList< ClientModel::LevelRestriction } switch (restriction) { case ClientModel::ActivityRestriction: { -#ifdef KWIN_BUILD_ACTIVITIES - const QStringList &activities = Activities::self()->all(); - for (QStringList::const_iterator it = activities.begin(); it != activities.end(); ++it) { - AbstractLevel *childLevel = create(childRestrictions, childrenRestrictions, model, currentLevel); - if (!childLevel) { - continue; - } - childLevel->setActivity(*it); - currentLevel->addChild(childLevel); - } - break; -#else return NULL; -#endif } case ClientModel::ScreenRestriction: for (int i=0; icount(); ++i) { @@ -402,11 +389,6 @@ ForkLevel::ForkLevel(const QList &childRestrictio { connect(VirtualDesktopManager::self(), SIGNAL(countChanged(uint,uint)), SLOT(desktopCountChanged(uint,uint))); connect(screens(), SIGNAL(countChanged(int,int)), SLOT(screenCountChanged(int,int))); -#ifdef KWIN_BUILD_ACTIVITIES - Activities *activities = Activities::self(); - connect(activities, SIGNAL(added(QString)), SLOT(activityAdded(QString))); - connect(activities, SIGNAL(removed(QString)), SLOT(activityRemoved(QString))); -#endif } ForkLevel::~ForkLevel() @@ -478,44 +460,10 @@ void ForkLevel::screenCountChanged(int previousCount, int newCount) void ForkLevel::activityAdded(const QString &activityId) { -#ifdef KWIN_BUILD_ACTIVITIES - if (restriction() != ClientModel::ClientModel::ActivityRestriction) { - return; - } - // verify that our children do not contain this activity - foreach (AbstractLevel *child, m_children) { - if (child->activity() == activityId) { - return; - } - } - emit beginInsert(m_children.count(), m_children.count(), id()); - AbstractLevel *childLevel = AbstractLevel::create(m_childRestrictions, restrictions(), model(), this); - if (!childLevel) { - emit endInsert(); - return; - } - childLevel->setActivity(activityId); - childLevel->init(); - addChild(childLevel); - emit endInsert(); -#endif } void ForkLevel::activityRemoved(const QString &activityId) { -#ifdef KWIN_BUILD_ACTIVITIES - if (restriction() != ClientModel::ClientModel::ActivityRestriction) { - return; - } - for (int i=0; iactivity() == activityId) { - emit beginRemove(i, i, id()); - delete m_children.takeAt(i); - emit endRemove(); - break; - } - } -#endif } int ForkLevel::count() const diff --git a/kwin/scripting/workspace_wrapper.cpp b/kwin/scripting/workspace_wrapper.cpp index fb737119..456773cc 100644 --- a/kwin/scripting/workspace_wrapper.cpp +++ b/kwin/scripting/workspace_wrapper.cpp @@ -25,9 +25,6 @@ along with this program. If not, see . #include "../screens.h" #include "../virtualdesktops.h" #include "../workspace.h" -#ifdef KWIN_BUILD_ACTIVITIES -#include "../activities.h" -#endif #include @@ -46,14 +43,6 @@ WorkspaceWrapper::WorkspaceWrapper(QObject* parent) : QObject(parent) connect(vds, SIGNAL(countChanged(uint,uint)), SIGNAL(numberDesktopsChanged(uint))); connect(vds, SIGNAL(layoutChanged(int,int)), SIGNAL(desktopLayoutChanged())); connect(ws, SIGNAL(clientDemandsAttentionChanged(KWin::Client*,bool)), SIGNAL(clientDemandsAttentionChanged(KWin::Client*,bool))); -#ifdef KWIN_BUILD_ACTIVITIES - KWin::Activities *activities = KWin::Activities::self(); - connect(activities, SIGNAL(currentChanged(QString)), SIGNAL(currentActivityChanged(QString))); - connect(activities, SIGNAL(added(QString)), SIGNAL(activitiesChanged(QString))); - connect(activities, SIGNAL(added(QString)), SIGNAL(activityAdded(QString))); - connect(activities, SIGNAL(removed(QString)), SIGNAL(activitiesChanged(QString))); - connect(activities, SIGNAL(removed(QString)), SIGNAL(activityRemoved(QString))); -#endif connect(QApplication::desktop(), SIGNAL(screenCountChanged(int)), SIGNAL(numberScreensChanged(int))); connect(QApplication::desktop(), SIGNAL(resized(int)), SIGNAL(screenResized(int))); foreach (KWin::Client *client, ws->clientList()) { @@ -92,20 +81,12 @@ GETTER(QList< KWin::Client* >, clientList) QString WorkspaceWrapper::currentActivity() const { -#ifdef KWIN_BUILD_ACTIVITIES - return Activities::self()->current(); -#else return QString(); -#endif } QStringList WorkspaceWrapper::activityList() const { -#ifdef KWIN_BUILD_ACTIVITIES - return Activities::self()->all(); -#else return QStringList(); -#endif } #define SLOTWRAPPER(name) \ diff --git a/kwin/tabbox/tabbox.cpp b/kwin/tabbox/tabbox.cpp index 1d5e466a..f8b993be 100644 --- a/kwin/tabbox/tabbox.cpp +++ b/kwin/tabbox/tabbox.cpp @@ -29,9 +29,6 @@ along with this program. If not, see . #include "tabbox/tabboxconfig.h" #include "tabbox/desktopchain.h" // kwin -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #include "client.h" #include "effects.h" #include "focuschain.h" @@ -80,9 +77,6 @@ TabBoxHandlerImpl::TabBoxHandlerImpl(TabBox* tabBox) VirtualDesktopManager *vds = VirtualDesktopManager::self(); connect(vds, SIGNAL(countChanged(uint,uint)), m_desktopFocusChain, SLOT(resize(uint,uint))); connect(vds, SIGNAL(currentChanged(uint,uint)), m_desktopFocusChain, SLOT(addDesktop(uint,uint))); -#ifdef KWIN_BUILD_ACTIVITIES - connect(Activities::self(), SIGNAL(currentChanged(QString)), m_desktopFocusChain, SLOT(useChain(QString))); -#endif } TabBoxHandlerImpl::~TabBoxHandlerImpl() diff --git a/kwin/toplevel.cpp b/kwin/toplevel.cpp index 19ed0bd4..41e411dd 100644 --- a/kwin/toplevel.cpp +++ b/kwin/toplevel.cpp @@ -22,9 +22,6 @@ along with this program. If not, see . #include -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #include "atoms.h" #include "client.h" #include "client_machine.h" @@ -451,11 +448,7 @@ bool Toplevel::isDeleted() const bool Toplevel::isOnCurrentActivity() const { -#ifdef KWIN_BUILD_ACTIVITIES - return isOnActivity(Activities::self()->current()); -#else return true; -#endif } void Toplevel::elevate(bool elevate) diff --git a/kwin/useractions.cpp b/kwin/useractions.cpp index 563cb868..64e8bbfc 100755 --- a/kwin/useractions.cpp +++ b/kwin/useractions.cpp @@ -44,10 +44,6 @@ along with this program. If not, see . #include "scripting/scripting.h" #endif -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#include -#endif #include #include @@ -426,9 +422,6 @@ void UserActionsMenu::menuAboutToShow() } else { initScreenPopup(); } -#ifdef KWIN_BUILD_ACTIVITIES - Activities::self()->update(true, false, this, "showHideActivityMenu"); -#endif m_resizeOperation->setEnabled(m_client.data()->isResizable()); m_moveOperation->setEnabled(m_client.data()->isMovableAcrossScreens()); @@ -476,16 +469,6 @@ void UserActionsMenu::menuAboutToShow() void UserActionsMenu::showHideActivityMenu() { -#ifdef KWIN_BUILD_ACTIVITIES - const QStringList &openActivities_ = Activities::self()->running(); - kDebug() << "activities:" << openActivities_.size(); - if (openActivities_.size() < 2) { - delete m_activityMenu; - m_activityMenu = 0; - } else { - initActivityPopup(); - } -#endif } void UserActionsMenu::selectPopupClientTab(QAction* action) @@ -712,43 +695,6 @@ void UserActionsMenu::activityPopupAboutToShow() if (!m_activityMenu) return; -#ifdef KWIN_BUILD_ACTIVITIES - m_activityMenu->clear(); - QAction *action = m_activityMenu->addAction(i18n("&All Activities")); - action->setData(QString()); - action->setCheckable(true); - static QPointer allActivitiesGroup; - if (!allActivitiesGroup) { - allActivitiesGroup = new QActionGroup(m_activityMenu); - } - allActivitiesGroup->addAction(action); - - if (!m_client.isNull() && m_client.data()->isOnAllActivities()) - action->setChecked(true); - m_activityMenu->addSeparator(); - - foreach (const QString &id, Activities::self()->running()) { - KActivities::Info activity(id); - QString name = activity.name(); - name.replace('&', "&&"); - QWidgetAction *action = new QWidgetAction(m_activityMenu); - QCheckBox *box = new QCheckBox(name, m_activityMenu); - action->setDefaultWidget(box); - const QString icon = activity.icon(); - if (!icon.isEmpty()) - box->setIcon(KIcon(icon)); - box->setBackgroundRole(m_activityMenu->backgroundRole()); - box->setForegroundRole(m_activityMenu->foregroundRole()); - box->setPalette(m_activityMenu->palette()); - connect (box, SIGNAL(clicked(bool)), action, SIGNAL(triggered(bool))); - m_activityMenu->addAction(action); - action->setData(id); - - if (!m_client.isNull() && - !m_client.data()->isOnAllActivities() && m_client.data()->isOnActivity(id)) - box->setChecked(true); - } -#endif } void UserActionsMenu::slotWindowOperation(QAction *action) @@ -815,34 +761,6 @@ void UserActionsMenu::slotSendToScreen(QAction *action) void UserActionsMenu::slotToggleOnActivity(QAction *action) { -#ifdef KWIN_BUILD_ACTIVITIES - QString activity = action->data().toString(); - if (m_client.isNull()) - return; - if (activity.isEmpty()) { - // the 'on_all_activities' menu entry - m_client.data()->setOnAllActivities(!m_client.data()->isOnAllActivities()); - return; - } - - Activities::self()->toggleClientOnActivity(m_client.data(), activity, false); - if (m_activityMenu && m_activityMenu->isVisible() && m_activityMenu->actions().count()) { - const bool isOnAll = m_client.data()->isOnAllActivities(); - m_activityMenu->actions().at(0)->setChecked(isOnAll); - if (isOnAll) { - // toggleClientOnActivity interprets "on all" as "on none" and - // susequent toggling ("off") would move the client to only that activity. - // bug #330838 -> set all but "on all" off to "force proper usage" - for (int i = 1; i < m_activityMenu->actions().count(); ++i) { - if (QWidgetAction *qwa = qobject_cast(m_activityMenu->actions().at(i))) { - if (QCheckBox *qcb = qobject_cast(qwa->defaultWidget())) { - qcb->setChecked(false); - } - } - } - } - } -#endif } //**************************************** diff --git a/kwin/workspace.cpp b/kwin/workspace.cpp index 82a7567c..c837ed02 100644 --- a/kwin/workspace.cpp +++ b/kwin/workspace.cpp @@ -24,9 +24,6 @@ along with this program. If not, see . #include #include // kwin -#ifdef KWIN_BUILD_ACTIVITIES -#include "activities.h" -#endif #ifdef KWIN_BUILD_KAPPMENU #include "appmenu.h" #endif @@ -154,10 +151,6 @@ Workspace::Workspace(bool restore) // start the cursor support Cursor::create(this); -#ifdef KWIN_BUILD_ACTIVITIES - Activities *activities = Activities::create(this); - connect(activities, SIGNAL(currentChanged(QString)), SLOT(updateCurrentActivity(QString))); -#endif // PluginMgr needs access to the config file, so we need to wait for it for finishing reparseConfigFuture.waitForFinished(); @@ -296,9 +289,6 @@ void Workspace::init() } if (!VirtualDesktopManager::self()->setCurrent(initial_desktop)) VirtualDesktopManager::self()->setCurrent(1); -#ifdef KWIN_BUILD_ACTIVITIES - Activities::self()->update(false, true); -#endif reconfigureTimer.setSingleShot(true); updateToolWindowsTimer.setSingleShot(true); @@ -1032,95 +1022,7 @@ Client *Workspace::findClientToActivateOnDesktop(uint desktop) void Workspace::updateCurrentActivity(const QString &new_activity) { -#ifdef KWIN_BUILD_ACTIVITIES - //closeActivePopup(); - ++block_focus; - // TODO: Q_ASSERT( block_stacking_updates == 0 ); // Make sure stacking_order is up to date - StackingUpdatesBlocker blocker(this); - - ++block_showing_desktop; //FIXME should I be using that? - // Optimized Desktop switching: unmapping done from back to front - // mapping done from front to back => less exposure events - //Notify::raise((Notify::Event) (Notify::DesktopChange+new_desktop)); - - ObscuringWindows obs_wins; - - const QString &old_activity = Activities::self()->previous(); - - for (ToplevelList::ConstIterator it = stacking_order.constBegin(); - it != stacking_order.constEnd(); - ++it) { - Client *c = qobject_cast(*it); - if (!c) { - continue; - } - if (!c->isOnActivity(new_activity) && c != movingClient && c->isOnCurrentDesktop()) { - if (c->isShown(true) && c->isOnActivity(old_activity) && !compositing()) - obs_wins.create(c); - c->updateVisibility(); - } - } - - // Now propagate the change, after hiding, before showing - //rootInfo->setCurrentDesktop( currentDesktop() ); - - /* TODO someday enable dragging windows to other activities - if ( movingClient && !movingClient->isOnDesktop( new_desktop )) - { - movingClient->setDesktop( new_desktop ); - */ - - for (int i = stacking_order.size() - 1; i >= 0 ; --i) { - Client *c = qobject_cast(stacking_order.at(i)); - if (!c) { - continue; - } - if (c->isOnActivity(new_activity)) - c->updateVisibility(); - } - - --block_showing_desktop; - //FIXME not sure if I should do this either - if (showingDesktop()) // Do this only after desktop change to avoid flicker - resetShowingDesktop(false); - - // Restore the focus on this desktop - --block_focus; - Client* c = 0; - - //FIXME below here is a lot of focuschain stuff, probably all wrong now - if (options->focusPolicyIsReasonable()) { - // Search in focus chain - c = FocusChain::self()->getForActivation(VirtualDesktopManager::self()->current()); - } - // If "unreasonable focus policy" and active_client is on_all_desktops and - // under mouse (Hence == old_active_client), conserve focus. - // (Thanks to Volker Schatz ) - else if (active_client && active_client->isShown(true) && active_client->isOnCurrentDesktop() && active_client->isOnCurrentActivity()) - c = active_client; - - if (c == NULL && !desktops.isEmpty()) - c = findDesktop(true, VirtualDesktopManager::self()->current()); - - if (c != active_client) - setActiveClient(NULL); - - if (c) - requestFocus(c); - else if (!desktops.isEmpty()) - requestFocus(findDesktop(true, VirtualDesktopManager::self()->current())); - else - focusToNull(); - - // Not for the very first time, only if something changed and there are more than 1 desktops - - //if ( effects != NULL && old_desktop != 0 && old_desktop != new_desktop ) - // static_cast( effects )->desktopChanged( old_desktop ); - if (compositing() && m_compositor) - m_compositor->addRepaintFull(); -#else Q_UNUSED(new_activity) -#endif } void Workspace::moveClientsFromRemovedDesktops() diff --git a/libs/taskmanager/CMakeLists.txt b/libs/taskmanager/CMakeLists.txt index 17cda2d3..d30aaede 100644 --- a/libs/taskmanager/CMakeLists.txt +++ b/libs/taskmanager/CMakeLists.txt @@ -31,7 +31,7 @@ set(taskmanager_LIB_SRCS ${taskmanager_LIB_SRCS} task_x11.cpp) kde4_add_library(taskmanager SHARED ${taskmanager_LIB_SRCS}) -target_link_libraries(taskmanager processcore ${KACTIVITIES_LIBRARIES} ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${X11_LIBRARIES}) +target_link_libraries(taskmanager processcore ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${X11_LIBRARIES}) if (X11_Xfixes_FOUND) target_link_libraries(taskmanager ${X11_Xfixes_LIB}) endif (X11_Xfixes_FOUND) @@ -42,8 +42,6 @@ if (X11_Xcomposite_FOUND) target_link_libraries(taskmanager ${X11_Xcomposite_LIB}) endif (X11_Xcomposite_FOUND) -include_directories(${KACTIVITIES_INCLUDE_DIR}) - if (NOT KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION) include_directories(${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kephal) target_link_libraries(taskmanager kephal) diff --git a/plasma/desktop/applets/CMakeLists.txt b/plasma/desktop/applets/CMakeLists.txt index c75edf3d..42d79938 100644 --- a/plasma/desktop/applets/CMakeLists.txt +++ b/plasma/desktop/applets/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory(kickoff) -add_subdirectory(showActivityManager) add_subdirectory(trash) #task and windowlist depend on libs/taskmanager diff --git a/plasma/desktop/applets/pager/CMakeLists.txt b/plasma/desktop/applets/pager/CMakeLists.txt index 8d3d5ed5..a4ee702f 100644 --- a/plasma/desktop/applets/pager/CMakeLists.txt +++ b/plasma/desktop/applets/pager/CMakeLists.txt @@ -1,7 +1,5 @@ project(plasma-pager) -include_directories(${KACTIVITIES_INCLUDE_DIR}) - set(pager_SRCS model.cpp pager.cpp) @@ -12,7 +10,6 @@ target_link_libraries(plasma_applet_pager ${KDE4_KIO_LIBS} ${KDE4_PLASMA_LIBS} ${KDE4_KCMUTILS_LIBRARY} - ${KACTIVITIES_LIBRARIES} ${QT_QTDECLARATIVE_LIBRARY} taskmanager) diff --git a/plasma/desktop/applets/showActivityManager/CMakeLists.txt b/plasma/desktop/applets/showActivityManager/CMakeLists.txt deleted file mode 100644 index 7c730011..00000000 --- a/plasma/desktop/applets/showActivityManager/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -project(plasma-showActivityManager) - -find_package(KDE4 REQUIRED) - -include(KDE4Defaults) - -install(DIRECTORY package/ - DESTINATION ${DATA_INSTALL_DIR}/plasma/plasmoids/org.kde.showActivityManager) - -install(FILES package/metadata.desktop - DESTINATION ${SERVICES_INSTALL_DIR} - RENAME plasma-applet-org.kde.showActivityManager.desktop) - -install(FILES activities.svgz - DESTINATION ${DATA_INSTALL_DIR}/desktoptheme/default/widgets/) diff --git a/plasma/desktop/applets/showActivityManager/Messages.sh b/plasma/desktop/applets/showActivityManager/Messages.sh deleted file mode 100644 index 43b59b23..00000000 --- a/plasma/desktop/applets/showActivityManager/Messages.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -$EXTRACTRC `find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` >> rc.cpp -$XGETTEXT `find . -name \*.qml -o -name \*.cpp` -o $podir/plasma_applet_org.kde.showActivityManager.pot -rm -f rc.cpp diff --git a/plasma/desktop/applets/showActivityManager/activities.svgz b/plasma/desktop/applets/showActivityManager/activities.svgz deleted file mode 100644 index 6d15724c..00000000 Binary files a/plasma/desktop/applets/showActivityManager/activities.svgz and /dev/null differ diff --git a/plasma/desktop/applets/showActivityManager/package/contents/ui/main.qml b/plasma/desktop/applets/showActivityManager/package/contents/ui/main.qml deleted file mode 100644 index d56c9aba..00000000 --- a/plasma/desktop/applets/showActivityManager/package/contents/ui/main.qml +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2012 Gregor Taetzner - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.graphicswidgets 0.1 as PlasmaWidgets - -Item { - id: iconContainer - property string activeSource: "Status" - property int minimumWidth: 16 - property int minimumHeight: 16 - implicitWidth: theme.iconSizes["panel"] - implicitHeight: implicitWidth - - Component.onCompleted: { - plasmoid.aspectRatioMode = "ConstrainedSquare" - } - - PlasmaCore.DataSource { - id: dataSource - engine: "org.kde.activities" - connectedSources: [activeSource] - } - - PlasmaCore.ToolTip { - id: tooltip - mainText: i18n("Show Activity Manager") - subText: i18n("Click to show the activity manager") - target: icon - image: "preferences-activities" - } - - PlasmaWidgets.IconWidget - { - id: icon - svg: "widgets/activities" - width: parent.width - height: parent.height - onClicked: - { - var service = dataSource.serviceForSource(activeSource) - var operation = service.operationDescription("toggleActivityManager") - service.startOperationCall(operation) - } - } -} - diff --git a/plasma/desktop/applets/showActivityManager/package/metadata.desktop b/plasma/desktop/applets/showActivityManager/package/metadata.desktop deleted file mode 100644 index bfd1badb..00000000 --- a/plasma/desktop/applets/showActivityManager/package/metadata.desktop +++ /dev/null @@ -1,129 +0,0 @@ -[Desktop Entry] -Name=Activities -Name[ar]=الأنشطة -Name[bg]=Дейности -Name[bs]=motor aktivnosti -Name[ca]=Activitats -Name[ca@valencia]=Activitats -Name[cs]=Aktivity -Name[da]=Aktiviteter -Name[de]=Aktivitäten -Name[el]=Δραστηριότητες -Name[en_GB]=Activities -Name[es]=Actividades -Name[et]=Tegevused -Name[eu]=Jarduerak -Name[fa]=فعالیتها -Name[fi]=Aktiviteetit -Name[fr]=Activités -Name[ga]=Gníomhaíochtaí -Name[gl]=Actividades -Name[he]=עילויות -Name[hr]=Aktivnosti -Name[hu]=Aktivitások -Name[ia]=Activitates -Name[is]=Virknistjóri -Name[it]=Attività -Name[ja]=アクティビティ -Name[kk]=Белсенділіктер -Name[km]=សកម្មភាព -Name[ko]=활동 -Name[lt]=Veiklos -Name[lv]=Aktivitātes -Name[mr]=कार्यपध्दती -Name[nb]=Aktiviteter -Name[nds]=Aktiviteten -Name[nl]=Activiteiten -Name[pa]=ਸਰਗਰਮੀਆਂ -Name[pl]=Działania -Name[pt]=Actividades -Name[pt_BR]=Atividades -Name[ro]=Activități -Name[ru]=Комнаты -Name[sk]=Aktivity -Name[sl]=Dejavnosti -Name[sr]=активности -Name[sr@ijekavian]=активности -Name[sr@ijekavianlatin]=aktivnosti -Name[sr@latin]=aktivnosti -Name[sv]=Aktiviteter -Name[tr]=Etkinlikler -Name[ug]=پائالىيەتلەر -Name[uk]=Простори дій -Name[vi]=Hoạt động -Name[wa]=Activités -Name[x-test]=xxActivitiesxx -Name[zh_CN]=活动 -Name[zh_TW]=活動 -Comment=Shows the activity manager -Comment[bg]=Управление на дейностите -Comment[bs]=Prikazuje menadžer aktivnosti -Comment[ca]=Mostra el gestor d'activitats -Comment[ca@valencia]=Mostra el gestor d'activitats -Comment[cs]=Zobrazí správce aktivit -Comment[da]=Vis aktivitetshåndtering -Comment[de]=Zeigt die Aktivitätenverwaltung an -Comment[el]=Εμφανίζει το διαχειριστή δραστηριοτήτων -Comment[en_GB]=Shows the activity manager -Comment[es]=Muestra el gestor de actividades -Comment[et]=Tegevuste halduri näitamine -Comment[eu]=Jarduera-kudeatzailea erakusten du -Comment[fi]=Näyttää aktiviteettienhallinnan -Comment[fr]=Affiche le gestionnaire d'activités -Comment[ga]=Taispeáin an bainisteoir gníomhaíochta -Comment[gl]=Mostra o xestor da actividade -Comment[he]=מציג את מנהל פעילויות -Comment[hr]=Prikazuje upravitelja aktivnosti -Comment[hu]=Aktivitáskezelő megjelenítése -Comment[ia]=Monstra le gerente de activitate -Comment[is]=Birtir virknistjóra -Comment[it]=Mostra il gestore delle attività -Comment[kk]=Белсенділік менеджері көрсетеді -Comment[km]=បង្ហាញ​កម្មវិធី​គ្រប់គ្រង​សកម្មភាព​ -Comment[ko]=활동 관리자 보이기 -Comment[lt]=Rodo veiklų tvarkyklę -Comment[lv]=Rāda aktivitāšu pārvaldnieku -Comment[mr]=कार्यपध्दती व्यवस्थापक दर्शवितो -Comment[nb]=Viser aktivitetshåndtereren -Comment[nds]=Wiest den Aktivitetenpleger -Comment[nl]=Toont de activiteitenbeheerder -Comment[pa]=ਸਰਗਰਮੀ ਮੈਨੇਜਰ ਵੇਖਾਉਂਦਾ ਹੈ -Comment[pl]=Pokazuje menadżera działań -Comment[pt]=Mostra o gestor de actividades -Comment[pt_BR]=Mostra o gerenciador de atividades -Comment[ro]=Arată Gestionarul de activități -Comment[ru]=Показывает диспетчер комнат -Comment[sk]=Ukáže správcu aktivít -Comment[sl]=Prikaže upravljalnika dejavnosti -Comment[sr]=Приказује менаџер активности -Comment[sr@ijekavian]=Приказује менаџер активности -Comment[sr@ijekavianlatin]=Prikazuje menadžer aktivnosti -Comment[sr@latin]=Prikazuje menadžer aktivnosti -Comment[sv]=Visar Aktivitetshanteraren -Comment[tr]=Etkinlik yöneticisini gösterir -Comment[ug]=پائالىيەت باشقۇرغۇچنى كۆرسىتىدۇ -Comment[uk]=Показує вікно керування просторами дій -Comment[wa]=Mostrer l' manaedjeu des activités -Comment[x-test]=xxShows the activity managerxx -Comment[zh_CN]=显示活动管理器 -Comment[zh_TW]=顯示活動管理員 -Icon=preferences-activities -Type=Service - -X-Plasma-API=declarativeappletscript -X-Plasma-MainScript=ui/main.qml -X-Plasma-DefaultSize=200,100 -X-Plasma-Requires-FileDialog=Unused -X-Plasma-Requires-LaunchApp=Unused - -X-KDE-PluginInfo-Author=Gregor Tätzner -X-KDE-PluginInfo-Email=plasma-devel@kde.org -X-KDE-PluginInfo-Website=http://plasma.kde.org/ -X-KDE-PluginInfo-Category=Windows and Tasks -X-KDE-PluginInfo-Name=org.kde.showActivityManager -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-EnabledByDefault=true - -X-KDE-ServiceTypes=Plasma/Applet diff --git a/plasma/desktop/shell/CMakeLists.txt b/plasma/desktop/shell/CMakeLists.txt index 66796806..495f5f25 100644 --- a/plasma/desktop/shell/CMakeLists.txt +++ b/plasma/desktop/shell/CMakeLists.txt @@ -2,20 +2,13 @@ include_directories(${KDEBASE_WORKSPACE_SOURCE_DIR}/libs ${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/plasmagenericshell ${KDEBASE_WORKSPACE_SOURCE_DIR}/plasma/desktop/shell/scripting ${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kephal - ${KACTIVITIES_INCLUDE_DIR} ) add_subdirectory(configupdates) -set(activitymanager_SRCS - activitymanager/activitymanager.cpp - activitymanager/kidenticongenerator.cpp -) - set(plasma_SRCS accessibility/accessiblefactory.cpp accessibility/accessibleplasmaview.cpp - activity.cpp scripting/desktopscriptengine.cpp scripting/panel.cpp checkbox.cpp @@ -34,7 +27,6 @@ set(plasma_SRCS positioningruler.cpp klistconfirmationdialog.cpp ${wallpaper_SRCS} - ${activitymanager_SRCS} ) kde4_add_kcfg_files(plasma_SRCS data/plasma-shell-desktop.kcfgc) @@ -49,7 +41,7 @@ kde4_add_app_icon(plasma_SRCS "${KDE4_INSTALL_DIR}/share/icons/oxygen/*/apps/pla kde4_add_kdeinit_executable(plasma-desktop ${plasma_SRCS}) -target_link_libraries(kdeinit_plasma-desktop ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KTEXTEDITOR_LIBS} ${KDE4_KIDLETIME_LIBS} ${QT_QTSCRIPT_LIBRARY} kworkspace ${KACTIVITIES_LIBRARIES} plasmagenericshell ${QT_QTDECLARATIVE_LIBRARY}) +target_link_libraries(kdeinit_plasma-desktop ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KFILE_LIBS} ${KDE4_KTEXTEDITOR_LIBS} ${KDE4_KIDLETIME_LIBS} ${QT_QTSCRIPT_LIBRARY} kworkspace plasmagenericshell ${QT_QTDECLARATIVE_LIBRARY}) if(UNIX AND Q_WS_X11) target_link_libraries(kdeinit_plasma-desktop ${X11_LIBRARIES}) @@ -67,11 +59,9 @@ install(TARGETS plasma-desktop ${INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES data/plasma.desktop data/plasma-desktop.desktop DESTINATION ${AUTOSTART_INSTALL_DIR}) install(FILES data/plasma-shell-desktop.kcfg DESTINATION ${KCFG_INSTALL_DIR}) install(FILES data/plasma-themes.knsrc DESTINATION ${CONFIG_INSTALL_DIR}) -install(FILES activitymanager/activities.knsrc DESTINATION ${CONFIG_INSTALL_DIR}) install(FILES data/plasma-desktop.notifyrc DESTINATION ${DATA_INSTALL_DIR}/plasma-desktop) install(FILES data/layouts/00-defaultLayout.js DESTINATION ${DATA_INSTALL_DIR}/plasma-desktop/init) install(FILES data/plasma-desktop-js.xml DESTINATION ${DATA_INSTALL_DIR}/katepart/syntax/) -install(DIRECTORY activitymanager/package/ DESTINATION ${DATA_INSTALL_DIR}/plasma/packages/org.kde.desktop.activitymanager) MACRO(INSTALL_PLASMA_JAVASCRIPT_TEMPLATE dir addonPrefix) configure_file(${dir}/metadata.desktop ${CMAKE_CURRENT_BINARY_DIR}/plasma-layout-${addonPrefix}.desktop COPYONLY) @@ -82,7 +72,6 @@ ENDMACRO(INSTALL_PLASMA_JAVASCRIPT_TEMPLATE) INSTALL_PLASMA_JAVASCRIPT_TEMPLATE(data/layouts/org.kde.plasma-desktop.defaultPanel org.kde.plasma-desktop.defaultPanel) INSTALL_PLASMA_JAVASCRIPT_TEMPLATE(data/layouts/org.kde.plasma-desktop.findWidgets org.kde.plasma-desktop.findWidgets) -INSTALL_PLASMA_JAVASCRIPT_TEMPLATE(data/layouts/org.kde.plasma-desktop.photoActivity org.kde.plasma-desktop.photoActivity) INSTALL_PLASMA_JAVASCRIPT_TEMPLATE(data/layouts/org.kde.plasma-desktop.desktopIcons org.kde.plasma-desktop.desktopIcons) INSTALL_PLASMA_JAVASCRIPT_TEMPLATE(data/layouts/org.kde.plasma-desktop.SaL org.kde.plasma-desktop.SaL) diff --git a/plasma/desktop/shell/activitymanager/Messages.sh b/plasma/desktop/shell/activitymanager/Messages.sh deleted file mode 100644 index a40b5ff5..00000000 --- a/plasma/desktop/shell/activitymanager/Messages.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -$XGETTEXT `find . -name \*.qml` -L Java -o $podir/plasma_package_org.kde.desktop.activitymanager.pot -$XGETTEXT `find . -name \*.cpp` -j -o $podir/plasma_package_org.kde.desktop.activitymanager.pot -rm -f rc.cpp diff --git a/plasma/desktop/shell/activitymanager/activities.knsrc b/plasma/desktop/shell/activitymanager/activities.knsrc deleted file mode 100644 index 900ba05f..00000000 --- a/plasma/desktop/shell/activitymanager/activities.knsrc +++ /dev/null @@ -1,7 +0,0 @@ -[KNewStuff3] -ProvidersUrl=http://download.kde.org/ocs/providers.xml -Categories=Plasma Activity Template -StandardResource=tmp -InstallationCommand=plasmapkg -t layout-template -i %f -UninstallCommand=plasmapkg -t layout-template -r %f - diff --git a/plasma/desktop/shell/activitymanager/activitymanager.cpp b/plasma/desktop/shell/activitymanager/activitymanager.cpp deleted file mode 100644 index 9a8d8432..00000000 --- a/plasma/desktop/shell/activitymanager/activitymanager.cpp +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Copyright (C) 2007 by Ivan Cukic - * Copyright (C) 2009 by Ana Cecília Martins - * Copyright 2010 Chani Armitage - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library/Lesser General Public License - * version 2, or (at your option) any later version, as published by the - * Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library/Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activitymanager.h" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "kidenticongenerator.h" -#include "plasmaapp.h" - -#include -#include "scripting/desktopscriptengine.h" - -class ActivityManagerPrivate -{ - -public: - ActivityManagerPrivate(ActivityManager *w) - : q(w), - containment(0) - { - } - - void init(Plasma::Location location); - void containmentDestroyed(); - void setLocation(Plasma::Location location); - - Qt::Orientation orientation; - Plasma::Location location; - ActivityManager *q; - Plasma::Containment *containment; - Plasma::DeclarativeWidget *declarativeWidget; - Plasma::Package *package; - - QGraphicsLinearLayout *mainLayout; -}; - -void ActivityManagerPrivate::init(Plasma::Location loc) -{ - location = loc; - //init widgets - if (loc == Plasma::LeftEdge || loc == Plasma::RightEdge) { - orientation = Qt::Vertical; - } else { - orientation = Qt::Horizontal; - } - - mainLayout = new QGraphicsLinearLayout(Qt::Vertical); - mainLayout->setContentsMargins(0, 0, 0, 0); - mainLayout->setSpacing(0); - - - Plasma::PackageStructure::Ptr structure = Plasma::PackageStructure::load("Plasma/Generic"); - QString path; - const QString pluginName = "org.kde.desktop.activitymanager"; - - QString subPath = structure->defaultPackageRoot() + pluginName + '/'; - path = KStandardDirs::locate("data", subPath + "metadata.desktop"); - if (path.isEmpty()) { - path = KStandardDirs::locate("data", subPath); - } else { - path.remove(QString("metadata.desktop")); - } - - if (!path.endsWith('/')) { - path.append('/'); - } - structure->setPath(path); - - package = new Plasma::Package(path, pluginName, structure); - KGlobal::locale()->insertCatalog("plasma_package_" + pluginName); - - declarativeWidget = new Plasma::DeclarativeWidget(q); - declarativeWidget->setInitializationDelayed(true); - declarativeWidget->setQmlPath(package->filePath("mainscript")); - mainLayout->addItem(declarativeWidget); - - //the activitymanager class will be directly accessible from qml - if (declarativeWidget->engine()) { - QDeclarativeContext *ctxt = declarativeWidget->engine()->rootContext(); - if (ctxt) { - ctxt->setContextProperty("activityManager", q); - } - } - - q->setLayout(mainLayout); -} - -void ActivityManagerPrivate::setLocation(Plasma::Location loc) -{ - Qt::Orientation orient; - if (loc == Plasma::LeftEdge || loc == Plasma::RightEdge) { - orient = Qt::Vertical; - } else { - orient = Qt::Horizontal; - } - - if (orientation == orient) { - return; - } - - location = loc; - emit q->orientationChanged(); -} - -void ActivityManagerPrivate::containmentDestroyed() -{ - containment = 0; -} - -//ActivityBar - -ActivityManager::ActivityManager(Plasma::Location loc, QGraphicsItem *parent) - :QGraphicsWidget(parent), - d(new ActivityManagerPrivate(this)) -{ - d->init(loc); -} - -ActivityManager::ActivityManager(QGraphicsItem *parent) - :QGraphicsWidget(parent), - d(new ActivityManagerPrivate(this)) -{ - d->init(Plasma::BottomEdge); -} - -ActivityManager::~ActivityManager() -{ - delete d; -} - -void ActivityManager::setLocation(Plasma::Location loc) -{ - d->setLocation(loc); - emit(locationChanged(loc)); -} - -ActivityManager::Location ActivityManager::location() -{ - return (ActivityManager::Location)d->location; -} - -Qt::Orientation ActivityManager::orientation() const -{ - return d->orientation; -} - -QPixmap ActivityManager::pixmapForActivity(const QString &activityId) -{ - return KIdenticonGenerator::self()->generatePixmap(KIconLoader::SizeHuge, activityId); -} - -void ActivityManager::cloneCurrentActivity() -{ - PlasmaApp::self()->cloneCurrentActivity(); -} - -void ActivityManager::createActivity(const QString &pluginName) -{ - PlasmaApp::self()->createActivity(pluginName); -} - -void ActivityManager::createActivityFromScript(const QString &script, const QString &name, const QString &icon, const QStringList &startupApps) -{ - PlasmaApp::self()->createActivityFromScript(script, name, icon, startupApps); -} - -void ActivityManager::downloadActivityScripts() -{ - KNS3::DownloadDialog *dialog = new KNS3::DownloadDialog( "activities.knsrc", 0 ); - connect(dialog, SIGNAL(accepted()), this, SIGNAL(activityTypeActionsChanged())); - connect(dialog, SIGNAL(accepted()), dialog, SLOT(deleteLater())); - dialog->show(); -} - -void ActivityManager::setContainment(Plasma::Containment *containment) -{ - kDebug() << "Setting containment to" << containment; - if (d->containment != containment) { - if (d->containment) { - d->containment->disconnect(this); - } - - d->containment = containment; - - if (d->containment) { - connect(d->containment, SIGNAL(destroyed(QObject*)), this, SLOT(containmentDestroyed())); - } - } -} - -QList ActivityManager::activityTypeActions() -{ - QList actions; - - QMap sorted; //qmap sorts alphabetically - - //regular plugins - KPluginInfo::List plugins = Plasma::Containment::listContainmentsOfType("desktop"); - foreach (const KPluginInfo& info, plugins) { - if (info.property("NoDisplay").toBool()) { - continue; - } - QVariantHash actionDescription; - //skip desktop, it's in the top level menu - if (info.pluginName() != "desktop") { - actionDescription["icon"] = info.icon(); - actionDescription["text"] = info.name(); - actionDescription["separator"] = false; - actionDescription["pluginName"] = info.pluginName(); - sorted.insert(info.name(), actionDescription); - } - } - - //templates - const QString constraint = QString("[X-Plasma-Shell] == '%1' and 'desktop' ~in [X-Plasma-ContainmentCategories]") - .arg(KGlobal::mainComponent().componentName()); - KService::List templates = KServiceTypeTrader::self()->query("Plasma/LayoutTemplate", constraint); - foreach (const KService::Ptr &service, templates) { - KPluginInfo info(service); - Plasma::PackageStructure::Ptr structure(new WorkspaceScripting::LayoutTemplatePackageStructure); - const QString path = KStandardDirs::locate("data", structure->defaultPackageRoot() + '/' + info.pluginName() + '/'); - if (!path.isEmpty()) { - Plasma::Package package(path, structure); - const QString scriptFile = package.filePath("mainscript"); - const QStringList startupApps = service->property("X-Plasma-ContainmentLayout-ExecuteOnCreation", QVariant::StringList).toStringList(); - - if (!scriptFile.isEmpty() || !startupApps.isEmpty()) { - QVariantHash actionDescription; - - actionDescription["icon"] = info.icon(); - actionDescription["text"] = info.name(); - actionDescription["separator"] = false; - actionDescription["pluginName"] = QString(); - actionDescription["scriptFile"] = scriptFile; - actionDescription["startupApps"] = startupApps; - - sorted.insert(info.name(), actionDescription); - } - } - } - - //set up sorted menu - foreach (QVariantHash actionDescription, sorted) { - actions << actionDescription; - } - - //separator - { - QVariantHash actionDescription; - actionDescription["separator"] = true; - actions << actionDescription; - } - - //ghns - //FIXME - { - QVariantHash actionDescription; - actionDescription["icon"] = "get-hot-new-stuff"; - actionDescription["text"] = i18n("Get New Templates..."); - actionDescription["separator"] = false; - actions << actionDescription; - } - - return actions; -} - -QString ActivityManager::chooseIcon() const -{ - KIconDialog *dialog = new KIconDialog; - dialog->setup(KIconLoader::Desktop); - dialog->setProperty("DoNotCloseController", true); - KWindowSystem::setOnDesktop(dialog->winId(), KWindowSystem::currentDesktop()); - dialog->showDialog(); - KWindowSystem::forceActiveWindow(dialog->winId()); - QString icon = dialog->openDialog(); - dialog->deleteLater(); - return icon; -} - -bool ActivityManager::canAddActivities() const -{ - return KAuthorized::authorize("plasma-desktop/add_activities"); -} - -bool ActivityManager::canAddWidgets() const -{ - return d->containment && d->containment->corona()->immutability() == Plasma::Mutable; -} - -#include "activitymanager.moc" diff --git a/plasma/desktop/shell/activitymanager/activitymanager.h b/plasma/desktop/shell/activitymanager/activitymanager.h deleted file mode 100644 index 44885ef8..00000000 --- a/plasma/desktop/shell/activitymanager/activitymanager.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2010 by Chani Armitage - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library/Lesser General Public License - * version 2, or (at your option) any later version, as published by the - * Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library/Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITYMANAGER_H -#define ACTIVITYMANAGER_H - -#include -#include - -namespace Plasma -{ -class Corona; -class Containment; -} -class ActivityManagerPrivate; - -class ActivityManager : public QGraphicsWidget -{ - Q_OBJECT - /** - * list of all activity creation actions (ie new desktop, new search and launch, etc) - */ - Q_PROPERTY(QList activityTypeActions READ activityTypeActions NOTIFY activityTypeActionsChanged) - - /** - * Plasma location of the panel containment the controller is associated to - */ - Q_PROPERTY(Location location READ location NOTIFY locationChanged) - Q_ENUMS(Location) - - /** - * Orientation the controller will be disaplayed, depends from location - */ - Q_PROPERTY(Qt::Orientation orientation READ orientation NOTIFY orientationChanged) - - Q_PROPERTY(bool canAddActivities READ canAddActivities CONSTANT) - Q_PROPERTY(bool canAddWidgets READ canAddWidgets CONSTANT) - -public: - /** - * The Location enumeration describes where on screen an element, such as an - * Applet or its managing container, is positioned on the screen. - **/ - enum Location { - Floating = 0, /**< Free floating. Neither geometry or z-ordering - is described precisely by this value. */ - Desktop, /**< On the planar desktop layer, extending across - the full screen from edge to edge */ - FullScreen, /**< Full screen */ - TopEdge, /**< Along the top of the screen*/ - BottomEdge, /**< Along the bottom of the screen*/ - LeftEdge, /**< Along the left side of the screen */ - RightEdge /**< Along the right side of the screen */ - }; - - explicit ActivityManager(Plasma::Location loc, QGraphicsItem *parent=0); - ActivityManager(QGraphicsItem *parent=0); - ~ActivityManager(); - - /** - * Changes the current containment - * you've got to call this at least once so that it can access the corona - * FIXME if you can use scene() as corona, get rid of this - */ - void setContainment(Plasma::Containment *containment); - - void setLocation(Plasma::Location loc); - - //FIXME: it's asymmetric due to the problems of QML of exporting enums - ActivityManager::Location location(); - - Qt::Orientation orientation() const; - - QList activityTypeActions(); - - Q_INVOKABLE QPixmap pixmapForActivity(const QString &activityId); - Q_INVOKABLE void cloneCurrentActivity(); - Q_INVOKABLE void createActivity(const QString &pluginName); - Q_INVOKABLE void createActivityFromScript(const QString &script, const QString &name, const QString &icon, const QStringList &startupApps); - Q_INVOKABLE void downloadActivityScripts(); - Q_INVOKABLE QString chooseIcon() const; - - bool canAddActivities() const; - bool canAddWidgets() const; - -Q_SIGNALS: - void locationChanged(Plasma::Location loc); - void orientationChanged(); - void closeClicked(); - void addWidgetsRequested(); - void activityTypeActionsChanged(); - -private: - Q_PRIVATE_SLOT(d, void containmentDestroyed()) - - ActivityManagerPrivate * const d; - friend class ActivityManagerPrivate; - -}; - -#endif diff --git a/plasma/desktop/shell/activitymanager/kidenticongenerator.cpp b/plasma/desktop/shell/activitymanager/kidenticongenerator.cpp deleted file mode 100644 index 53ec7838..00000000 --- a/plasma/desktop/shell/activitymanager/kidenticongenerator.cpp +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Copyright 2010 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library/Lesser General Public License - * version 2, or (at your option) any later version, as published by the - * Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library/Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "kidenticongenerator.h" - -#include -#include -#include -#include - -#include - -#include -#include - -#define VALUE_LIMIT_UP 192 -#define VALUE_LIMIT_DOWN 64 - -class KIdenticonGenerator::Private { -public: - QPixmap generatePattern(int size, quint32 hash, QIcon::Mode mode); - - QString elementName(const QString & element, QIcon::Mode mode); - QColor colorForHash(quint32 hash) const; - quint32 hash(const QString & data); - - static KIdenticonGenerator * instance; - - Plasma::Svg shapes; - Plasma::Svg theme; -}; - -QPixmap KIdenticonGenerator::Private::generatePattern(int size, quint32 hash, QIcon::Mode mode) -{ - // We are dividing the pixmap into 9 blocks - 3 x 3 - int blockSize = size / 3; - - // pulling parts of the hash - quint32 tmp = hash; - - quint8 block[4]; - block[0] = tmp & 31; tmp >>= 5; - block[1] = tmp & 31; tmp >>= 5; - block[2] = tmp & 31; tmp >>= 5; - - // Painting alpha channel - QPixmap pixmapAlpha(size, size); - pixmapAlpha.fill(Qt::black); - - QPainter painterAlpha(& pixmapAlpha); - - QRectF rect(0, 0, blockSize + 0.5, blockSize + 0.5); - - for (int i = 0; i < 4; i++) { - // Painting the corner item - rect.moveTopLeft(QPoint(0, 0)); - shapes.paint(& painterAlpha, rect, "shape" + QString::number(block[0] + 1)); - - // Painting side item - rect.moveTopLeft(QPoint(blockSize, 0)); - shapes.paint(& painterAlpha, rect, "shape" + QString::number(block[1] + 1)); - - // Rotating the canvas to paint other edges - painterAlpha.translate(size, 0); - painterAlpha.rotate(90); - } - - // Painting center item - rect.moveTopLeft(QPoint(blockSize, blockSize)); - shapes.paint(& painterAlpha, rect, "shape" + QString::number(block[2] + 1)); - - painterAlpha.end(); - - // Painting final pixmap - QPixmap pixmapResult(size, size); - - - pixmapResult.fill(Qt::transparent); - - // QRadialGradient gradient(50, 50, 100); - // gradient.setColorAt(0, color.lighter()); - // gradient.setColorAt(1, color.darker()); - - QPainter resultPainter(& pixmapResult); - // resultPainter.fillRect(0, 0, size, size, gradient); - theme.paint(& resultPainter, QRect(0, 0, size, size), elementName("content", mode)); - - resultPainter.end(); - - pixmapResult.setAlphaChannel(pixmapAlpha); - - // QImage itmp = pixmapResult.toImage(); - // KIconEffect::colorize(itmp, colorForHash(hash), 1.0); - // pixmapResult = pixmapResult.fromImage(itmp); - - return pixmapResult; -} - -QColor KIdenticonGenerator::Private::colorForHash(quint32 hash) const -{ - // Color is chosen according to hash - QColor color; - - // Getting the value from color theme, but we must restrain it to - // values in range from VALUE_LIMIT_DOWN to VALUE_LIMIT_UP - - int value = Plasma::Theme::defaultTheme()->color(Plasma::Theme::TextColor).value(); - if (value < VALUE_LIMIT_DOWN) { - value = VALUE_LIMIT_DOWN; - } else if (value > VALUE_LIMIT_UP) { - value = VALUE_LIMIT_UP; - } - - color.setHsv( - hash % 359 + 1, // hue depending on hash - 250, // high saturation level - value - ); - - return color; - -} - -QString KIdenticonGenerator::Private::elementName(const QString & element, QIcon::Mode mode) -{ - QString prefix; - - switch (mode) { - case QIcon::Normal: - prefix = "normal-"; - break; - - case QIcon::Disabled: - prefix = "disabled-"; - break; - - case QIcon::Selected: - prefix = "selected-"; - break; - - case QIcon::Active: - prefix = "active-"; - break; - - default: - break; - - } - - if (theme.hasElement(prefix + element)) { - return prefix + element; - } else { - return element; - } -} - -quint32 KIdenticonGenerator::Private::hash(const QString & data) -{ - // qHash function doesn't give random enough results - // and gives similar hashes for similar strings. - - QByteArray bytes = QCryptographicHash::hash(data.toUtf8(), QCryptographicHash::Md5); - - // Generating hash - quint32 hash = 0; - - char * hashBytes = (char *) & hash; - for (int i = 0; i < bytes.size(); i++) { - // Using XOR for mixing the bytes because - // it is fast and cryptographically safe - // (more than enough for our use-case) - hashBytes[i % 4] ^= bytes.at(i); - } - - return hash; -} - -KIdenticonGenerator * KIdenticonGenerator::Private::instance = NULL; - -KIdenticonGenerator * KIdenticonGenerator::self() -{ - if (!Private::instance) { - Private::instance = new KIdenticonGenerator(); - } - - return Private::instance; -} - -KIdenticonGenerator::KIdenticonGenerator() - : d(new Private()) -{ - // loading SVGs - d->shapes.setImagePath("widgets/identiconshapes"); - d->shapes.setContainsMultipleImages(true); - - d->theme.setImagePath("widgets/identicontheme"); - d->theme.setContainsMultipleImages(true); -} - -#define generateIconModes( PARAM ) \ - for (int omode = QIcon::Normal; omode <= QIcon::Selected; omode++) { \ - QIcon::Mode mode = (QIcon::Mode)omode; \ - result.addPixmap(generatePixmap(size, PARAM, mode), mode); \ - } - -QIcon KIdenticonGenerator::generate(int size, quint32 hash) -{ - QIcon result; - generateIconModes(hash); - return result; -} - -QIcon KIdenticonGenerator::generate(int size, const QString & data) -{ - QIcon result; - generateIconModes(data); - return result; -} - -QIcon KIdenticonGenerator::generate(int size, const QIcon & icon) -{ - QIcon result; - generateIconModes(icon); - return result; -} - -QPixmap KIdenticonGenerator::generatePixmap(int size, QString id, QIcon::Mode mode) -{ - return generatePixmap(size, d->hash(id), mode); -} - -QPixmap KIdenticonGenerator::generatePixmap(int size, quint32 hash, QIcon::Mode mode) -{ - QPixmap pixmap(size, size); - pixmap.fill(Qt::transparent); - - // Painting background and the pattern - { - QPainter painter(& pixmap); - d->theme.paint(& painter, QRect(0, 0, size, size), d->elementName("background", mode)); - painter.drawPixmap(0, 0, d->generatePattern(size, hash, mode)); - painter.end(); - } - - // coloring the painted image - QImage itmp = pixmap.toImage(); - KIconEffect::colorize(itmp, d->colorForHash(hash), 1.0); - if (mode == QIcon::Disabled) { - KIconEffect::toGray(itmp, 0.7); - } - pixmap = pixmap.fromImage(itmp); - - // Drawing the overlay - { - QPainter painter(& pixmap); - d->theme.paint(& painter, QRect(0, 0, size, size), d->elementName("overlay", mode)); - } - - return pixmap; -} - -QPixmap KIdenticonGenerator::generatePixmap(int size, const QIcon & icon, QIcon::Mode mode) -{ - QPixmap pixmap(size, size); - pixmap.fill(Qt::transparent); - - QRect paintRect(0, 0, size, size); - - // Painting background and the pattern - QPainter painter(& pixmap); - d->theme.paint(& painter, QRect(0, 0, size, size), d->elementName("background", mode)); - - icon.paint(& painter, paintRect, Qt::AlignCenter, mode); - - painter.end(); - - return pixmap; -} - diff --git a/plasma/desktop/shell/activitymanager/kidenticongenerator.h b/plasma/desktop/shell/activitymanager/kidenticongenerator.h deleted file mode 100644 index bbf31ada..00000000 --- a/plasma/desktop/shell/activitymanager/kidenticongenerator.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2010 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library/Lesser General Public License - * version 2, or (at your option) any later version, as published by the - * Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library/Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KIDENTICONGENERATOR_H -#define KIDENTICONGENERATOR_H - -#include -#include - -#include - -class KIdenticonGenerator { -public: - static KIdenticonGenerator * self(); - - QPixmap generatePixmap(int size, QString id, QIcon::Mode mode = QIcon::Normal); - QPixmap generatePixmap(int size, quint32 hash, QIcon::Mode mode = QIcon::Normal); - QPixmap generatePixmap(int size, const QIcon & icon, QIcon::Mode mode = QIcon::Normal); - - QIcon generate(int size, const QString & data); - QIcon generate(int size, quint32 hash); - QIcon generate(int size, const QIcon & icon); - -private: - KIdenticonGenerator(); - - class Private; - Private * const d; -}; - -#endif // KIDENTICONGENERATOR_H diff --git a/plasma/desktop/shell/activitymanager/package/contents/ui/.directory b/plasma/desktop/shell/activitymanager/package/contents/ui/.directory deleted file mode 100644 index ec379397..00000000 --- a/plasma/desktop/shell/activitymanager/package/contents/ui/.directory +++ /dev/null @@ -1,5 +0,0 @@ -[Dolphin] -SortOrder=1 -Sorting=2 -Timestamp=2012,11,28,16,51,54 -Version=3 diff --git a/plasma/desktop/shell/activitymanager/package/contents/ui/ActivityDelegate.qml b/plasma/desktop/shell/activitymanager/package/contents/ui/ActivityDelegate.qml deleted file mode 100644 index ac3d6240..00000000 --- a/plasma/desktop/shell/activitymanager/package/contents/ui/ActivityDelegate.qml +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Copyright 2011 Marco Martin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 1.1 -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.plasma.components 0.1 as PlasmaComponents -import org.kde.qtextracomponents 0.1 - -PlasmaCore.FrameSvgItem { - id: background - - width: Math.max((delegateStack.currentPage ? delegateStack.currentPage.implicitWidth : 0) + margins.left + margins.right, list.delegateWidth) - height: Math.max((delegateStack.currentPage ? delegateStack.currentPage.implicitHeight : 0) + margins.top + margins.bottom, list.delegateHeight) - - imagePath: "widgets/viewitem" - prefix: Current ? (mainMouseArea.containsMouse ? "selected+hover" : "selected") : (mainMouseArea.containsMouse ? "hover" : "normal") - - ListView.onRemove: SequentialAnimation { - PropertyAction { - target: background - property: "ListView.delayRemove" - value: true - } - NumberAnimation { - target: background - property: "y" - to: background.height - duration: 250 - easing.type: Easing.InOutQuad - } - PropertyAction { - target: background - property: "ListView.delayRemove" - value: false - } - } - - ListView.onAdd: NumberAnimation { - target: background - property: "y" - from: -background.height - to: 0 - duration: 250 - easing.type: Easing.InOutQuad - } - - Behavior on width { - NumberAnimation { duration: 250 } - } - Behavior on height { - NumberAnimation { duration: 250 } - } - - PlasmaComponents.PageStack { - id: delegateStack - anchors { - fill: parent - leftMargin: background.margins.left - topMargin: background.margins.top - rightMargin: background.margins.right - bottomMargin: background.margins.bottom - } - clip: true - initialPage: iconComponent - } - - property Item mainMouseArea - Component { - id: iconComponent - Item { - anchors.fill: parent - - MouseArea { - id: mouseArea - anchors.fill: parent - hoverEnabled: true - - onClicked: { - var activityId = model["DataEngineSource"] - var service = activitySource.serviceForSource(activityId) - var operation = service.operationDescription("setCurrent") - service.startOperationCall(operation) - } - - Component.onCompleted: mainMouseArea = mouseArea - - QIconItem { - id: iconWidget - anchors.verticalCenter: parent.verticalCenter - x: y - width: theme.hugeIconSize - height: width - icon: QIcon(Icon) - } - QPixmapItem { - anchors.fill: iconWidget - pixmap: Icon ? undefined : activityManager.pixmapForActivity(model["DataEngineSource"]) - visible: Icon == "" - } - QIconItem { - width: theme.mediumIconSize - height: width - anchors.centerIn: iconWidget - icon: QIcon("media-playback-start") - visible: model["State"] != "Running" - } - Column { - anchors { - left: iconWidget.right - right: parent.right - verticalCenter: parent.verticalCenter - - leftMargin: background.margins.left - } - PlasmaComponents.Label { - id: titleText - text: Name - anchors.left: parent.left - anchors.right: parent.right - horizontalAlignment: Text.AlignHCenter - height: paintedHeight - wrapMode: Text.WordWrap - //go with nowrap only if there is a single word too long - onPaintedWidthChanged: { - wrapTimer.restart() - } - Timer { - id: wrapTimer - interval: 200 - onTriggered: { - //give it some pixels of tolerance - if (titleText.paintedWidth > titleText.width + 3) { - titleText.wrapMode = Text.NoWrap - titleText.elide = Text.ElideRight - } else { - titleText.wrapMode = Text.WordWrap - titleText.elide = Text.ElideNone - } - } - } - } - Row { - id: buttonsRow - visible: model["State"] == "Running" - anchors.horizontalCenter: parent.horizontalCenter - - PlasmaComponents.ToolButton { - id: configureButton - flat: false - iconSource: "configure" - onClicked: delegateStack.push(configurationComponent) - } - PlasmaComponents.ToolButton { - visible: !model["Current"] - iconSource: "media-playback-stop" - flat: false - onClicked: { - var activityId = model["DataEngineSource"] - var service = activitySource.serviceForSource(activityId) - var operation = service.operationDescription("stop") - service.startOperationCall(operation) - } - } - } - PlasmaComponents.ToolButton { - visible: model["State"] != "Running" - iconSource: "edit-delete" - text: i18n("Delete") - width: Math.min(implicitWidth, parent.width) - anchors.horizontalCenter: parent.horizontalCenter - onClicked: delegateStack.push(confirmationComponent) - } - } - } - } - } - - Component { - id: confirmationComponent - MouseArea { - anchors.fill: parent - - //20 is just a number arbitrarly low, won't be followed - implicitWidth: (activityManager.orientation == Qt.Horizontal) ? confirmationLabel.paintedWidth : 20 - implicitHeight: (activityManager.orientation == Qt.Horizontal) ? 20 : confirmationColumn.childrenRect.height - - onClicked: delegateStack.pop() - Column { - id: confirmationColumn - anchors.fill: parent - spacing: 4 - PlasmaComponents.Label { - id: confirmationLabel - anchors { - left: parent.left - right: parent.right - } - horizontalAlignment: Text.AlignHCenter - text: i18n("Remove activity %1?", Name) - wrapMode: (activityManager.orientation == Qt.Horizontal) ? Text.NoWrap : Text.Wrap - } - - PlasmaComponents.Button { - anchors.horizontalCenter: parent.horizontalCenter - text: i18n("Remove") - onClicked: { - var activityId = model["DataEngineSource"] - var service = activitySource.serviceForSource(activityId) - var operation = service.operationDescription("remove") - operation["Id"] = activityId - service.startOperationCall(operation) - } - } - PlasmaComponents.Button { - anchors.horizontalCenter: parent.horizontalCenter - text: i18n("Cancel") - onClicked: delegateStack.pop() - } - } - } - } - - Component { - id: configurationComponent - MouseArea { - anchors.fill: parent - - //20 is just a number arbitrarly low, won't be followed - implicitWidth: (activityManager.orientation == Qt.Horizontal) ? (iconButton.x*3 + iconButton.width + theme.defaultFont.mSize.width * 12) : 20 - // set the implicit height to a meaningful value, otherwise the layouting goes a little crazy :) - implicitHeight: iconButton.y*3 - - onClicked: delegateStack.pop() - PlasmaComponents.Button { - id: iconButton - iconSource: Icon - anchors { - top: configurationLayout.top - bottom: configurationLayout.bottom - } - x: y - width: height - QPixmapItem { - anchors.centerIn: parent - width: theme.largeIconSize - height: width - smooth: true - visible: iconButton.iconSource == "" - pixmap: visible ? undefined : activityManager.pixmapForActivity(model["DataEngineSource"]) - } - onClicked: iconSource = activityManager.chooseIcon() - } - Column { - id: configurationLayout - anchors { - left: iconButton.right - verticalCenter: parent.verticalCenter - right: parent.right - leftMargin: iconButton.x - rightMargin: iconButton.x - } - spacing: 4 - PlasmaComponents.TextField { - id: activityNameField - text: Name - anchors { - left: parent.left - right: parent.right - } - } - - PlasmaComponents.Button { - anchors.horizontalCenter: parent.horizontalCenter - text: i18n("Apply") - onClicked: { - var activityId = model["DataEngineSource"] - var service = activitySource.serviceForSource(activityId) - - var operation = service.operationDescription("setName") - operation["Name"] = activityNameField.text - service.startOperationCall(operation) - - var operation = service.operationDescription("setIcon") - operation["Icon"] = iconButton.iconSource - service.startOperationCall(operation) - - delegateStack.pop() - } - anchors { - left: parent.left - right: parent.right - } - } - PlasmaComponents.Button { - anchors.horizontalCenter: parent.horizontalCenter - text: i18n("Cancel") - onClicked: delegateStack.pop() - anchors { - left: parent.left - right: parent.right - } - } - } - } - } -} diff --git a/plasma/desktop/shell/activitymanager/package/contents/ui/main.qml b/plasma/desktop/shell/activitymanager/package/contents/ui/main.qml deleted file mode 100644 index f59874c2..00000000 --- a/plasma/desktop/shell/activitymanager/package/contents/ui/main.qml +++ /dev/null @@ -1,305 +0,0 @@ -/* - * Copyright 2011 Marco Martin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 1.1 -import org.kde.plasma.components 0.1 as PlasmaComponents -import org.kde.plasma.core 0.1 as PlasmaCore -import org.kde.qtextracomponents 0.1 - -Item { - id: main - - //this is used to perfectly align the filter field and delegates - property int cellWidth: theme.defaultFont.mSize.width * 20 - - property int minimumWidth: cellWidth + ( - activityManager.orientation == Qt.Horizontal - ? 0 - : (scrollBar.width + 4 * 2) // 4 * 2 == left and right margins - ) - property int minimumHeight: topBar.height + list.delegateHeight + (activityManager.orientation == Qt.Horizontal ? scrollBar.height : 0) + 4 - - - PlasmaCore.DataSource { - id: activitySource - engine: "org.kde.activities" - onSourceAdded: { - if (source != "Status") { - connectSource(source) - } - } - Component.onCompleted: { - connectedSources = sources.filter(function(val) { - return val != "Status"; - }) - } - } - - PlasmaComponents.ContextMenu { - id: newActivityMenu - visualParent: topBar.newActivityButton - PlasmaComponents.MenuItem { - id: templatesItem - text: i18n("Templates") - onClicked: activityTemplatesMenu.open() - } - PlasmaComponents.MenuItem { - icon: QIcon("user-desktop") - text: i18n("Empty Desktop") - onClicked: activityManager.createActivity("desktop") - } - PlasmaComponents.MenuItem { - icon: QIcon("edit-copy") - text: i18n("Clone current activity") - onClicked: activityManager.cloneCurrentActivity() - } - } - - - PlasmaComponents.ContextMenu { - id: activityTemplatesMenu - visualParent: templatesItem - } - Repeater { - parent: activityTemplatesMenu - model: activityManager.activityTypeActions - delegate: PlasmaComponents.MenuItem { - icon: QIcon(modelData.icon) - text: modelData.text - separator: modelData.separator - onClicked: { - //is a plugin? - if (modelData.pluginName) { - activityManager.createActivity(modelData.pluginName) - //is a script? - } else if (modelData.scriptFile) { - activityManager.createActivityFromScript(modelData.scriptFile, modelData.text, modelData.icon, modelData.startupApps) - //invoke ghns - } else { - activityManager.downloadActivityScripts() - } - } - Component.onCompleted: { - parent = activityTemplatesMenu - } - } - } - - - Loader { - id: topBar - property string query - property Item newActivityButton - - sourceComponent: (activityManager.orientation == Qt.Horizontal) ? horizontalTopBarComponent : verticalTopBarComponent - height: item.height + 2 - anchors { - top: parent.top - left: parent.left - right: parent.right - - topMargin: activityManager.orientation == Qt.Horizontal ? 4 : 0 - leftMargin: 4 - } - } - Component { - id: horizontalTopBarComponent - Item { - anchors { - top: parent.top - left:parent.left - right: parent.right - } - height: filterField.height - - PlasmaComponents.TextField { - id: filterField - anchors { - left: parent.left - leftMargin: 2 - } - width: list.width / Math.floor(list.width / cellWidth) - 4 - clearButtonShown: true - onTextChanged: topBar.query = text - placeholderText: i18n("Enter search term...") - Component.onCompleted: forceActiveFocus() - } - - Row { - anchors.right: parent.right - spacing: 4 - PlasmaComponents.Button { - id: newActivityButton - visible: activityManager.canAddActivities - iconSource: "list-add" - text: i18n("Create activity...") - onClicked: newActivityMenu.open() - } - PlasmaComponents.Button { - iconSource: "plasma" - visible: activityManager.canAddWidgets - text: i18n("Add widgets") - onClicked: activityManager.addWidgetsRequested() - } - PlasmaComponents.ToolButton { - iconSource: "window-close" - onClicked: activityManager.closeClicked() - } - } - Component.onCompleted: { - topBar.newActivityButton = newActivityButton - } - } - } - Component { - id: verticalTopBarComponent - Column { - spacing: 4 - anchors { - top: parent.top - left:parent.left - right: parent.right - } - - PlasmaComponents.ToolButton { - anchors.right: parent.right - iconSource: "window-close" - onClicked: activityManager.closeClicked() - } - - PlasmaComponents.TextField { - id: filterField - anchors { - left: parent.left - right: parent.right - } - clearButtonShown: true - onTextChanged: topBar.query = text - placeholderText: i18n("Enter search term...") - Component.onCompleted: forceActiveFocus() - } - - PlasmaComponents.Button { - id: newActivityButton - anchors { - left: parent.left - right: parent.right - } - iconSource: "list-add" - text: i18n("Create activity...") - onClicked: newActivityMenu.open() - } - Component.onCompleted: { - topBar.newActivityButton = newActivityButton - } - } - } - - MouseEventListener { - id: listParent - anchors { - top: topBar.bottom - left: parent.left - right: activityManager.orientation == Qt.Horizontal - ? parent.right - : (scrollBar.visible ? scrollBar.left : parent.right) - bottom: activityManager.orientation == Qt.Horizontal ? scrollBar.top : bottomBar.top - leftMargin: 4 - bottomMargin: 4 - } - onWheelMoved: { - //use this only if the wheel orientation is vertical and the list orientation is horizontal, otherwise will be the list itself managing the wheel - if (wheel.orientation == Qt.Vertical && list.orientation == ListView.Horizontal) { - var delta = wheel.delta > 0 ? 20 : -20 - list.contentX = Math.min(Math.max(0, list.contentWidth - list.width), - Math.max(0, list.contentX - delta)) - } - } - ListView { - id: list - - property int delegateWidth: (activityManager.orientation == Qt.Horizontal) ? (list.width / Math.floor(list.width / cellWidth)) : list.width - property int delegateHeight: theme.defaultFont.mSize.height * 7 - 4 - - - anchors.fill: parent - - orientation: activityManager.orientation == Qt.Horizontal ? ListView.Horizontal : ListView.vertical - snapMode: ListView.SnapToItem - model: PlasmaCore.SortFilterModel { - sourceModel: PlasmaCore.DataModel { - dataSource: activitySource - } - filterRole: "Name" - filterRegExp: ".*"+topBar.query+".*" - } - clip: activityManager.orientation == Qt.Vertical - - delegate: ActivityDelegate {} - } - } - PlasmaComponents.ScrollBar { - id: scrollBar - orientation: activityManager.orientation == Qt.Horizontal ? ListView.Horizontal : ListView.Vertical - anchors { - top: activityManager.orientation == Qt.Horizontal ? undefined : listParent.top - bottom: activityManager.orientation == Qt.Horizontal ? parent.bottom : bottomBar.top - left: activityManager.orientation == Qt.Horizontal ? parent.left : undefined - right: parent.right - } - flickableItem: list - } - - Loader { - id: bottomBar - - sourceComponent: (activityManager.orientation == Qt.Horizontal) ? undefined : verticalBottomBarComponent - height: item.height - anchors { - left: parent.left - right: parent.right - bottom: parent.bottom - leftMargin: 4 - } - } - - Component { - id: verticalBottomBarComponent - Column { - anchors { - left: parent.left - right: parent.right - bottom: parent.bottom - } - - spacing: 4 - - PlasmaComponents.Button { - anchors { - left: parent.left - right: parent.right - } - iconSource: "plasma" - visible: activityManager.canAddWidgets - text: i18n("Add widgets") - onClicked: activityManager.addWidgetsRequested() - } - } - } -} diff --git a/plasma/desktop/shell/activitymanager/package/metadata.desktop b/plasma/desktop/shell/activitymanager/package/metadata.desktop deleted file mode 100644 index 84a2428d..00000000 --- a/plasma/desktop/shell/activitymanager/package/metadata.desktop +++ /dev/null @@ -1,60 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Keywords= -Name=Activity manager for the desktop -Name[bs]=Aktivnost menadžera za desktop -Name[ca]=Gestor d'activitats per l'escriptori -Name[ca@valencia]=Gestor d'activitats per l'escriptori -Name[cs]=Správce aktivit pro pracovní plochu -Name[da]=Aktivitetshåndtering til desktoppen -Name[de]=Aktivitätenverwaltung für die Arbeitsfläche -Name[el]=Διαχειριστής δραστηριοτήτων για την επιφάνεια εργασίας -Name[en_GB]=Activity manager for the desktop -Name[es]=Gestor de actividades para el escritorio -Name[et]=Töölaua tegevuste haldur -Name[eu]=Mahaigainerako jarduera-kudeatzailea -Name[fi]=Työpöydän aktiviteettienhallinta -Name[fr]=Gestionnaire d'activités pour le bureau -Name[gl]=Xestor de actividades para dispositivos o escritorio -Name[he]=מנהל משימות עבור שולחן העבודה -Name[hu]=Aktivitáskezelő az asztalhoz -Name[ia]=Un gerente de activitate per le scriptorio -Name[kk]=Осы үстелдің белсенділік менеджері -Name[km]=កម្មវិធី​គ្រប់គ្រងសកម្មផាព​​សម្រាប់ផ្ទៃតុ -Name[ko]=데스크톱 활동 관리자 -Name[lt]=Darbastalio veiklos tvarkytuvė -Name[mr]=डेस्कटॉप करिता कार्यपध्दती व्यवस्थापक -Name[nb]=Aktivitetsbehandler for skrivebordet -Name[nds]=Aktivitetenpleger för den Schriefdisch -Name[nl]=Activiteitenbeheerder voor het bureaublad -Name[pa]=ਡੈਸਕਟਾਪ ਲਈ ਸਰਗਰਮੀ ਮੈਨੇਜਰ -Name[pl]=Zarządzanie działaniami dla pulpitu -Name[pt]=Gestor de actividades para o ecrã -Name[pt_BR]=Gerenciador de atividades para a área de trabalho -Name[ro]=Gestionar de activități pentru birou -Name[ru]=Диспетчер комнат для рабочего стола -Name[sk]=Správca aktivít pre plochu -Name[sl]=Upravljalnik dejavnosti za namizje -Name[sr]=Менаџер активности за површ -Name[sr@ijekavian]=Менаџер активности за површ -Name[sr@ijekavianlatin]=Menadžer aktivnosti za površ -Name[sr@latin]=Menadžer aktivnosti za površ -Name[sv]=Aktivitetshanterare för skrivbordet -Name[tr]=Masaüstü için etkinlik yöneticisi -Name[uk]=Керування просторами дій для стільниці -Name[vi]=Trình quản lý Hoạt động cho máy tính -Name[x-test]=xxActivity manager for the desktopxx -Name[zh_CN]=桌面的活动管理器 -Name[zh_TW]=桌面使用的活動管理員 -Type=Service - -X-KDE-ServiceTypes=Plasma/GenericPackage -X-KDE-ParentApp= -X-KDE-PluginInfo-Author=Marco Martin -X-KDE-PluginInfo-Category= -X-KDE-PluginInfo-Email=mart@kde.org -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-Name=org.kde.desktop.activitymanager -X-KDE-PluginInfo-Version= -X-KDE-PluginInfo-Website= -X-Plasma-MainScript=ui/main.qml diff --git a/plasma/desktop/shell/data/layouts/org.kde.plasma-desktop.photoActivity/contents/layout.js b/plasma/desktop/shell/data/layouts/org.kde.plasma-desktop.photoActivity/contents/layout.js deleted file mode 100644 index 7ffc5ba3..00000000 --- a/plasma/desktop/shell/data/layouts/org.kde.plasma-desktop.photoActivity/contents/layout.js +++ /dev/null @@ -1,15 +0,0 @@ -var activity = new Activity -activity.name = i18n("Photos Activity") - -var pictures = userDataPath("pictures") - -var folderview = activity.addWidget("folderview") -folderview.writeConfig("url", pictures) - -var frame = activity.addWidget("frame") -frame.writeConfig("slideshow", true) -frame.writeConfig("recursive slideshow", true) -frame.writeConfig("slideshow paths", pictures) -frame.writeConfig("slideshow time", 300) -frame.writeConfig("random", true) - diff --git a/plasma/desktop/shell/data/layouts/org.kde.plasma-desktop.photoActivity/metadata.desktop b/plasma/desktop/shell/data/layouts/org.kde.plasma-desktop.photoActivity/metadata.desktop deleted file mode 100644 index d46cd51c..00000000 --- a/plasma/desktop/shell/data/layouts/org.kde.plasma-desktop.photoActivity/metadata.desktop +++ /dev/null @@ -1,72 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Photos Activity -Name[ar]=أنشطة الصور -Name[ast]=Photos Activity -Name[bs]=Aktivnost fotografija -Name[ca]=Activitat de fotos -Name[ca@valencia]=Activitat de fotos -Name[cs]=Aktivita fotografií -Name[da]=Fotoaktivitet -Name[de]=Aktivität Fotos -Name[el]=Δραστηριότητα φωτογραφιών -Name[en_GB]=Photos Activity -Name[es]=Actividad de fotos -Name[et]=Fototegevus -Name[eu]=Argazki-jarduera -Name[fi]=Valokuva-aktiviteetti -Name[fr]=Activité photos -Name[gl]=Fotografía -Name[he]=פעילות תמונות -Name[hi]=फोटो क्रियाएँ -Name[hr]=Fotografska aktivnost -Name[hu]=Fényképek aktivitás -Name[ia]=Activitate de photos -Name[is]=Ljósmyndavirkni -Name[ja]=フォトアクティビティ -Name[kk]=Фотомен айналысу -Name[km]=សកម្មភាព​រូបថត -Name[ko]=사진 활동 -Name[lt]=Nuotraukų veikla -Name[lv]=Aktivitāte 'Fotogrāfijas' -Name[mr]=फोटो कार्यपध्दती -Name[nb]=Foto-aktivitet -Name[nds]=Foto-Akschonen -Name[nl]=Activiteit met foto's -Name[pa]=ਫੋਟੋ ਸਰਗਰਮੀ -Name[pl]=Działania na zdjęciach -Name[pt]=Actividade de Fotografias -Name[pt_BR]=Atividade fotográfica -Name[ro]=Activitate fotografică -Name[ru]=Фотокомната -Name[sk]=Aktivita pre fotografie -Name[sl]=Dejavnost Fotografije -Name[sr]=Активност фотографија -Name[sr@ijekavian]=Активност фотографија -Name[sr@ijekavianlatin]=Aktivnost fotografija -Name[sr@latin]=Aktivnost fotografija -Name[sv]=Fotoaktivitet -Name[th]=ความเคลื่อนไหวของรูปภาพ -Name[tr]=Fotoğraf Etkinliği -Name[ug]=سۈرەت پائالىيىتى -Name[uk]=Простір дій фотографій -Name[wa]=Activité fotos -Name[x-test]=xxPhotos Activityxx -Name[zh_CN]=照片活动 -Name[zh_TW]=相片活動 -Icon=digikam -Type=Service -ServiceTypes=Plasma/LayoutTemplate -X-Plasma-Shell=plasma-desktop -X-Plasma-ContainmentCategories=desktop -X-Plasma-ContainmentLayout-ExecuteOnCreation=gwenview $pictures,digikam -X-Plasma-ContainmentLayout-ShowAsExisting=true -X-KDE-PluginInfo-Author=Chani Armitage -X-KDE-PluginInfo-Email=chani@kde.org -X-KDE-PluginInfo-Name=org.kde.plasma-desktop.photoActivity -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-Website=http://plasma.kde.org/ -X-KDE-PluginInfo-Category= -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-EnabledByDefault=true diff --git a/plasma/generic/applets/CMakeLists.txt b/plasma/generic/applets/CMakeLists.txt index 784cc5f9..8b717120 100644 --- a/plasma/generic/applets/CMakeLists.txt +++ b/plasma/generic/applets/CMakeLists.txt @@ -1,4 +1,3 @@ -add_subdirectory(activitybar) add_subdirectory(icon) add_subdirectory(lock_logout) add_subdirectory(panelspacer) diff --git a/plasma/generic/applets/activitybar/CMakeLists.txt b/plasma/generic/applets/activitybar/CMakeLists.txt deleted file mode 100644 index 51a2edb0..00000000 --- a/plasma/generic/applets/activitybar/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -# Project Needs a name ofcourse -project(plasma-activitybar) -include_directories(${KDEBASE_WORKSPACE_SOURCE_DIR}/libs/kworkspace) - -# We add our source code here -set(activitybar_SRCS activitybar.cpp) - -# Now make sure all files get to the right place -kde4_add_plugin(plasma_applet_activitybar ${activitybar_SRCS}) -target_link_libraries(plasma_applet_activitybar - plasma ${KDE4_KDEUI_LIBS} kworkspace) - -install(TARGETS plasma_applet_activitybar - DESTINATION ${PLUGIN_INSTALL_DIR}) - -install(FILES plasma-applet-activitybar.desktop - DESTINATION ${SERVICES_INSTALL_DIR}) diff --git a/plasma/generic/applets/activitybar/Messages.sh b/plasma/generic/applets/activitybar/Messages.sh deleted file mode 100644 index 1f26347c..00000000 --- a/plasma/generic/applets/activitybar/Messages.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -$XGETTEXT *.cpp -o $podir/plasma_applet_activitybar.pot diff --git a/plasma/generic/applets/activitybar/activitybar.cpp b/plasma/generic/applets/activitybar/activitybar.cpp deleted file mode 100644 index e66bf04b..00000000 --- a/plasma/generic/applets/activitybar/activitybar.cpp +++ /dev/null @@ -1,372 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Marco Martin * - * Copyright (C) 2010 by Chani Armitage * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -#include "activitybar.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -ActivityBar::ActivityBar(QObject *parent, const QVariantList &args) - : Plasma::Applet(parent, args), - m_engine(0) -{ - resize(200, 60); - setAspectRatioMode(Plasma::IgnoreAspectRatio); - setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); -} - - -ActivityBar::~ActivityBar() -{ -} - -void ActivityBar::init() -{ - QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(this); - m_tabBar = new Plasma::TabBar(this); - m_tabBar->nativeWidget()->setDrawBase(false); - layout->addItem(m_tabBar); - layout->setContentsMargins(0,0,0,0); - //layout->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); - - //This is an awful hack, but I need to keep the old behaviour for plasma-netbook - //while using the new activity API for plasma-desktop. - //TODO 4.6 convert netbook to the activity API so we won't need this - if (qApp->applicationName() == "plasma-desktop") { - m_engine = dataEngine("org.kde.activities"); - Plasma::DataEngine::Data data = m_engine->query("Status"); - QStringList activities = data["Running"].toStringList(); - //kDebug() << "$$$$$$$$$$$$# sources:" << activities.size(); - foreach (const QString &id, activities) { - insertActivity(id); - } - m_engine->connectAllSources(this); - connect(m_engine, SIGNAL(sourceAdded(QString)), this, SLOT(activityAdded(QString))); - connect(m_engine, SIGNAL(sourceRemoved(QString)), this, SLOT(activityRemoved(QString))); - connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(switchActivity(int))); - } else { - m_tabBar->nativeWidget()->installEventFilter(this); - if (containment()) { - Plasma::Corona *c = containment()->corona(); - - if (!c) { - kDebug() << "No corona, can't happen"; - setFailedToLaunch(true); - return; - } - - QList containments = c->containments(); - foreach (Plasma::Containment *cont, containments) { - if (cont->containmentType() == Plasma::Containment::PanelContainment || cont->containmentType() == Plasma::Containment::CustomPanelContainment || c->offscreenWidgets().contains(cont)) { - continue; - } - - insertContainment(cont); - - connect(cont, SIGNAL(destroyed(QObject*)), this, SLOT(containmentDestroyed(QObject*))); - connect(cont, SIGNAL(screenChanged(int,int,Plasma::Containment*)), this, SLOT(screenChanged(int,int,Plasma::Containment*))); - connect(cont, SIGNAL(contextChanged(Plasma::Context*)), this, SLOT(contextChanged(Plasma::Context*))); - } - - connect(c, SIGNAL(containmentAdded(Plasma::Containment*)), this, SLOT(containmentAdded(Plasma::Containment*))); - } - - connect(m_tabBar, SIGNAL(currentChanged(int)), this, SLOT(switchContainment(int))); - - connect(KWindowSystem::self(), SIGNAL(currentDesktopChanged(int)), this, SLOT(currentDesktopChanged(int))); - } - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); -} - -void ActivityBar::insertContainment(Plasma::Containment *cont) -{ - QList::iterator i = m_containments.begin(); - int index = 0; - int myScreen = containment()->screen(); - - for (; i != m_containments.end(); ++i) { - if (cont->id() < (*i)->id()) { - m_containments.insert(i, cont); - break; - } - ++index; - } - if (i == m_containments.end()) { - m_containments.append(cont); - } - - if (cont->activity().isNull()) { - m_tabBar->insertTab(index, cont->name()); - } else { - m_tabBar->insertTab(index, cont->activity()); - } - - QString iconName = cont->icon(); - - if (!iconName.isEmpty() && iconName != "user-desktop") { - m_tabBar->nativeWidget()->setTabIcon(index, KIcon(iconName)); - } - - if (cont->screen() != -1 && - cont->screen() == myScreen && - (cont->desktop() == -1 || cont->desktop() == KWindowSystem::currentDesktop()-1)) { - m_tabBar->setCurrentIndex(index); - } -} - -void ActivityBar::insertActivity(const QString &id) -{ - //assumption: activities are always added at the end of the list - //kDebug() << "activity" << id; - m_activities.append(id); - m_tabBar->addTab(QString()); //name will be added on dataUpdated -} - -void ActivityBar::constraintsEvent(Plasma::Constraints constraints) -{ - if (constraints & Plasma::FormFactorConstraint || - constraints & Plasma::SizeConstraint) { - if ((formFactor() == Plasma::Vertical || - size().height() > size().width()) && - m_tabBar->nativeWidget()->shape() != QTabBar::RoundedWest) { - m_tabBar->nativeWidget()->setShape(QTabBar::RoundedWest); - } else if (m_tabBar->nativeWidget()->shape() != QTabBar::RoundedNorth && - (formFactor() == Plasma::Horizontal || - size().height() <= size().width())) { - m_tabBar->nativeWidget()->setShape(QTabBar::RoundedNorth); - } else { - return; - } - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); - emit sizeHintChanged(Qt::PreferredSize); - } -} - -bool ActivityBar::eventFilter(QObject *watched, QEvent *event) -{ - //request an activate also if the user clicks on the current active tab - if (watched == m_tabBar->nativeWidget() && event->type() == QEvent::MouseButtonRelease) { - QMouseEvent *me = static_cast(event); - switchContainment(m_tabBar->nativeWidget()->tabAt(me->pos())); - } - return false; -} - -void ActivityBar::switchContainment(int newActive) -{ - Plasma::Containment *ownCont = containment(); - if (!ownCont || newActive > m_containments.count()-1 || newActive < 0) { - return; - } - Plasma::Corona *c = containment()->corona(); - if (!c) { - return; - } - - - Plasma::Containment *oldCont = c->containmentForScreen(ownCont->screen(), KWindowSystem::currentDesktop() - 1); - - if (oldCont) { - m_containments[newActive]->setScreen(oldCont->screen(), oldCont->desktop()); - } else { - m_containments[newActive]->setScreen(ownCont->screen(), ownCont->desktop()); - } -} - -void ActivityBar::switchActivity(int newActive) -{ - if (newActive >= m_activities.count() || newActive < 0) { - return; - } - Plasma::Service *service = m_engine->serviceForSource(m_activities.at(newActive)); - KConfigGroup op = service->operationDescription("setCurrent"); - Plasma::ServiceJob *job = service->startOperationCall(op); - connect(job, SIGNAL(finished(KJob*)), service, SLOT(deleteLater())); -} - -void ActivityBar::currentDesktopChanged(const int currentDesktop) -{ - Plasma::Corona *c = containment()->corona(); - if (!c) { - return; - } - - //-1 because kwindowsystem counts desktop from 1 :) - Plasma::Containment *cont = c->containmentForScreen(containment()->screen(), currentDesktop - 1); - - if (!cont) { - return; - } - - int index = m_containments.indexOf(cont); - - if (index != -1) { - m_tabBar->setCurrentIndex(index); - } -} - -void ActivityBar::containmentAdded(Plasma::Containment *cont) -{ - if (cont->containmentType() == Plasma::Containment::PanelContainment || - cont->containmentType() == Plasma::Containment::CustomPanelContainment || - m_containments.contains(cont) || (containment() && containment()->corona()->offscreenWidgets().contains(cont))) { - return; - } - - insertContainment(cont); - - connect(cont, SIGNAL(destroyed(QObject*)), this, SLOT(containmentDestroyed(QObject*))); - connect(cont, SIGNAL(screenChanged(int,int,Plasma::Containment*)), this, SLOT(screenChanged(int,int,Plasma::Containment*))); - connect(cont, SIGNAL(contextChanged(Plasma::Context*)), this, SLOT(contextChanged(Plasma::Context*))); - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); -} - -void ActivityBar::activityAdded(const QString &id) -{ - insertActivity(id); - m_engine->connectSource(id, this); - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); -} - -void ActivityBar::containmentDestroyed(QObject *obj) -{ - Plasma::Containment *destroyedContainment = static_cast(obj); - - int index = m_containments.indexOf(destroyedContainment); - if (index != -1) { - m_containments.removeAt(index); - m_tabBar->blockSignals(true); - m_tabBar->removeTab(index); - m_tabBar->blockSignals(false); - } - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); -} - -void ActivityBar::activityRemoved(const QString &id) -{ - int index = m_activities.indexOf(id); - if (index < 0) { - return; - } - - m_activities.removeAt(index); - - m_tabBar->blockSignals(true); - m_tabBar->removeTab(index); - m_tabBar->blockSignals(false); - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); -} - -void ActivityBar::screenChanged(int wasScreen, int isScreen, Plasma::Containment *cont) -{ - Q_UNUSED(wasScreen) - //Q_UNUSED(isScreen) - - int index = m_containments.indexOf(cont); - - //FIXME: how is supposed to work containment()->desktop() when the pervirtialthing is off? - if (index != -1 && - containment()->screen() == isScreen && - (cont->desktop() == -1 || cont->desktop() == KWindowSystem::currentDesktop()-1)) { - m_tabBar->setCurrentIndex(index); - } -} - -void ActivityBar::contextChanged(Plasma::Context *context) -{ - Plasma::Containment *cont = qobject_cast(sender()); - - if (!cont) { - return; - } - - int index = m_containments.indexOf(cont); - if (index != -1) { - m_tabBar->setTabText(index, context->currentActivity()); - } -} - -void ActivityBar::dataUpdated(const QString &source, const Plasma::DataEngine::Data &data) -{ - //kDebug() << "$$$$$$$$$$$$$$$$$$$" << source; - if (source == "Status") { - //special source, not used yet - return; - } - - int index = m_activities.indexOf(source); - if (data["State"].toString() == "Stopped") { - if (index >= 0) { - //take it out - m_activities.removeAt(index); - m_tabBar->blockSignals(true); - m_tabBar->removeTab(index); - m_tabBar->blockSignals(false); - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); - } - return; - } else if (index < 0) { - //add it back in - index = m_activities.size(); - insertActivity(source); - } - - //update the actual content - m_tabBar->setTabText(index, data["Name"].toString().replace('&', "&&")); - - QString iconName = data["Icon"].toString(); - if (!iconName.isEmpty() && iconName != "user-desktop") { - m_tabBar->nativeWidget()->setTabIcon(index, KIcon(iconName)); - } - - if (data["Current"].toBool()) { - m_tabBar->setCurrentIndex(index); - } - - setPreferredSize(m_tabBar->nativeWidget()->sizeHint()); - emit sizeHintChanged(Qt::PreferredSize); -} - -#include "activitybar.moc" diff --git a/plasma/generic/applets/activitybar/activitybar.h b/plasma/generic/applets/activitybar/activitybar.h deleted file mode 100644 index b95cb0c8..00000000 --- a/plasma/generic/applets/activitybar/activitybar.h +++ /dev/null @@ -1,72 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Marco Martin * - * Copyright (C) 2010 by Chani Armitage * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -#ifndef ACTIVITYBAR_H -#define ACTIVITYBAR_H - - -#include -#include - -namespace Plasma -{ - class TabBar; - class Containment; -} - -class ActivityBar : public Plasma::Applet -{ -Q_OBJECT -public: - ActivityBar(QObject *parent, const QVariantList &args); - ~ActivityBar(); - - void init(); - void constraintsEvent(Plasma::Constraints constraints); - //insert in m_containments, keeping it ordered by id() - void insertContainment(Plasma::Containment *cont); - void insertActivity(const QString &id); - -protected: - bool eventFilter(QObject *watched, QEvent *event); - -private Q_SLOTS: - void switchContainment(int newActive); - void containmentAdded(Plasma::Containment *containment); - void containmentDestroyed(QObject *obj); - void screenChanged(int wasScreen, int isScreen, Plasma::Containment *containment); - void contextChanged(Plasma::Context *context); - void currentDesktopChanged(const int currentDesktop); - - void switchActivity(int newActive); - void activityAdded(const QString &id); - void activityRemoved(const QString &id); - void dataUpdated(const QString &source, const Plasma::DataEngine::Data &data); - -private: - Plasma::TabBar *m_tabBar; - QList m_containments; - QStringList m_activities; - Plasma::DataEngine *m_engine; -}; - - -K_EXPORT_PLASMA_APPLET(activitybar, ActivityBar) -#endif diff --git a/plasma/generic/applets/activitybar/plasma-applet-activitybar.desktop b/plasma/generic/applets/activitybar/plasma-applet-activitybar.desktop deleted file mode 100644 index f158f7bc..00000000 --- a/plasma/generic/applets/activitybar/plasma-applet-activitybar.desktop +++ /dev/null @@ -1,160 +0,0 @@ -[Desktop Entry] -Name=Activity Bar -Name[ar]=شريط الأنشطة -Name[ast]=Barra de xera -Name[be@latin]=Panel zaniatkaŭ -Name[bg]=Лента за активност -Name[bs]=traka aktivnosti -Name[ca]=Barra d'activitat -Name[ca@valencia]=Barra d'activitat -Name[cs]=Pruh aktivit -Name[da]=Aktivitetslinje -Name[de]=Aktivitätsleiste -Name[el]=Γραμμή δραστηριότητας -Name[en_GB]=Activity Bar -Name[eo]=Aktiveca Nivelo -Name[es]=Barra de actividad -Name[et]=Tegevusriba -Name[eu]=Jarduera-barra -Name[fi]=Aktiviteettipalkki -Name[fr]=Barre d'activités -Name[fy]=Aktiviteitsbalke -Name[ga]=Barra Gníomhaíochta -Name[gl]=Barra de actividades -Name[gu]=ક્રિયા પટ્ટી -Name[he]=סרגל פעילויות -Name[hi]=कार्य पट्टी -Name[hne]=सक्रियता पट्टी -Name[hr]=Traka aktivnosti -Name[hsb]=Pas aktiwitow -Name[hu]=Aktivitásjelző -Name[ia]=Barra de activitate -Name[id]=Batang Aktivitas -Name[is]=Virknislá -Name[it]=Barra delle attività -Name[ja]=アクティビティバー -Name[kk]=Белсенділік панелі -Name[km]=របារ​សកម្មភាព -Name[kn]=ಚಟುವಟಿಕೆ ಪಟ್ಟಿ -Name[ko]=활동 표시줄 -Name[ku]=Darika Çalakiyan -Name[lt]=Veiklų juosta -Name[lv]=Aktivitāšu josla -Name[mk]=Лента за активности -Name[ml]=ആക്ടിവിറ്റി ബാര്‍ -Name[mr]=कार्यपध्दती पट्टी -Name[nb]=Aktivitetsstolpe -Name[nds]=Aktivitetenbalken -Name[nl]=Activiteitsbalk -Name[nn]=Aktivitetslinje -Name[pa]=ਸਰਗਰਮੀ ਪੱਟੀ -Name[pl]=Pasek działań -Name[pt]=Barra de Actividades -Name[pt_BR]=Barra de atividades -Name[ro]=Bară de activitate -Name[ru]=Панель комнат -Name[si]=ක්‍රියා තීරුව -Name[sk]=Panel aktivít -Name[sl]=Pas z dejavnostmi -Name[sr]=трака активности -Name[sr@ijekavian]=трака активности -Name[sr@ijekavianlatin]=traka aktivnosti -Name[sr@latin]=traka aktivnosti -Name[sv]=Aktivitetsrad -Name[ta]=Activity Bar -Name[te]=క్రియాశీలత పట్టీ -Name[tg]=Панели фаъолиятӣ -Name[th]=แถบกิจกรรม -Name[tr]=Etkinlik Çubuğu -Name[ug]=پائالىيەت بالدىقى -Name[uk]=Панель дій -Name[vi]=Thanh Hoạt động -Name[wa]=Bår d' activité -Name[x-test]=xxActivity Barxx -Name[zh_CN]=活动栏 -Name[zh_TW]=活動列 -Comment=Tab bar to switch activities -Comment[ar]=شريط ألسنة للتبديل بين الأنشطة -Comment[ast]=Barra de llingüetes pa camudar actividaes -Comment[bg]=Лента за превключване на активността -Comment[bs]=Traka jezičaka za prebacivanje aktivnosti -Comment[ca]=Barra de pestanyes per a canviar d'activitats -Comment[ca@valencia]=Barra de pestanyes per a canviar d'activitats -Comment[cs]=Lišta pro přepínání aktivit -Comment[da]=Fanebladslinje til at skifte mellem aktiviteter -Comment[de]=Leiste zum Wechseln von Aktivitäten -Comment[el]=Γραμμή καρτελών για την εναλλαγή δραστηριότητας -Comment[en_GB]=Tab bar to switch activities -Comment[eo]=Langetobreto por ŝalti aktivecojn -Comment[es]=Barra de pestañas para cambiar actividades -Comment[et]=Kaardiriba tegevuse lülitamiseks -Comment[eu]=Jardueraz aldatzeko fitxa-barra -Comment[fi]=Välilehtipalkki aktiviteettien vaihtamiseen -Comment[fr]=Barre d'onglets permettant de changer d'activité -Comment[fy]=Ljepper om tusken aktiviteiten te wikseljen -Comment[ga]=Barra na gcluaisíní chun an ghníomhaíocht a mhalartú -Comment[gl]=Barra de lapelas para trocar entre actividades -Comment[gu]=ક્રિયાઓ બદલવા માટે ટેબ પટ્ટી -Comment[he]=סרגל לשוניות למעבר בין פעילויות -Comment[hi]=क्रिया स्विच करने के लिए टैबपट्टी -Comment[hr]=Traka za mijenjanje aktivnosti -Comment[hu]=Aktivitások közötti váltásra szolgáló lapozóelem -Comment[ia]=Barra de scheda pro commutar activitates -Comment[id]=Batang tab untuk berpindah aktivitas -Comment[is]=Flipaslá til að skipta um verkefni -Comment[it]=Barra a schede per cambiare attività -Comment[ja]=アクティビティを切り替えるタブバー -Comment[kk]=Белсенділікті ауыстыру панелі -Comment[km]=របារ​ផ្ទាំង​ដើម្បី​ប្ដូរ​សកម្មភាព -Comment[kn]=ಚಟುವಟಿಕೆಗಳನ್ನು ಬದಲಾಯಿಸುವ ಟ್ಯಾಬ್ ಪಟ್ಟಿ -Comment[ko]=활동 사이를 전환할 수 있는 탭 표시줄 -Comment[lt]=Kortelių juosta veiklų keitimui -Comment[lv]=Ciļnu josla aktivitāšu pārslēgšanai -Comment[mai]=क्रियाकलाप स्विच करबाक लेल टैबपट्टी -Comment[ml]=പ്രവര്‍ത്തനങ്ങള്‍ മാറ്റാന്‍ ടാബ്-ബാര്‍ -Comment[mr]=कार्यपध्दती बदलण्याकरिता टॅब बार -Comment[nb]=Fanelinje for å bytte mellom aktiviteter -Comment[nds]=Paneelbalken, mit den sik Aktiviteten wesseln laat -Comment[nl]=Tabbalk om van activiteit te wisselen -Comment[nn]=Fanelinje for å byta mellom aktivitetar -Comment[pa]=ਐਕਟੀਵਿਟੀ ਬਦਲਣ ਲਈ ਟੈਬਬਾਰ -Comment[pl]=Pasek kart do przełączania działań -Comment[pt]=Barra de páginas para mudar de actividades -Comment[pt_BR]=Barra de abas para alternar atividades -Comment[ro]=Bară cu file pentru comutarea activităților -Comment[ru]=Переключение комнат -Comment[si]=ක්‍රියාකාරකම් මාරු කිරීමට ටැබ් තීරුවක් -Comment[sk]=Panel na prepínanie aktivít -Comment[sl]=Pas za preklapljanje med dejavnostmi -Comment[sr]=Трака језичака за пребацивање активности -Comment[sr@ijekavian]=Трака језичака за пребацивање активности -Comment[sr@ijekavianlatin]=Traka jezičaka za prebacivanje aktivnosti -Comment[sr@latin]=Traka jezičaka za prebacivanje aktivnosti -Comment[sv]=Flikrad för att byta aktiviteter -Comment[tg]=Переключиться в командную строку -Comment[th]=แถบแท็บเพื่อใช้สลับกิจกรรม -Comment[tr]=Eylemleri seçmek için sekme çubuğu -Comment[ug]=پائالىيەت ئالماشتۇرىدىغان بەتكۈچ بالداق -Comment[uk]=Панель з вкладками для перемикання дій -Comment[wa]=Båre di linwetes po candjî d' activités -Comment[x-test]=xxTab bar to switch activitiesxx -Comment[zh_CN]=切换活动的标签栏 -Comment[zh_TW]=切換活動的分頁列 -Type=Service -Icon=tab-new - -X-KDE-ServiceTypes=Plasma/Applet -X-KDE-Library=plasma_applet_activitybar -X-KDE-PluginInfo-Author=Marco Martin -X-KDE-PluginInfo-Email=notmart@gmail.com -X-KDE-PluginInfo-Name=activitybar -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-Website=http://plasma.kde.org/ -X-KDE-PluginInfo-Category=Windows and Tasks -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-EnabledByDefault=true - -X-Plasma-Requires-FileDialog=Unused -X-Plasma-Requires-LaunchApp=Unused - diff --git a/plasma/generic/dataengines/CMakeLists.txt b/plasma/generic/dataengines/CMakeLists.txt index 1aa637f7..ab3c1454 100644 --- a/plasma/generic/dataengines/CMakeLists.txt +++ b/plasma/generic/dataengines/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory(applicationjobs) -add_subdirectory(activities) add_subdirectory(apps) add_subdirectory(devicenotifications) add_subdirectory(dict) diff --git a/plasma/generic/dataengines/activities/ActivityData.cpp b/plasma/generic/dataengines/activities/ActivityData.cpp deleted file mode 100644 index d98e8c1e..00000000 --- a/plasma/generic/dataengines/activities/ActivityData.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2011 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ActivityData.h" - -#include -#include - -class ActivityDataStaticInit { -public: - ActivityDataStaticInit() - { - qDBusRegisterMetaType < ActivityData > (); - qDBusRegisterMetaType < QList < ActivityData > > (); - } - - static ActivityDataStaticInit _instance; - -}; - -ActivityDataStaticInit ActivityDataStaticInit::_instance; - -ActivityData::ActivityData() -{ -} - -ActivityData::ActivityData(const ActivityData & source) -{ - score = source.score; - id = source.id; -} - -ActivityData & ActivityData::operator = (const ActivityData & source) -{ - if (&source != this) { - score = source.score; - id = source.id; - } - - return *this; -} - -QDBusArgument & operator << (QDBusArgument & arg, const ActivityData r) -{ - arg.beginStructure(); - - arg << r.id; - arg << r.score; - - arg.endStructure(); - - return arg; -} - -const QDBusArgument & operator >> (const QDBusArgument & arg, ActivityData & r) -{ - arg.beginStructure(); - - arg >> r.id; - arg >> r.score; - - arg.endStructure(); - - return arg; -} - -QDebug operator << (QDebug dbg, const ActivityData & r) -{ - dbg << "ActivityData(" << r.score << r.id << ")"; - return dbg.space(); -} diff --git a/plasma/generic/dataengines/activities/ActivityData.h b/plasma/generic/dataengines/activities/ActivityData.h deleted file mode 100644 index a36e85a2..00000000 --- a/plasma/generic/dataengines/activities/ActivityData.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITY_DATA_H_ -#define ACTIVITY_DATA_H_ - -#include -#include -#include -#include - -class ActivityData { -public: - ActivityData(); - ActivityData(const ActivityData & source); - ActivityData & operator = (const ActivityData & source); - - double score; - QString id; - -}; - -typedef QList ActivityDataList; -Q_DECLARE_METATYPE(ActivityData) -Q_DECLARE_METATYPE(ActivityDataList) - -QDBusArgument & operator << (QDBusArgument & arg, const ActivityData); -const QDBusArgument & operator >> (const QDBusArgument & arg, ActivityData & rec); - -QDebug operator << (QDebug dbg, const ActivityData & r); - -#endif // ACTIVITY_DATA_H_ diff --git a/plasma/generic/dataengines/activities/CMakeLists.txt b/plasma/generic/dataengines/activities/CMakeLists.txt deleted file mode 100644 index 6ddd7e6b..00000000 --- a/plasma/generic/dataengines/activities/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -project(activityengine) - -include_directories( ${KACTIVITIES_INCLUDE_DIR} ) - -set(activity_engine_SRCS - ActivityData.cpp - activityengine.cpp - activityservice.cpp - activityjob.cpp) - -set_source_files_properties(org.kde.ActivityManager.ActivityRanking.xml PROPERTIES INCLUDE "ActivityData.h") -qt4_add_dbus_interface( - activity_engine_SRCS org.kde.ActivityManager.ActivityRanking.xml - ActivityRankingInterface - ) - -kde4_add_plugin(plasma_engine_activities ${activity_engine_SRCS}) -target_link_libraries(plasma_engine_activities - ${KDE4_KDECORE_LIBS} - ${KDE4_PLASMA_LIBS} - ${KACTIVITIES_LIBRARIES}) - -install(TARGETS plasma_engine_activities - DESTINATION ${PLUGIN_INSTALL_DIR}) - -install(FILES plasma-engine-activities.desktop - DESTINATION ${SERVICES_INSTALL_DIR}) - -install(FILES activities.operations - DESTINATION ${DATA_INSTALL_DIR}/plasma/services) diff --git a/plasma/generic/dataengines/activities/activities.operations b/plasma/generic/dataengines/activities/activities.operations deleted file mode 100644 index c438c506..00000000 --- a/plasma/generic/dataengines/activities/activities.operations +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plasma/generic/dataengines/activities/activityengine.cpp b/plasma/generic/dataengines/activities/activityengine.cpp deleted file mode 100644 index 2774a01c..00000000 --- a/plasma/generic/dataengines/activities/activityengine.cpp +++ /dev/null @@ -1,270 +0,0 @@ -/* - * Copyright 2010 Chani Armitage - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activityengine.h" -#include "activityservice.h" -#include "ActivityRankingInterface.h" - -#include -#include - -#include -#include - -#define ACTIVITYMANAGER_SERVICE "org.kde.kactivitymanagerd" -#define ACTIVITYRANKING_OBJECT "/ActivityRanking" - -ActivityEngine::ActivityEngine(QObject* parent, const QVariantList& args) - : Plasma::DataEngine(parent, args) -{ - Q_UNUSED(args); -} - -void ActivityEngine::init() -{ - if (qApp->applicationName() == "plasma-netbook") { - //hack for the netbook - //FIXME can I read a setting or something instead? - } else { - m_activityController = new KActivities::Controller(this); - m_currentActivity = m_activityController->currentActivity(); - QStringList activities = m_activityController->listActivities(); - //setData("allActivities", activities); - foreach (const QString &id, activities) { - insertActivity(id); - } - - connect(m_activityController, SIGNAL(activityAdded(QString)), this, SLOT(activityAdded(QString))); - connect(m_activityController, SIGNAL(activityRemoved(QString)), this, SLOT(activityRemoved(QString))); - connect(m_activityController, SIGNAL(currentActivityChanged(QString)), this, SLOT(currentActivityChanged(QString))); - - //some convenience sources for times when checking every activity source would suck - //it starts with _ so that it can easily be filtered out of sources() - //maybe I should just make it not included in sources() instead? - m_runningActivities = m_activityController->listActivities(KActivities::Info::Running); - setData("Status", "Current", m_currentActivity); - setData("Status", "Running", m_runningActivities); - - m_watcher = new QDBusServiceWatcher( - ACTIVITYMANAGER_SERVICE, - QDBusConnection::sessionBus(), - QDBusServiceWatcher::WatchForRegistration - | QDBusServiceWatcher::WatchForUnregistration, - this); - - connect(m_watcher, SIGNAL(serviceRegistered(QString)), - this, SLOT(enableRanking())); - connect(m_watcher, SIGNAL(serviceUnregistered(QString)), - this, SLOT(disableRanking())); - - if (QDBusConnection::sessionBus().interface()->isServiceRegistered(ACTIVITYMANAGER_SERVICE)) { - enableRanking(); - } - } -} - -void ActivityEngine::insertActivity(const QString &id) -{ - //id -> name, icon, state - KActivities::Info *activity = new KActivities::Info(id, this); - m_activities[id] = activity; - setData(id, "Name", activity->name()); - setData(id, "Icon", activity->icon()); - setData(id, "Current", m_currentActivity == id); - setData(id, "Encrypted", false); - - QString state; - switch (activity->state()) { - case KActivities::Info::Running: - state = "Running"; - break; - case KActivities::Info::Starting: - state = "Starting"; - break; - case KActivities::Info::Stopping: - state = "Stopping"; - break; - case KActivities::Info::Stopped: - state = "Stopped"; - break; - case KActivities::Info::Invalid: - default: - state = "Invalid"; - } - setData(id, "State", state); - setData(id, "Score", m_activityScores.value(id)); - - connect(activity, SIGNAL(infoChanged()), this, SLOT(activityDataChanged())); - connect(activity, SIGNAL(stateChanged(KActivities::Info::State)), this, SLOT(activityStateChanged())); - - m_runningActivities << id; -} - -void ActivityEngine::disableRanking() -{ - delete m_activityRankingClient; -} - -void ActivityEngine::enableRanking() -{ - m_activityRankingClient = new org::kde::ActivityManager::ActivityRanking( - ACTIVITYMANAGER_SERVICE, - ACTIVITYRANKING_OBJECT, - QDBusConnection::sessionBus() - ); - connect(m_activityRankingClient, SIGNAL(rankingChanged(QStringList,ActivityDataList)), - this, SLOT(rankingChanged(QStringList,ActivityDataList))); - - QDBusMessage msg = QDBusMessage::createMethodCall(ACTIVITYMANAGER_SERVICE, - ACTIVITYRANKING_OBJECT, - "org.kde.ActivityManager.ActivityRanking", - "activities"); - QDBusPendingReply reply = QDBusConnection::sessionBus().asyncCall(msg); - QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this); - QObject::connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), - this, SLOT(activityScoresReply(QDBusPendingCallWatcher*))); -} - -void ActivityEngine::activityScoresReply(QDBusPendingCallWatcher *watcher) -{ - QDBusPendingReply reply = *watcher; - if (reply.isError()) { - kDebug() << "Error getting activity scores: " << reply.error().message(); - } else { - setActivityScores(reply.value()); - } - - watcher->deleteLater(); -} - -void ActivityEngine::rankingChanged(const QStringList &topActivities, const ActivityDataList &activities) -{ - Q_UNUSED(topActivities) - - setActivityScores(activities); -} - -void ActivityEngine::setActivityScores(const ActivityDataList &activities) -{ - QSet presentActivities; - m_activityScores.clear(); - - foreach (const ActivityData &activity, activities) { - if (m_activities.contains(activity.id)) { - setData(activity.id, "Score", activity.score); - } - presentActivities.insert(activity.id); - m_activityScores[activity.id] = activity.score; - } - - foreach (const QString &activityId, m_activityController->listActivities()) { - if (!presentActivities.contains(activityId) && m_activities.contains(activityId)) { - setData(activityId, "Score", 0); - } - } -} - -void ActivityEngine::activityAdded(const QString &id) -{ - insertActivity(id); - setData("Status", "Running", m_runningActivities); -} - -void ActivityEngine::activityRemoved(const QString &id) -{ - removeSource(id); - KActivities::Info *activity = m_activities.take(id); - if (activity) { - delete activity; - } - m_runningActivities.removeAll(id); - setData("Status", "Running", m_runningActivities); -} - -void ActivityEngine::currentActivityChanged(const QString &id) -{ - setData(m_currentActivity, "Current", false); - m_currentActivity = id; - setData(id, "Current", true); - setData("Status", "Current", id); -} - -void ActivityEngine::activityDataChanged() -{ - KActivities::Info *activity = qobject_cast(sender()); - if (!activity) { - return; - } - setData(activity->id(), "Name", activity->name()); - setData(activity->id(), "Icon", activity->icon()); - setData(activity->id(), "Encrypted", false); - setData(activity->id(), "Current", m_currentActivity == activity->id()); - setData(activity->id(), "Score", m_activityScores.value(activity->id())); -} - -void ActivityEngine::activityStateChanged() -{ - KActivities::Info *activity = qobject_cast(sender()); - const QString id = activity->id(); - if (!activity) { - return; - } - QString state; - switch (activity->state()) { - case KActivities::Info::Running: - state = "Running"; - break; - case KActivities::Info::Starting: - state = "Starting"; - break; - case KActivities::Info::Stopping: - state = "Stopping"; - break; - case KActivities::Info::Stopped: - state = "Stopped"; - break; - case KActivities::Info::Invalid: - default: - state = "Invalid"; - } - setData(id, "State", state); - - if (activity->state() == KActivities::Info::Running) { - if (!m_runningActivities.contains(id)) { - m_runningActivities << id; - } - } else { - m_runningActivities.removeAll(id); - } - - setData("Status", "Running", m_runningActivities); -} - - -Plasma::Service *ActivityEngine::serviceForSource(const QString &source) -{ - //FIXME validate the name - ActivityService *service = new ActivityService(m_activityController, source); - service->setParent(this); - return service; -} - -K_EXPORT_PLASMA_DATAENGINE(activities, ActivityEngine) - -#include "activityengine.moc" diff --git a/plasma/generic/dataengines/activities/activityengine.h b/plasma/generic/dataengines/activities/activityengine.h deleted file mode 100644 index d6824a06..00000000 --- a/plasma/generic/dataengines/activities/activityengine.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2010 Chani Armitage - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITY_ENGINE_H -#define ACTIVITY_ENGINE_H - -#include - -#include -#include - -#include "ActivityData.h" -#include "ActivityRankingInterface.h" - - -class QDBusServiceWatcher; - -class ActivityService; - -namespace KActivities -{ - class Controller; - class Info; -} - - -class ActivityEngine : public Plasma::DataEngine -{ - Q_OBJECT - -public: - ActivityEngine(QObject* parent, const QVariantList& args); - Plasma::Service *serviceForSource(const QString &source); - void init(); - -public slots: - void activityAdded(const QString &id); - void activityRemoved(const QString &id); - void currentActivityChanged(const QString &id); - - void activityDataChanged(); - void activityStateChanged(); - - void disableRanking(); - void enableRanking(); - void rankingChanged(const QStringList &topActivities, const ActivityDataList &activities); - void activityScoresReply(QDBusPendingCallWatcher *watcher); - -private: - void insertActivity(const QString &id); - void setActivityScores(const ActivityDataList &activities); - - KActivities::Controller *m_activityController; - QHash m_activities; - QStringList m_runningActivities; - QString m_currentActivity; - - org::kde::ActivityManager::ActivityRanking *m_activityRankingClient; - QDBusServiceWatcher *m_watcher; - QHash m_activityScores; - - friend class ActivityService; -}; - -#endif // SEARCHLAUNCH_ENGINE_H diff --git a/plasma/generic/dataengines/activities/activityjob.cpp b/plasma/generic/dataengines/activities/activityjob.cpp deleted file mode 100644 index 77ce52ad..00000000 --- a/plasma/generic/dataengines/activities/activityjob.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2009 Chani Armitage - * - * 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 - * published by the Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activityjob.h" - -#include -#include - -#include -#include - -ActivityJob::ActivityJob(KActivities::Controller *controller, const QString &id, const QString &operation, QMap ¶meters, QObject *parent) : - ServiceJob(parent->objectName(), operation, parameters, parent), - m_activityController(controller), - m_id(id) -{ -} - -ActivityJob::~ActivityJob() -{ -} - -void ActivityJob::start() -{ - const QString operation = operationName(); - if (operation == "add") { - //I wonder how well plasma will handle this... - QString name = parameters()["Name"].toString(); - if (name.isEmpty()) { - name = i18n("unnamed"); - } - const QString activityId = m_activityController->addActivity(name); - setResult(activityId); - return; - } - if (operation == "remove") { - QString id = parameters()["Id"].toString(); - m_activityController->removeActivity(id); - setResult(true); - return; - } - - //m_id is needed for the rest - if (m_id.isEmpty()) { - setResult(false); - return; - } - if (operation == "setCurrent") { - m_activityController->setCurrentActivity(m_id); - setResult(true); - return; - } - if (operation == "stop") { - m_activityController->stopActivity(m_id); - setResult(true); - return; - } - if (operation == "start") { - m_activityController->startActivity(m_id); - setResult(true); - return; - } - if (operation == "setName") { - m_activityController->setActivityName(m_id, parameters()["Name"].toString()); - setResult(true); - return; - } - if (operation == "setIcon") { - m_activityController->setActivityIcon(m_id, parameters()["Icon"].toString()); - setResult(true); - return; - } - if (operation == "setEncrypted") { - m_activityController->setActivityEncrypted(m_id, parameters()["Encrypted"].toBool()); - setResult(true); - return; - } - if (operation == "toggleActivityManager") { - QDBusMessage message = QDBusMessage::createMethodCall("org.kde.plasma-desktop", - "/App", - QString(), - "toggleActivityManager"); - QDBusConnection::sessionBus().call(message, QDBus::NoBlock); - setResult(true); - return; - } - setResult(false); -} - -#include "activityjob.moc" diff --git a/plasma/generic/dataengines/activities/activityjob.h b/plasma/generic/dataengines/activities/activityjob.h deleted file mode 100644 index a8d59d39..00000000 --- a/plasma/generic/dataengines/activities/activityjob.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2009 Chani Armitage - * - * 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 - * published by the Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITYJOB_H -#define ACTIVITYJOB_H - -// plasma -#include - -namespace KActivities -{ - class Controller; -} // namespace KActivities - -class ActivityJob : public Plasma::ServiceJob -{ - - Q_OBJECT - - public: - ActivityJob(KActivities::Controller *controller, const QString &id, const QString &operation, QMap ¶meters, QObject *parent = 0); - ~ActivityJob(); - - protected: - void start(); - - private: - KActivities::Controller *m_activityController; - QString m_id; - -}; - -#endif // TASKJOB_H diff --git a/plasma/generic/dataengines/activities/activityservice.cpp b/plasma/generic/dataengines/activities/activityservice.cpp deleted file mode 100644 index 4760d108..00000000 --- a/plasma/generic/dataengines/activities/activityservice.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2010 Chani Armitage - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activityservice.h" -#include "activityjob.h" - -ActivityService::ActivityService(KActivities::Controller *controller, const QString &source) - : m_activityController(controller), - m_id(source) -{ - setName("activities"); -} - -ServiceJob *ActivityService::createJob(const QString &operation, QMap ¶meters) -{ - return new ActivityJob(m_activityController, m_id, operation, parameters, this); -} - -#include "activityservice.moc" diff --git a/plasma/generic/dataengines/activities/activityservice.h b/plasma/generic/dataengines/activities/activityservice.h deleted file mode 100644 index e964a81d..00000000 --- a/plasma/generic/dataengines/activities/activityservice.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2010 Chani Armitage - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITY_SERVICE_H -#define ACTIVITY_SERVICE_H - -#include "activityengine.h" - -#include -#include - -using namespace Plasma; - -namespace KActivities -{ - class Controller; -} // namespace KActivities - - -class ActivityService : public Plasma::Service -{ - Q_OBJECT - -public: - ActivityService(KActivities::Controller *controller, const QString &source); - ServiceJob *createJob(const QString &operation, - QMap ¶meters); - -private: - KActivities::Controller *m_activityController; - QString m_id; -}; - -#endif // SEARCHLAUNCH_SERVICE_H diff --git a/plasma/generic/dataengines/activities/org.kde.ActivityManager.ActivityRanking.xml b/plasma/generic/dataengines/activities/org.kde.ActivityManager.ActivityRanking.xml deleted file mode 100644 index 7eacc8be..00000000 --- a/plasma/generic/dataengines/activities/org.kde.ActivityManager.ActivityRanking.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plasma/generic/dataengines/activities/plasma-engine-activities.desktop b/plasma/generic/dataengines/activities/plasma-engine-activities.desktop deleted file mode 100644 index 1409da77..00000000 --- a/plasma/generic/dataengines/activities/plasma-engine-activities.desktop +++ /dev/null @@ -1,130 +0,0 @@ -[Desktop Entry] -Name=Activities Engine -Name[ar]=محرك الأنشطة -Name[bg]=Ядро за дейности -Name[bs]=motor aktivnosti -Name[ca]=Motor d'activitats -Name[ca@valencia]=Motor d'activitats -Name[cs]=Stroj aktivit -Name[da]=Aktivitetsmotor -Name[de]=Aktivitätenverwaltung -Name[el]=Μηχανή δραστηριοτήτων -Name[en_GB]=Activities Engine -Name[es]=Motor de actividades -Name[et]=Tegevuste mootor -Name[eu]=Jarduera-motorra -Name[fi]=Aktiviteettimoottori -Name[fr]=Moteur d'activités -Name[ga]=Inneall Gníomhaíochta -Name[gl]=Motor de actividades -Name[he]=מנוע הפעילויות -Name[hr]=Mehanizam aktivnosti -Name[hu]=Aktivitások modul -Name[ia]=Motor de activitate -Name[is]=Virknivél -Name[it]=Motore delle attività -Name[ja]=アクティビティエンジン -Name[kk]=Белсенділік тетігі -Name[km]=ម៉ាស៊ីន​សកម្មភាព -Name[kn]=ಚಟುವಟಿಕೆ ಎಂಜಿನ್ -Name[ko]=활동 엔진 -Name[lt]=Veiklų modulis -Name[lv]=Aktivitāšu dzinējs -Name[mr]=कार्यपध्दती इंजिन -Name[nb]=Aktivitetsmotor -Name[nds]=Aktivitetenpleger -Name[nl]=Activiteiten-engine -Name[pa]=ਸਰਗਰਮੀ ਇੰਜਣ -Name[pl]=Silnik działań -Name[pt]=Motor de Actividades -Name[pt_BR]=Mecanismo de atividades -Name[ro]=Motor de activități -Name[ru]=Источник данных для комнат -Name[sk]=Nástroj aktivít -Name[sl]=Pogon za dejavnosti -Name[sr]=мотор активности -Name[sr@ijekavian]=мотор активности -Name[sr@ijekavianlatin]=motor aktivnosti -Name[sr@latin]=motor aktivnosti -Name[sv]=Aktivitetsgränssnitt -Name[th]=กลไกจัดการกิจกรรม -Name[tr]=Etkinlik Motoru -Name[ug]=پائالىيەت ماتورى -Name[uk]=Рушій просторів дій -Name[vi]=Cơ chế cho Hoạt động -Name[wa]=Moteur d' activités -Name[x-test]=xxActivities Enginexx -Name[zh_CN]=活动引擎 -Name[zh_TW]=活動引擎 -Comment=Information on Plasma Activities -Comment[ar]=معلومات عن أنشطة بلازما -Comment[bg]=Данни за дейности в Plasma -Comment[bs]=Podaci o plazma aktivnostima -Comment[ca]=Informació quant a activitats del Plasma -Comment[ca@valencia]=Informació quant a activitats del Plasma -Comment[cs]=Informace o Plasma aktivitách. -Comment[da]=Information om Plasma-aktiviteter -Comment[de]=Informationen über Plasma-Aktivitäten -Comment[el]=Πληροφορίες για τις δραστηριότητες Plasma -Comment[en_GB]=Information on Plasma Activities -Comment[es]=Información sobre las actividades de Plasma -Comment[et]=Teave Plasma tegevuste kohta. -Comment[eu]=Plasmaren jarduerei buruzko informazioa -Comment[fi]=Tietoja Plasma-aktiviteeteista -Comment[fr]=Informations sur les activités de Plasma -Comment[gl]=Información acerca das actividades de Plasma -Comment[he]=מידע אודות הפעילויות של Plasma -Comment[hr]=Informacije o Plasminim aktivnostima -Comment[hu]=Információk a Plasma aktivitásokról -Comment[ia]=Information re activitates de Plasma -Comment[is]=Upplýsingar um Plasma virkni -Comment[it]=Informazioni sulle attività di Plasma -Comment[ja]=Plasma アクティビティの情報 -Comment[kk]=Plasma белсенділігі туралы мәлімет -Comment[km]=ព័ត៌មាន​អំពី​សកម្មភាព​ប្លាស្មា -Comment[kn]=ಪ್ಲಾಸ್ಮಾ ಚಟುವಟಿಕೆಗಳ ಬಗೆಗೆ ಮಾಹಿತಿ. -Comment[ko]=Plasma 활동 정보 -Comment[lt]=Informacija apie Plasma veiklas -Comment[lv]=Informācija par Plasma aktivitātēm -Comment[mr]=प्लाज्मा कार्यपध्दती बद्दल माहिती -Comment[nb]=Informasjon om Plasma-aktiviteter -Comment[nds]=Informatschonen över Plasma-Aktiviteten -Comment[nl]=Informatie over Plasma activiteiten -Comment[nn]=Informasjon om Plasma-aktivitetar -Comment[pa]=ਪਲਾਜ਼ਮਾ ਸਰਗਰਮੀਆਂ ਲਈ ਜਾਣਕਾਰੀ -Comment[pl]=Informacje o działaniach Plazmy -Comment[pt]=Informação sobre as Actividades do Plasma -Comment[pt_BR]=Informações sobre as atividades do Plasma -Comment[ro]=Informații despre activitățile Plasma -Comment[ru]=Сведения о комнатах Plasma -Comment[sk]=Informácie o Plasma aktivitách -Comment[sl]=Podatki o dejavnostih za Plasmo -Comment[sr]=Подаци о плазма активностима -Comment[sr@ijekavian]=Подаци о плазма активностима -Comment[sr@ijekavianlatin]=Podaci o plasma aktivnostima -Comment[sr@latin]=Podaci o plasma aktivnostima -Comment[sv]=Information om aktiviteter i Plasma -Comment[th]=ข้อมูลเกี่ยวกับกิจกรรมต่างๆ ของพลาสมา -Comment[tr]=Plasma Etkinliklerindeki Bilgiler -Comment[ug]=پلازما پائالىيىتىدىكى ئۇچۇر -Comment[uk]=Інформація про простори дій Плазми -Comment[vi]=Thông tin về các Hoạt động Plasma -Comment[wa]=Pondants et djondants so les activités di Plasma -Comment[x-test]=xxInformation on Plasma Activitiesxx -Comment[zh_CN]=关于 Plasma 活动的信息 -Comment[zh_TW]=Plasma 活動的資訊 -Type=Service -Icon=preferences-activities - -X-KDE-ServiceTypes=Plasma/DataEngine -X-KDE-Library=plasma_engine_activities -X-Plasma-EngineName=activities -X-KDE-PluginInfo-Author=Chani Armitage -X-KDE-PluginInfo-Email=chani@kde.org -X-KDE-PluginInfo-Name=org.kde.activities -X-KDE-PluginInfo-Version=0.1 -X-KDE-PluginInfo-Website=http://plasma.kde.org/ -X-KDE-PluginInfo-Category= -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=LGPL -X-KDE-PluginInfo-EnabledByDefault=true diff --git a/plasma/generic/declarativeimports/plasmaextracomponents/CMakeLists.txt b/plasma/generic/declarativeimports/plasmaextracomponents/CMakeLists.txt index f1d288b5..b9d471c8 100644 --- a/plasma/generic/declarativeimports/plasmaextracomponents/CMakeLists.txt +++ b/plasma/generic/declarativeimports/plasmaextracomponents/CMakeLists.txt @@ -7,14 +7,12 @@ set(plasmaextracomponents_SRCS fallbackcomponent.cpp ) -include_directories( ${KACTIVITIES_INCLUDE_DIR} ) - qt4_automoc(${plasmaextracomponents_SRCS}) add_library(plasmaextracomponentsplugin SHARED ${plasmaextracomponents_SRCS}) target_link_libraries(plasmaextracomponentsplugin ${QT_QTCORE_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY} - ${QT_QTGUI_LIBRARY} ${KDE4_PLASMA_LIBS} ${KACTIVITIES_LIBRARIES} ) + ${QT_QTGUI_LIBRARY} ${KDE4_PLASMA_LIBS} ) install(TARGETS plasmaextracomponentsplugin DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/plasma/extras) diff --git a/plasma/generic/runners/CMakeLists.txt b/plasma/generic/runners/CMakeLists.txt index 573b5087..37e7a819 100644 --- a/plasma/generic/runners/CMakeLists.txt +++ b/plasma/generic/runners/CMakeLists.txt @@ -1,4 +1,3 @@ -add_subdirectory(activities) add_subdirectory(bookmarks) add_subdirectory(calculator) add_subdirectory(locations) diff --git a/plasma/generic/runners/activities/CMakeLists.txt b/plasma/generic/runners/activities/CMakeLists.txt deleted file mode 100644 index c5e2337f..00000000 --- a/plasma/generic/runners/activities/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -include_directories(${KDEBASE_WORKSPACE_SOURCE_DIR}/libs ${KACTIVITIES_INCLUDE_DIR}) - -set(krunner_activities_SRCS - activityrunner.cpp -) - -kde4_add_plugin(krunner_activities ${krunner_activities_SRCS}) -target_link_libraries(krunner_activities ${KDE4_PLASMA_LIBS} ${KACTIVITIES_LIBRARIES}) - -install(TARGETS krunner_activities DESTINATION ${PLUGIN_INSTALL_DIR}) -install(FILES plasma-runner-activityrunner.desktop DESTINATION ${SERVICES_INSTALL_DIR}) - diff --git a/plasma/generic/runners/activities/Messages.sh b/plasma/generic/runners/activities/Messages.sh deleted file mode 100755 index b0d1be69..00000000 --- a/plasma/generic/runners/activities/Messages.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -$EXTRACTRC *.ui >> rc.cpp -$XGETTEXT *.cpp -o $podir/plasma_runner_activities.pot -rm -f rc.cpp diff --git a/plasma/generic/runners/activities/activityrunner.cpp b/plasma/generic/runners/activities/activityrunner.cpp deleted file mode 100644 index 728e155a..00000000 --- a/plasma/generic/runners/activities/activityrunner.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright (C) 2011 Aaron Seigo - * - * 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 - * published by the Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activityrunner.h" - -#include -#include -#include - -ActivityRunner::ActivityRunner(QObject *parent, const QVariantList &args) - : Plasma::AbstractRunner(parent, args), - m_activities(0), - m_keywordi18n(i18nc("KRunner keyword", "activity")), - m_keyword("activity"), - m_enabled(false) -{ - setObjectName(QLatin1String("Activities")); - setIgnoredTypes(Plasma::RunnerContext::Directory | Plasma::RunnerContext::File | - Plasma::RunnerContext::NetworkLocation | Plasma::RunnerContext::Help); - - connect(this, SIGNAL(prepare()), this, SLOT(prep())); - connect(this, SIGNAL(teardown()), this, SLOT(down())); - - serviceStatusChanged(KActivities::Consumer::FullFunctionality); -} - -void ActivityRunner::prep() -{ - if (!m_activities) { - m_activities = new KActivities::Controller(this); - connect(m_activities, SIGNAL(serviceStatusChanged(KActivities::Consumer::ServiceStatus)), - this, SLOT(serviceStatusChanged(KActivities::Consumer::ServiceStatus))); - serviceStatusChanged(m_activities->serviceStatus()); - } -} - -void ActivityRunner::down() -{ - delete m_activities; - m_activities = 0; -} - -void ActivityRunner::serviceStatusChanged(KActivities::Consumer::ServiceStatus status) -{ - const bool active = status != KActivities::Consumer::NotRunning; - if (m_enabled == active) { - return; - } - - m_enabled = active; - QList syntaxes; - if (m_enabled) { - setDefaultSyntax(Plasma::RunnerSyntax(m_keywordi18n, i18n("Lists all activities currently available to be run."))); - addSyntax(Plasma::RunnerSyntax(i18nc("KRunner keyword", "activity :q:"), i18n("Switches to activity :q:."))); - } -} - -ActivityRunner::~ActivityRunner() -{ -} - -void ActivityRunner::match(Plasma::RunnerContext &context) -{ - if (!m_enabled) { - return; - } - - const QString term = context.query().trimmed(); - bool list = false; - QString name; - - if (term.startsWith(m_keywordi18n, Qt::CaseInsensitive)) { - if (term.size() == m_keywordi18n.size()) { - list = true; - } else { - name = term.right(term.size() - m_keywordi18n.size()).trimmed(); - list = name.isEmpty(); - } - } else if (term.startsWith(m_keyword, Qt::CaseInsensitive)) { - if (term.size() == m_keyword.size()) { - list = true; - } else { - name = term.right(term.size() - m_keyword.size()).trimmed(); - list = name.isEmpty(); - } - } else if (context.singleRunnerQueryMode()) { - name = term; - } else { - return; - } - - QList matches; - QStringList activities = m_activities->listActivities(); - qSort(activities); - - const QString current = m_activities->currentActivity(); - - if (!context.isValid()) { - return; - } - - if (list) { - foreach (const QString &activity, activities) { - if (current == activity) { - continue; - } - - KActivities::Info info(activity); - addMatch(info, matches); - - if (!context.isValid()) { - return; - } - } - } else { - foreach (const QString &activity, activities) { - if (current == activity) { - continue; - } - - KActivities::Info info(activity); - if (info.name().startsWith(name, Qt::CaseInsensitive)) { - addMatch(info, matches); - } - - if (!context.isValid()) { - return; - } - } - } - - context.addMatches(context.query(), matches); -} - -void ActivityRunner::addMatch(const KActivities::Info &activity, QList &matches) -{ - Plasma::QueryMatch match(this); - match.setData(activity.id()); - match.setType(Plasma::QueryMatch::ExactMatch); - match.setIcon(activity.icon().isEmpty() ? KIcon("preferences-activities") : KIcon(activity.icon())); - match.setText(i18n("Switch to \"%1\"", activity.name())); - match.setRelevance(0.7 + ((activity.state() == KActivities::Info::Running || - activity.state() == KActivities::Info::Starting) ? 0.1 : 0)); - matches << match; -} - -void ActivityRunner::run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) -{ - Q_UNUSED(context) - - if (!m_enabled || !m_activities) { - return; - } - - m_activities->setCurrentActivity(match.data().toString()); -} - -#include "activityrunner.moc" diff --git a/plasma/generic/runners/activities/activityrunner.h b/plasma/generic/runners/activities/activityrunner.h deleted file mode 100644 index 7fef7492..00000000 --- a/plasma/generic/runners/activities/activityrunner.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2011 Aaron Seigo - * - * 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 - * published by the Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITYRUNNER_H -#define ACTIVITYRUNNER_H - -#include - -#include - -class ActivityRunner : public Plasma::AbstractRunner -{ - Q_OBJECT - - public: - ActivityRunner(QObject *parent, const QVariantList &args); - ~ActivityRunner(); - - void match(Plasma::RunnerContext &context); - void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &action); - - private Q_SLOTS: - void prep(); - void down(); - void serviceStatusChanged(KActivities::Consumer::ServiceStatus status); - - private: - void addMatch(const KActivities::Info &activity, QList &matches); - - KActivities::Controller *m_activities; - const QString m_keywordi18n; - const QString m_keyword; - bool m_enabled; -}; - -K_EXPORT_PLASMA_RUNNER(activities, ActivityRunner) - -#endif diff --git a/plasma/generic/runners/activities/plasma-runner-activityrunner.desktop b/plasma/generic/runners/activities/plasma-runner-activityrunner.desktop deleted file mode 100644 index f1ecde23..00000000 --- a/plasma/generic/runners/activities/plasma-runner-activityrunner.desktop +++ /dev/null @@ -1,121 +0,0 @@ -[Desktop Entry] -Name=Activities -Name[ar]=الأنشطة -Name[bg]=Дейности -Name[bs]=motor aktivnosti -Name[ca]=Activitats -Name[ca@valencia]=Activitats -Name[cs]=Aktivity -Name[da]=Aktiviteter -Name[de]=Aktivitäten -Name[el]=Δραστηριότητες -Name[en_GB]=Activities -Name[es]=Actividades -Name[et]=Tegevused -Name[eu]=Jarduerak -Name[fa]=فعالیتها -Name[fi]=Aktiviteetit -Name[fr]=Activités -Name[ga]=Gníomhaíochtaí -Name[gl]=Actividades -Name[he]=עילויות -Name[hr]=Aktivnosti -Name[hu]=Aktivitások -Name[ia]=Activitates -Name[is]=Virknistjóri -Name[it]=Attività -Name[ja]=アクティビティ -Name[kk]=Белсенділіктер -Name[km]=សកម្មភាព -Name[ko]=활동 -Name[lt]=Veiklos -Name[lv]=Aktivitātes -Name[mr]=कार्यपध्दती -Name[nb]=Aktiviteter -Name[nds]=Aktiviteten -Name[nl]=Activiteiten -Name[pa]=ਸਰਗਰਮੀਆਂ -Name[pl]=Działania -Name[pt]=Actividades -Name[pt_BR]=Atividades -Name[ro]=Activități -Name[ru]=Комнаты -Name[sk]=Aktivity -Name[sl]=Dejavnosti -Name[sr]=активности -Name[sr@ijekavian]=активности -Name[sr@ijekavianlatin]=aktivnosti -Name[sr@latin]=aktivnosti -Name[sv]=Aktiviteter -Name[tr]=Etkinlikler -Name[ug]=پائالىيەتلەر -Name[uk]=Простори дій -Name[vi]=Hoạt động -Name[wa]=Activités -Name[x-test]=xxActivitiesxx -Name[zh_CN]=活动 -Name[zh_TW]=活動 -Comment=List and switch between desktop activities -Comment[bg]=Списък и превключване между дейностите -Comment[bs]=Prikaz i prebacivanje između aktivnosti radne površine -Comment[ca]=Llista i commuta entre activitats d'escriptori -Comment[ca@valencia]=Llista i commuta entre activitats d'escriptori -Comment[cs]=Zobrazení a přepínač aktivit pracovní plochy -Comment[da]=Vis og skift mellem skrivebordsaktiviteter -Comment[de]=Aktivitäten anzeigen und zwischen ihnen umschalten -Comment[el]=Εμφάνιση και εναλλαγή μεταξύ των δραστηριοτήτων της επιφάνειας εργασίας -Comment[en_GB]=List and switch between desktop activities -Comment[es]=Ver y cambiar entre las actividades de escritorio -Comment[et]=Töölauategevuste näitamine ja nende vahel lülitamine -Comment[eu]=Zerrendatu mahaigaineko jarduerak eta batetik bestera aldatu -Comment[fi]=Luettele aktiviteetit ja vaihda niiden välillä -Comment[fr]=Affiche les activités du bureau et permet d'en changer -Comment[gl]=Lista e troca entre actividades o escritorio -Comment[he]=הצגה והחלפה בין פעילויות שולחן עבודה -Comment[hr]=Izlistaj i prebacuj između aktivnosti radne površine -Comment[hu]=Asztali aktivitások listázása és váltás közöttük -Comment[ia]=Lista e commuta inter activitates de scriptorio -Comment[is]=Telur upp og skiptir milli skjáborðsvirkni -Comment[it]=Visualizza e cambia le attività del desktop -Comment[ja]=デスクトップアクティビティを一覧表示して切り替える -Comment[kk]=Белсенділіктерді тізімдеу және ауыстыру -Comment[km]=មើល ហើយ​ប្ដូរ​ប្លង់​ផ្ទៃតុ​សកម្ម​ -Comment[ko]=데스크톱 활동을 보거나 바꾸기 -Comment[lt]=Peržiūrėti ir persijungti tarp darbastalio veiklų -Comment[lv]=Parādīt un pārslēgties starp virtuālajām darbvirsmām -Comment[mr]=वेगळ्या डेस्कटॉप कार्यपध्दतीवर जाण्यासाठी यादी दर्शवा व बदला -Comment[nb]=Vis og bytt mellom skrivebordsaktiviteter -Comment[nds]=Aktiv Schriefdischakschonen ankieken un wesseln -Comment[nl]=Bureaubladactiviteiten laten zien en er tussen schakelen -Comment[pa]=ਡੈਸਕਟਾਪ ਸਰਗਰਮੀਆਂ ਵੇਖੋ ਅਤੇ ਉਹਨਾਂ ਵਿੱਚ ਜਾਉ -Comment[pl]=Tworzenie listy i przełączanie się pomiędzy działaniami pulpitu -Comment[pt]=Ver e mudar de actividades no ambiente de trabalho -Comment[pt_BR]=Lista e alterna entre as atividades da área de trabalho -Comment[ro]=Vizualizează și schimbă între activitățile biroului -Comment[ru]=Просмотр и переключение между комнатами -Comment[sk]=Vypísať a prepínať medzi aktivitami pracovnej plochy -Comment[sl]=Oglejte si namizne dejavnosti in preklopite med njimi -Comment[sr]=Приказ и пребацивање између активности површи -Comment[sr@ijekavian]=Приказ и пребацивање између активности површи -Comment[sr@ijekavianlatin]=Prikaz i prebacivanje između aktivnosti površi -Comment[sr@latin]=Prikaz i prebacivanje između aktivnosti površi -Comment[sv]=Visa och byt mellan skrivbordsaktiviteter -Comment[tr]=Listele ve masaüstü eylemleri arasında değiştir -Comment[ug]=ئۈستەلئۈستى پائالىيەتلىرى ئارىسىدىكى تىزىم ۋە ئالماشتۇرۇش -Comment[uk]=Перегляд і перемикання між просторами дій стільниці -Comment[vi]=Liệt kê và chuyển đổi giữa các Hoạt động màn hình làm việc -Comment[wa]=Fé l' djivêye eyet passer d' ene activité do scribanne a ene ôte -Comment[x-test]=xxList and switch between desktop activitiesxx -Comment[zh_CN]=显示和切换桌面活动 -Comment[zh_TW]=列出並在桌面活動間切換 -X-KDE-ServiceTypes=Plasma/Runner -Type=Service -Icon=preferences-activities -X-KDE-Library=krunner_activities -X-KDE-PluginInfo-Author=Plasma Team -X-KDE-PluginInfo-Email=plasma-devel@kde.org -X-KDE-PluginInfo-Name=org.kde.activities -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-License=LGPL -X-KDE-PluginInfo-EnabledByDefault=true -X-Plasma-AdvertiseSingleRunnerQueryMode=true diff --git a/powerdevil/daemon/CMakeLists.txt b/powerdevil/daemon/CMakeLists.txt index e7f1b3ef..713a07e0 100644 --- a/powerdevil/daemon/CMakeLists.txt +++ b/powerdevil/daemon/CMakeLists.txt @@ -1,6 +1,5 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ${KACTIVITIES_INCLUDE_DIR}) + ${CMAKE_CURRENT_BINARY_DIR}) add_subdirectory(actions) @@ -54,7 +53,6 @@ target_link_libraries(powerdevilcore ${KDE4_SOLID_LIBS} ${KDE4_KIDLETIME_LIBS} ${KDE4_PLASMA_LIBS} - ${KACTIVITIES_LIBRARIES} kworkspace ) diff --git a/powerdevil/kcmodule/CMakeLists.txt b/powerdevil/kcmodule/CMakeLists.txt index bb3c13e9..6ac72936 100644 --- a/powerdevil/kcmodule/CMakeLists.txt +++ b/powerdevil/kcmodule/CMakeLists.txt @@ -5,6 +5,5 @@ include_directories ( add_subdirectory(common) -add_subdirectory(activities) add_subdirectory(global) add_subdirectory(profiles) diff --git a/powerdevil/kcmodule/activities/CMakeLists.txt b/powerdevil/kcmodule/activities/CMakeLists.txt deleted file mode 100644 index afe5ce82..00000000 --- a/powerdevil/kcmodule/activities/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ - -set( kcm_powerdevil_activities_SRCS - activitypage.cpp - activitywidget.cpp - ../common/ErrorOverlay.cpp -) - -kde4_add_ui_files(kcm_powerdevil_activities_SRCS - activityWidget.ui) - -kde4_add_kcfg_files(kcm_powerdevil_activities_SRCS ../../PowerDevilSettings.kcfgc) - -kde4_add_plugin(kcm_powerdevilactivitiesconfig ${kcm_powerdevil_activities_SRCS}) - -include_directories(${KACTIVITIES_INCLUDE_DIR}) - -target_link_libraries(kcm_powerdevilactivitiesconfig - ${KDE4_KDECORE_LIBS} - ${KDE4_KDEUI_LIBRARY} - ${KDE4_SOLID_LIBS} - ${KACTIVITIES_LIBRARIES} - powerdevilconfigcommonprivate -) - -install(TARGETS kcm_powerdevilactivitiesconfig DESTINATION ${PLUGIN_INSTALL_DIR} ) -install( FILES powerdevilactivitiesconfig.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) diff --git a/powerdevil/kcmodule/activities/Messages.sh b/powerdevil/kcmodule/activities/Messages.sh deleted file mode 100644 index c65284a8..00000000 --- a/powerdevil/kcmodule/activities/Messages.sh +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh -$EXTRACTRC `find -name \*.ui -o -name \*.rc -o -name \*.kcfg` >> rc.cpp || exit 11 -$XGETTEXT `find -name \*.cpp -o -name \*.h` -o $podir/powerdevilactivitiesconfig.pot -rm -f rc.cpp - diff --git a/powerdevil/kcmodule/activities/activityWidget.ui b/powerdevil/kcmodule/activities/activityWidget.ui deleted file mode 100644 index ec22df23..00000000 --- a/powerdevil/kcmodule/activities/activityWidget.ui +++ /dev/null @@ -1,192 +0,0 @@ - - - ActivityWidget - - - - 0 - 0 - 676 - 474 - - - - - - - - - Don't use special settings - - - true - - - - - - - - - Act like - - - - - - - false - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Define a special behavior - - - - - - - 30 - - - - - Never shutdown the screen - - - - - - - Never suspend or shutdown the computer - - - - - - - 10 - - - - - Always - - - - - - - - - - after - - - - - - - min - - - 1 - - - 360 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Use separate settings (advanced users only) - - - - - - - 30 - - - - - - - - - Qt::Vertical - - - - 20 - 268 - - - - - - - - - KComboBox - QComboBox -
kcombobox.h
-
-
- - - - actLikeRadio - toggled(bool) - actLikeComboBox - setEnabled(bool) - - - 44 - 66 - - - 133 - 66 - - - - -
diff --git a/powerdevil/kcmodule/activities/activitypage.cpp b/powerdevil/kcmodule/activities/activitypage.cpp deleted file mode 100644 index d8f11693..00000000 --- a/powerdevil/kcmodule/activities/activitypage.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2011 by Dario Freddi * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - - -#include "activitypage.h" - -#include "activitywidget.h" - -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -K_PLUGIN_FACTORY(PowerDevilActivitiesKCMFactory, - registerPlugin(); - ) -K_EXPORT_PLUGIN(PowerDevilActivitiesKCMFactory("powerdevilactivitiesconfig","powerdevil")) - -ActivityPage::ActivityPage(QWidget *parent, const QVariantList &args) - : KCModule(PowerDevilActivitiesKCMFactory::componentData(), parent, args) - , m_activityConsumer(new KActivities::Consumer(this)) -{ - setButtons(Apply | Help); - - KAboutData *about = - new KAboutData("powerdevilactivitiesconfig", "powerdevilactivitiesconfig", ki18n("Activities Power Management Configuration"), - "", ki18n("A per-activity configurator of KDE Power Management System"), - KAboutData::License_GPL, ki18n("(c), 2010 Dario Freddi"), - ki18n("From this module, you can fine tune power management settings for each of your activities.")); - - about->addAuthor(ki18n("Dario Freddi"), ki18n("Maintainer") , "drf@kde.org", - "http://drfav.wordpress.com"); - - setAboutData(about); - - // Build the UI - KTabWidget *tabWidget = new KTabWidget(); - QVBoxLayout *lay = new QVBoxLayout(); - - foreach (const QString &activity, m_activityConsumer->listActivities()) { - KActivities::Info *info = new KActivities::Info(activity, this); - QString icon = info->icon(); - QString name = info->name(); - kDebug() << activity << info->isValid() << info->availability(); - - QScrollArea *scrollArea = new QScrollArea(); - scrollArea->setFrameShape(QFrame::NoFrame); - scrollArea->setFrameShadow(QFrame::Plain); - scrollArea->setLineWidth(0); - scrollArea->setWidgetResizable(true); - - ActivityWidget *activityWidget = new ActivityWidget(activity); - scrollArea->setWidget(activityWidget); - - activityWidget->load(); - m_activityWidgets.append(activityWidget); - - connect(activityWidget, SIGNAL(changed(bool)), this, SIGNAL(changed(bool))); - - tabWidget->addTab(scrollArea, KIcon(icon), name); - } - - // Message widget - m_messageWidget = new KMessageWidget(i18n("The activity service is running with bare functionalities.\n" - "Names and icons of the activities might not be available.")); - m_messageWidget.data()->setMessageType(KMessageWidget::Warning); - m_messageWidget.data()->hide(); - - lay->addWidget(m_messageWidget.data()); - lay->addWidget(tabWidget); - setLayout(lay); - - connect(m_activityConsumer, SIGNAL(serviceStatusChanged(KActivities::Consumer::ServiceStatus)), - this, SLOT(onActivityServiceStatusChanged(KActivities::Consumer::ServiceStatus))); - onActivityServiceStatusChanged(m_activityConsumer->serviceStatus()); - - QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.kde.Solid.PowerManagement", - QDBusConnection::sessionBus(), - QDBusServiceWatcher::WatchForRegistration | - QDBusServiceWatcher::WatchForUnregistration, - this); - - connect(watcher, SIGNAL(serviceRegistered(QString)), this, SLOT(onServiceRegistered(QString))); - connect(watcher, SIGNAL(serviceUnregistered(QString)), this, SLOT(onServiceUnregistered(QString))); - - if (QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) { - onServiceRegistered("org.kde.Solid.PowerManagement"); - } else { - onServiceUnregistered("org.kde.Solid.PowerManagement"); - } -} - -ActivityPage::~ActivityPage() -{ - -} - -void ActivityPage::load() -{ - foreach (ActivityWidget *widget, m_activityWidgets) { - widget->load(); - } - - emit changed(false); -} - -void ActivityPage::save() -{ - foreach (ActivityWidget *widget, m_activityWidgets) { - widget->save(); - } - - emit changed(false); - - // Ask to refresh status - QDBusMessage call = QDBusMessage::createMethodCall("org.kde.Solid.PowerManagement", "/org/kde/Solid/PowerManagement", - "org.kde.Solid.PowerManagement", "refreshStatus"); - - // Perform call - QDBusConnection::sessionBus().asyncCall(call); -} - -void ActivityPage::fillUi() -{ - -} - -void ActivityPage::onActivityServiceStatusChanged(KActivities::Consumer::ServiceStatus status) -{ - switch (status) { - case KActivities::Consumer::NotRunning: - // Create error overlay, if not present - if (m_errorOverlay.isNull()) { - m_errorOverlay = new ErrorOverlay(this, i18n("The activity service is not running.\n" - "It is necessary to have the activity manager running " - "to configure activity-specific power management behavior."), - this); - } - break; - case KActivities::Consumer::BareFunctionality: - // Show message widget - m_messageWidget.data()->show(); - break; - case KActivities::Consumer::FullFunctionality: - if (m_previousServiceStatus != KActivities::Consumer::FullFunctionality && - !m_errorOverlay.isNull()) { - m_errorOverlay.data()->deleteLater(); - if (QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.Solid.PowerManagement")) { - onServiceRegistered("org.kde.Solid.PowerManagement"); - } else { - onServiceUnregistered("org.kde.Solid.PowerManagement"); - } - } - if (m_messageWidget.data()->isVisible()) { - m_messageWidget.data()->hide(); - } - break; - } -} - -void ActivityPage::defaults() -{ - KCModule::defaults(); -} - -void ActivityPage::onServiceRegistered(const QString& service) -{ - Q_UNUSED(service); - - if (!m_errorOverlay.isNull()) { - m_errorOverlay.data()->deleteLater(); - } - - onActivityServiceStatusChanged(m_activityConsumer->serviceStatus()); -} - -void ActivityPage::onServiceUnregistered(const QString& service) -{ - Q_UNUSED(service); - - if (!m_errorOverlay.isNull()) { - return; - } - - m_errorOverlay = new ErrorOverlay(this, i18n("The Power Management Service appears not to be running.\n" - "This can be solved by starting or scheduling it inside \"Startup and Shutdown\""), - this); -} - -#include "activitypage.moc" diff --git a/powerdevil/kcmodule/activities/activitypage.h b/powerdevil/kcmodule/activities/activitypage.h deleted file mode 100644 index 230f8354..00000000 --- a/powerdevil/kcmodule/activities/activitypage.h +++ /dev/null @@ -1,57 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2011 by Dario Freddi * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - - -#ifndef ACTIVITYPAGE_H -#define ACTIVITYPAGE_H - -#include - -#include - -class ErrorOverlay; -class ActivityWidget; -class KMessageWidget; -class ActivityPage : public KCModule -{ - Q_OBJECT - -public: - ActivityPage(QWidget *parent, const QVariantList &args); - virtual ~ActivityPage(); - void fillUi(); - - void load(); - void save(); - virtual void defaults(); - -private Q_SLOTS: - void onActivityServiceStatusChanged(KActivities::Consumer::ServiceStatus status); - void onServiceRegistered(const QString &service); - void onServiceUnregistered(const QString &service); - -private: - KActivities::Consumer *m_activityConsumer; - QList< ActivityWidget* > m_activityWidgets; - QWeakPointer< ErrorOverlay > m_errorOverlay; - QWeakPointer< KMessageWidget > m_messageWidget; - KActivities::Consumer::ServiceStatus m_previousServiceStatus; -}; - -#endif // ACTIVITYPAGE_H diff --git a/powerdevil/kcmodule/activities/activitywidget.cpp b/powerdevil/kcmodule/activities/activitywidget.cpp deleted file mode 100644 index 8d9517a7..00000000 --- a/powerdevil/kcmodule/activities/activitywidget.cpp +++ /dev/null @@ -1,189 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2011 by Dario Freddi * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - - -#include "activitywidget.h" - -#include "ui_activityWidget.h" - -#include "daemon/actions/bundled/suspendsession.h" - -#include -#include -#include -#include - -ActivityWidget::ActivityWidget(const QString& activity, QWidget* parent) - : QWidget(parent) - , m_ui(new Ui::ActivityWidget) - , m_profilesConfig(KSharedConfig::openConfig("powermanagementprofilesrc", KConfig::SimpleConfig | KConfig::CascadeConfig)) - , m_activity(activity) - , m_activityConsumer(new KActivities::Consumer(this)) - , m_actionEditWidget(new ActionEditWidget(QString("Activities/%1/SeparateSettings").arg(activity))) -{ - m_ui->setupUi(this); - - m_ui->separateSettingsLayout->addWidget(m_actionEditWidget); - - for (int i = 0; i < m_ui->specialBehaviorLayout->count(); ++i) { - QWidget *widget = m_ui->specialBehaviorLayout->itemAt(i)->widget(); - if (widget) { - widget->setVisible(false); - connect(m_ui->specialBehaviorRadio, SIGNAL(toggled(bool)), widget, SLOT(setVisible(bool))); - } else { - QLayout *layout = m_ui->specialBehaviorLayout->itemAt(i)->layout(); - if (layout) { - for (int j = 0; j < layout->count(); ++j) { - QWidget *widget = layout->itemAt(j)->widget(); - if (widget) { - widget->setVisible(false); - connect(m_ui->specialBehaviorRadio, SIGNAL(toggled(bool)), widget, SLOT(setVisible(bool))); - } - } - } - } - } - - m_actionEditWidget->setVisible(false); - m_actionEditWidget->load(); - - connect(m_ui->separateSettingsRadio, SIGNAL(toggled(bool)), m_actionEditWidget, SLOT(setVisible(bool))); - - connect(m_ui->actLikeRadio, SIGNAL(toggled(bool)), this, SLOT(setChanged())); - connect(m_ui->noSettingsRadio, SIGNAL(toggled(bool)), this, SLOT(setChanged())); - connect(m_ui->separateSettingsRadio, SIGNAL(toggled(bool)), this, SLOT(setChanged())); - connect(m_ui->specialBehaviorRadio, SIGNAL(toggled(bool)), this, SLOT(setChanged())); - connect(m_ui->actLikeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setChanged())); - connect(m_ui->alwaysActionBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setChanged())); - connect(m_ui->alwaysAfterSpin, SIGNAL(valueChanged(int)), this, SLOT(setChanged())); - - connect(m_actionEditWidget, SIGNAL(changed(bool)), this, SIGNAL(changed(bool))); -} - -ActivityWidget::~ActivityWidget() -{ - -} - -void ActivityWidget::load() -{ - KConfigGroup activitiesGroup(m_profilesConfig, "Activities"); - KConfigGroup config = activitiesGroup.group(m_activity); - - using namespace PowerDevil::BundledActions; - - QSet< Solid::PowerManagement::SleepState > methods = Solid::PowerManagement::supportedSleepStates(); - - if (methods.contains(Solid::PowerManagement::SuspendState)) { - m_ui->alwaysActionBox->addItem(KIcon("system-suspend"), - i18n("Sleep"), (uint)SuspendSession::ToRamMode); - } - if (methods.contains(Solid::PowerManagement::HibernateState)) { - m_ui->alwaysActionBox->addItem(KIcon("system-suspend-hibernate"), - i18n("Hibernate"), (uint)SuspendSession::ToDiskMode); - } - m_ui->alwaysActionBox->addItem(KIcon("system-shutdown"), i18n("Shutdown"), (uint)SuspendSession::ShutdownMode); - - m_ui->actLikeComboBox->clear(); - - m_ui->actLikeComboBox->addItem(KIcon("battery-charging"), i18n("PC running on AC power"), "AC"); - m_ui->actLikeComboBox->addItem(KIcon("battery-060"), i18n("PC running on battery power"), "Battery"); - m_ui->actLikeComboBox->addItem(KIcon("battery-low"), i18n("PC running on low battery"), "LowBattery"); - - foreach (const QString &activity, m_activityConsumer->listActivities()) { - if (activity == m_activity) { - continue; - } - - if (activitiesGroup.group(activity).readEntry("mode", "None") == "None" || - activitiesGroup.group(activity).readEntry("mode", "None") == "ActLike") { - continue; - } - - KActivities::Info *info = new KActivities::Info(activity, this); - QString icon = info->icon(); - QString name = i18nc("This is meant to be: Act like activity %1", - "Activity \"%1\"", info->name()); - - m_ui->actLikeComboBox->addItem(KIcon(icon), name, activity); - } - - // Proper loading routine - - if (config.readEntry("mode", QString()) == "ActLike") { - m_ui->actLikeRadio->setChecked(true); - m_ui->actLikeComboBox->setCurrentIndex(m_ui->actLikeComboBox->findData(config.readEntry("actLike", QString()))); - } else if (config.readEntry("mode", QString()) == "SpecialBehavior") { - m_ui->specialBehaviorRadio->setChecked(true); - KConfigGroup behaviorGroup = config.group("SpecialBehavior"); - - m_ui->noShutdownPCBox->setChecked(behaviorGroup.readEntry("noSuspend", false)); - m_ui->noShutdownScreenBox->setChecked(behaviorGroup.readEntry("noScreenManagement", false)); - m_ui->alwaysBox->setChecked(behaviorGroup.readEntry("performAction", false)); - - KConfigGroup actionConfig = behaviorGroup.group("ActionConfig"); - m_ui->alwaysActionBox->setCurrentIndex(m_ui->alwaysActionBox->findData(actionConfig.readEntry("suspendType", 0))); - m_ui->alwaysAfterSpin->setValue(actionConfig.readEntry("idleTime", 600000) / 60 / 1000); - } else if (config.readEntry("mode", QString()) == "SeparateSettings") { - m_ui->separateSettingsRadio->setChecked(true); - - m_actionEditWidget->load(); - } -} - -void ActivityWidget::save() -{ - KConfigGroup activitiesGroup(m_profilesConfig, "Activities"); - KConfigGroup config = activitiesGroup.group(m_activity); - - if (m_ui->actLikeRadio->isChecked()) { - config.writeEntry("mode", "ActLike"); - config.writeEntry("actLike", m_ui->actLikeComboBox->itemData(m_ui->actLikeComboBox->currentIndex()).toString()); - } else if (m_ui->specialBehaviorRadio->isChecked()) { - config.writeEntry("mode", "SpecialBehavior"); - - KConfigGroup behaviorGroup = config.group("SpecialBehavior"); - - behaviorGroup.writeEntry("noSuspend", m_ui->noShutdownPCBox->isChecked()); - behaviorGroup.writeEntry("noScreenManagement", m_ui->noShutdownScreenBox->isChecked()); - behaviorGroup.writeEntry("performAction", m_ui->alwaysBox->isChecked()); - - KConfigGroup actionConfig = behaviorGroup.group("ActionConfig"); - actionConfig.writeEntry("suspendType", m_ui->alwaysActionBox->itemData(m_ui->alwaysActionBox->currentIndex())); - actionConfig.writeEntry("idleTime", m_ui->alwaysAfterSpin->value() * 60 * 1000); - - actionConfig.sync(); - behaviorGroup.sync(); - } else if (m_ui->separateSettingsRadio->isChecked()) { - config.writeEntry("mode", "SeparateSettings"); - m_actionEditWidget->save(); - } else { - config.writeEntry("mode", "None"); - } - - config.sync(); -} - -void ActivityWidget::setChanged() -{ - emit changed(true); -} - - -#include "activitywidget.moc" diff --git a/powerdevil/kcmodule/activities/activitywidget.h b/powerdevil/kcmodule/activities/activitywidget.h deleted file mode 100644 index 992029d6..00000000 --- a/powerdevil/kcmodule/activities/activitywidget.h +++ /dev/null @@ -1,61 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2011 by Dario Freddi * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - - -#ifndef ACTIVITYWIDGET_H -#define ACTIVITYWIDGET_H - -#include -#include - -class ActionEditWidget; -namespace KActivities -{ -class Consumer; -} // namespace KActivities - -namespace Ui { -class ActivityWidget; -} - -class ActivityWidget : public QWidget -{ - Q_OBJECT -public: - explicit ActivityWidget(const QString &activity, QWidget *parent = 0); - virtual ~ActivityWidget(); - -public Q_SLOTS: - void load(); - void save(); - - void setChanged(); - -Q_SIGNALS: - void changed(bool changed); - -private: - Ui::ActivityWidget *m_ui; - KSharedConfig::Ptr m_profilesConfig; - QString m_activity; - KActivities::Consumer *m_activityConsumer; - ActionEditWidget* m_actionEditWidget; -}; - -#endif // ACTIVITYWIDGET_H diff --git a/powerdevil/kcmodule/activities/powerdevilactivitiesconfig.desktop b/powerdevil/kcmodule/activities/powerdevilactivitiesconfig.desktop deleted file mode 100644 index b0980312..00000000 --- a/powerdevil/kcmodule/activities/powerdevilactivitiesconfig.desktop +++ /dev/null @@ -1,147 +0,0 @@ -[Desktop Entry] -Exec=kcmshell4 powerdevilactivitiesconfig -Icon=preferences-activities -Type=Service -X-KDE-ServiceTypes=KCModule -X-DocPath=kcontrol/powerdevil/index.html#activity-setting - -X-KDE-Library=kcm_powerdevilactivitiesconfig -X-KDE-ParentApp=kcontrol - -X-KDE-System-Settings-Parent-Category=power-management -X-KDE-Weight=50 - -Name=Activity Settings -Name[bs]=Postavke aktivnosti -Name[ca]=Arranjament d'activitat -Name[ca@valencia]=Arranjament d'activitat -Name[cs]=Nastavení aktivit -Name[da]=Aktivitetsindstillinger -Name[de]=Aktivitäten-Einstellungen -Name[el]=Ρυθμίσεις δραστηριοτήτων -Name[en_GB]=Activity Settings -Name[es]=Preferencias de la actividad -Name[et]=Tegevuse seadistused -Name[eu]=Jarduera-ezarpenak -Name[fi]=Aktiviteettiasetukset -Name[fr]=Configuration des activités -Name[ga]=Socruithe Gníomhaíochta -Name[gl]=Configuración da actividade -Name[he]=הגדרות של פעילות -Name[hu]=Aktivitásjellemzők -Name[ia]=Preferentias de activitate -Name[is]=Virknistillingar -Name[kk]=Істің параметрлері -Name[km]=ការ​កំណត់​សកម្មភាព -Name[ko]=활동 설정 -Name[lt]=Veiklos nustatymai -Name[mr]=कार्यपध्दती संयोजना -Name[nb]=Aktivitetsinnstillinger -Name[nds]=Aktiviteteninstellen -Name[nl]=Instellingen voor activiteiten -Name[pa]=ਐਕਟਵਿਟੀ ਸੈਟਿੰਗ -Name[pl]=Ustawienia działań -Name[pt]=Configuração da Actividade -Name[pt_BR]=Configurações da atividade -Name[ro]=Configurare activități -Name[ru]=Настройка для комнат -Name[sk]=Nastavenie aktivity -Name[sl]=Nastavitve dejavnosti -Name[sr]=Поставке активности -Name[sr@ijekavian]=Поставке активности -Name[sr@ijekavianlatin]=Postavke aktivnosti -Name[sr@latin]=Postavke aktivnosti -Name[sv]=Inställningar av aktiviteter -Name[tr]=Etkinlik Ayarları -Name[uk]=Параметри простору дій -Name[vi]=Thiết lập Hoạt động -Name[x-test]=xxActivity Settingsxx -Name[zh_CN]=活动设置 -Name[zh_TW]=活動設定 - -Comment=Configure per-activity Power Management -Comment[bs]=Konfiguracija po aktivnosti upravljanja napajanjem -Comment[ca]=Configura l'arranjament per activitat de gestió d'energia -Comment[ca@valencia]=Configura l'arranjament per activitat de gestió d'energia -Comment[cs]=Konfigurace správy napájení na činnost -Comment[da]=Indstil strømstyring pr. aktivitet -Comment[de]=Energieprofile pro Aktivität einzeln einrichten -Comment[el]=Διαμόρφωση ανά δραστηριότητα επιλογών διαχείρισης ενέργειας -Comment[en_GB]=Configure per-activity Power Management -Comment[es]=Configurar de las preferencias de la gestión de energía por actividad -Comment[et]=Toitehalduse seadistused tegevuste kaupa -Comment[eu]=Konfiguratu energia-kudeaketa jardueraka -Comment[fi]=Virranhallinnan aktiviteettikohtaiset asetukset -Comment[fr]=Configuration de la gestion d'énergie par activité -Comment[gl]=Configura a xestión da enerxía para cada actividade -Comment[he]=הגדרות צריכת חשמל לפי פעילות -Comment[hu]=Aktivitásonkénti energiakezelési beállítások módosítása -Comment[ia]=Configura gestion de energia per activitate -Comment[is]=Stilla orkustýringu á hverja virkni -Comment[kk]=Әрбір істің қуаттандыру параметрлерін баптау -Comment[km]=កំណត់​រចនាសម្ព័ន្ធក​នៃ​ការ​គ្រប់គ្រង​ថាមពល​ក្នុង​មួយ​សកម្មភាព -Comment[ko]=활동별 전원 관리 설정 -Comment[lt]=Konfigūruoti atskiros veiklos energijos valdymo nustatymus -Comment[mr]=प्रत्येक कार्यपध्दती साठी वीज व्यवस्थापन संयोजीत करा -Comment[nb]=Sett opp strømstyring per aktivitet -Comment[nds]=Stroompleeg för enkelte Aktiviteten instellen -Comment[nl]=Energiebeheer per activiteit instellen -Comment[pa]=ਪ੍ਰਤੀ-ਸਰਗਰਮੀ ਪਾਵਰ ਪਰਬੰਧ ਸੈਟਿੰਗ ਸੰਰਚਨਾ -Comment[pl]=Ustawienia zarządzania energią w zależności od działania -Comment[pt]=Configurar a Gestão de Energia por Actividade -Comment[pt_BR]=Configura o gerenciamento de energia por atividade -Comment[ro]=Configurează gestiunea alimentării per activitate -Comment[ru]=Настройка параметров энергосбережения для комнат -Comment[sk]=Nastaviť nastavenia správy napájania podľa aktivity -Comment[sl]=Nastavi upravljanje z energijo glede na dejavnost -Comment[sr]=Подешавање управљања напајањем према активности -Comment[sr@ijekavian]=Подешавање управљања напајањем према активности -Comment[sr@ijekavianlatin]=Podešavanje upravljanja napajanjem prema aktivnosti -Comment[sr@latin]=Podešavanje upravljanja napajanjem prema aktivnosti -Comment[sv]=Anpassa inställningar av strömhantering per aktivitet -Comment[tr]=Her Etkinlik için Genel Güç Yönetimi Ayarlarını Yapılandır -Comment[uk]=Налаштування окремих параметрів керування живленням простору дій -Comment[vi]=Cấu hình Quản lý năng lượng cho từng Hoạt động -Comment[x-test]=xxConfigure per-activity Power Managementxx -Comment[zh_CN]=配置基于活动的电源管理 -Comment[zh_TW]=設定個別活動的電源管理 - -X-KDE-Keywords=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities -X-KDE-Keywords[bs]=Sistem, Napajanje, Upravljanje napajanjem, energija, laptop, baterija, suspenzija, AC, suspendiraj, hiberniranje, osvljetljenje, perfomanse, kapak, aktivnost, aktivnosti -X-KDE-Keywords[ca]=sistema,energia,gestió d'energia,corrent,portàtil,bateria,suspensió,AC,suspendre,hibernació,lluminositat,rendiment,tapa,activitat,activitats -X-KDE-Keywords[ca@valencia]=sistema,energia,gestió d'energia,corrent,portàtil,bateria,suspensió,AC,suspendre,hibernació,lluminositat,rendiment,tapa,activitat,activitats -X-KDE-Keywords[da]=system,strøm,strømstyring,energi,laptop,bærbar,batteri,suspension,AC,strømforsyning,suspender,slumre,dvale,lysstyrke,ydelse,låg,aktivitet,aktiviteter -X-KDE-Keywords[de]=system,energie,energieverwaltung,laptop,notebook,akku,batterie,ruhezustand,tiefschlaf,helligkeit,leistung,deckel,aktivität -X-KDE-Keywords[el]=σύστημα,ενέργεια,διαχείριση ενέργειας,ενέργεια,φορητός,μπαταρία,αναστολή,AC,κοίμηση,νάρκη,λαμπρότητα,επιδόσεις,καπάκι,δραστηριότητα,δραστηριότητες -X-KDE-Keywords[en_GB]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities -X-KDE-Keywords[es]=sistema,energía,gestión de energía,energía,portátil,batería,suspensión,AC,suspender,hibernar,brillo,rendimiento,tapa,actividad,actividades -X-KDE-Keywords[et]=süsteem,energia,toide,toitehaldus,sülearvuti,aku,uneseisund,uni,talveuni, heledus,jõudlus,kaas,tegevus,tegevused -X-KDE-Keywords[eu]=sistema,energia,energia-kudeaketa,energia,eramangarria,bateria,egonean,korronte alternoa,egonean uztea,hibernatu,distira,errendimendua,tapa,jarduera,jarduerak -X-KDE-Keywords[fi]=järjestelmä,virta,virranhallinta,energia,kannettava,tietokone,läppäri,akku,lepotila,valmiustila,keskeytä,AC,virtalähde,kirkkaus,suorituskyky,kansi,aktiviteetti,aktiviteetit -X-KDE-Keywords[fr]=système, alimentation, gestion énergétique, énergie, portable, batterie, suspension, AC, suspendre, hiberner, luminosité, performance, capot, activité, activités -X-KDE-Keywords[gl]=sistema,enerxía,xestión da enerxía, xestión enerxética,carga,portátil,batería, suspender,corrente,hibernar,durmir,brillo,rendemento,tapa,actividade -X-KDE-Keywords[hu]=rendszer,energia,energiakezelés,energia,laptop,akkumulátor,AC,felfüggesztés,hibernálás,fényerő,teljesítmény,fedél,aktivitás,aktivitások -X-KDE-Keywords[ia]=systema,potentia,gestion de potentia,energia,laptop,batteria,suspension,CA,suspende,hiberna,brillantia,prestation,coperculo,activitate,activitates -X-KDE-Keywords[kk]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities -X-KDE-Keywords[km]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities -X-KDE-Keywords[ko]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,시스템,전원,전원 관리,에너지,노트북,배터리,어댑터,절전,대기 모드,대기,최대 절전,최대 절전 모드,밝기,성능,덮개,상판,활동 -X-KDE-Keywords[mr]=प्रणाली, वीज, वीज व्यवस्थापन, ऊर्जा, लैपटॉप, बॅटरी, अकार्यक्षम, AC, अकार्यक्षम, हायबरनेट, प्रखरता, लिड, कार्य -X-KDE-Keywords[nb]=system,strøm,strømstyring,energi,bærbar,batteri,hvilemodus,AC,hvile,dvale,lysstyrke,ytelse,lokk,aktivitet,aktiviteter -X-KDE-Keywords[nds]=Systeem,Stroom,Stroompleeg,Energie,Klappreekner,Batterie,utsetten,AC,Wesselstroom,infreren,Helligkeit,Leisten,Aktiviteet,Aktiviteten -X-KDE-Keywords[nl]=systeem,energie,energiebeheer,laptop,batterij,accu,suspension,AC,onderbreken,slapen,helderheid,prestaties,deksel,activiteit,activiteiten -X-KDE-Keywords[pl]=system,moc,zarządzanie energią,energia,laptop,bateria,wstrzymanie,AC,wstrzymaj,hibernuj,jasność,wydajność,pokrywka,działanie,działania -X-KDE-Keywords[pt]=sistema,energia,gestão de energia,portátil,bateria,suspensão,AC,suspender,hibernar,brilho,performance,tampo,actividade,actividades -X-KDE-Keywords[pt_BR]=sistema,energia,gerenciamento de energia,energia,portátil,laptop,notebook,bateria,suspensão,AC,suspender,hibernar,brilho,desempenho,tampa,atividade,atividades -X-KDE-Keywords[ru]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,системное,питание,управление питанием,энергопотребление,ноутбук,батарея,спящий режим,гибернация,ждущий режим,яркость,производительность,крышка,комната,комнаты -X-KDE-Keywords[sk]=systém,napájanie,správa napájanie,energia,laptop,batéria,uspanie,AC,uspať,hibernovať,jas,výkon,kryt,aktivita,aktivity -X-KDE-Keywords[sl]=sistem,energija,upravljanje z energijo,prenosnik,prenosni računalnik,baterija,akumulator,pripravljenost,mirovanje,električno omrežje,svetlost,zmogljivost,pokrov,dejavnost,dejavnosti,napajanje -X-KDE-Keywords[sr]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,систем,напајање,струја,управљање напајањем,лаптоп,батерија,суспендовање,АЦ,хибернација,светлина,осветљај,перформансе,поклопац,активност -X-KDE-Keywords[sr@ijekavian]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,систем,напајање,струја,управљање напајањем,лаптоп,батерија,суспендовање,АЦ,хибернација,светлина,осветљај,перформансе,поклопац,активност -X-KDE-Keywords[sr@ijekavianlatin]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,sistem,napajanje,struja,upravljanje napajanjem,laptop,baterija,suspendovanje,AC,hibernacija,svetlina,osvetljaj,performanse,poklopac,aktivnost -X-KDE-Keywords[sr@latin]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,sistem,napajanje,struja,upravljanje napajanjem,laptop,baterija,suspendovanje,AC,hibernacija,svetlina,osvetljaj,performanse,poklopac,aktivnost -X-KDE-Keywords[sv]=system,kraft,krafthantering,energi,bärbar dator,batteri,viloläge,AC,gå till viloläge,dvala,ljusstyrka,prestanda,lock,aktivitet,aktiviteter -X-KDE-Keywords[tr]=sistem,güç,güç yönetimi,enerji,dizüstü,pil,askıya alma,Adaptör,uyku kipi,hazırda bekletme,parlaklık,performans,başarım,dizüstü kapağı,ekran parlaklığı,etkinlik,etkinlikler -X-KDE-Keywords[uk]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,система,живлення,мережа,струм,керування,енергія,ноутбук,акумулятор,батарея,батареї,присипляння,призупинення,призупинка,яскравість,швидкодія,кришка,кришки,простір,дій,простори,активність -X-KDE-Keywords[x-test]=xxsystem,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activitiesxx -X-KDE-Keywords[zh_CN]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities,系统,电源,电源管理,能源,笔记本,电池,休眠,睡眠,交流,亮度,性能,活动 -X-KDE-Keywords[zh_TW]=system,power,power management,energy,laptop,battery,suspension,AC,suspend,hibernate,brightness,performance,lid,activity,activities