Activity::Activity(const QString &id, QObject *parent) : QObject(parent), m_id(id), m_plugin("default"), m_info(new KActivities::Info(id, this)), m_activityConsumer(new KActivities::Consumer(this)), m_current(false) { m_name = m_info->name(); m_icon = m_info->icon(); connect(m_info, SIGNAL(infoChanged()), this, SLOT(activityChanged())); connect(m_info, SIGNAL(stateChanged(KActivities::Info::State)), this, SLOT(activityStateChanged(KActivities::Info::State))); connect(m_info, SIGNAL(started()), this, SLOT(opened())); connect(m_info, SIGNAL(stopped()), this, SLOT(closed())); connect(m_info, SIGNAL(removed()), this, SLOT(removed())); connect(m_activityConsumer, SIGNAL(currentActivityChanged(QString)), this, SLOT(checkIfCurrent())); checkIfCurrent(); //find your containments foreach (Plasma::Containment *cont, PlasmaApp::self()->corona()->containments()) { if ((cont->containmentType() == Plasma::Containment::DesktopContainment || cont->containmentType() == Plasma::Containment::CustomContainment) && !PlasmaApp::self()->corona()->offscreenWidgets().contains(cont) && cont->context()->currentActivityId() == id) { insertContainment(cont); } } //kDebug() << m_containments.size(); }
void Database::setCurrentActivity(int activity) { if( activity == p->current_activity ) return; p->current_activity = activity; DB_EMIT currentActivityChanged(); }
void DesktopCorona::init() { setPreferredToolBoxPlugin(Plasma::Containment::DesktopContainment, "org.kde.desktoptoolbox"); setPreferredToolBoxPlugin(Plasma::Containment::CustomContainment, "org.kde.desktoptoolbox"); setPreferredToolBoxPlugin(Plasma::Containment::PanelContainment, "org.kde.paneltoolbox"); setPreferredToolBoxPlugin(Plasma::Containment::CustomPanelContainment, "org.kde.paneltoolbox"); kDebug() << "!!{} STARTUP TIME" << QTime().msecsTo(QTime::currentTime()) << "DesktopCorona init start" << "(line:" << __LINE__ << ")"; Kephal::Screens *screens = Kephal::Screens::self(); connect(screens, SIGNAL(screenAdded(Kephal::Screen*)), SLOT(screenAdded(Kephal::Screen*))); connect(KWindowSystem::self(), SIGNAL(workAreaChanged()), this, SIGNAL(availableScreenRegionChanged())); Plasma::ContainmentActionsPluginsConfig desktopPlugins; desktopPlugins.addPlugin(Qt::NoModifier, Qt::Vertical, "switchdesktop"); desktopPlugins.addPlugin(Qt::NoModifier, Qt::MidButton, "paste"); desktopPlugins.addPlugin(Qt::NoModifier, Qt::RightButton, "contextmenu"); Plasma::ContainmentActionsPluginsConfig panelPlugins; panelPlugins.addPlugin(Qt::NoModifier, Qt::RightButton, "contextmenu"); setContainmentActionsDefaults(Plasma::Containment::DesktopContainment, desktopPlugins); setContainmentActionsDefaults(Plasma::Containment::CustomContainment, desktopPlugins); setContainmentActionsDefaults(Plasma::Containment::PanelContainment, panelPlugins); setContainmentActionsDefaults(Plasma::Containment::CustomPanelContainment, panelPlugins); checkAddPanelAction(); //why do these actions belong to plasmaapp? //because it makes the keyboard shortcuts work. KAction *action = new KAction(PlasmaApp::self()); action->setText(i18n("Next Activity")); action->setObjectName( QLatin1String("Next Activity" )); // NO I18N action->setGlobalShortcut(KShortcut(Qt::META + Qt::Key_Tab)); connect(action, SIGNAL(triggered()), this, SLOT(activateNextActivity())); action = new KAction(PlasmaApp::self()); action->setText(i18n("Previous Activity")); action->setObjectName( QLatin1String("Previous Activity" )); // NO I18N action->setGlobalShortcut(KShortcut(Qt::META + Qt::SHIFT + Qt::Key_Tab)); connect(action, SIGNAL(triggered()), this, SLOT(activatePreviousActivity())); connect(this, SIGNAL(immutabilityChanged(Plasma::ImmutabilityType)), this, SLOT(updateImmutability(Plasma::ImmutabilityType))); connect(KSycoca::self(), SIGNAL(databaseChanged(QStringList)), this, SLOT(checkAddPanelAction(QStringList))); connect(m_activityController, SIGNAL(currentActivityChanged(QString)), this, SLOT(currentActivityChanged(QString))); connect(m_activityController, SIGNAL(activityAdded(QString)), this, SLOT(activityAdded(QString))); connect(m_activityController, SIGNAL(activityRemoved(QString)), this, SLOT(activityRemoved(QString))); mapAnimation(Plasma::Animator::AppearAnimation, Plasma::Animator::ZoomAnimation); mapAnimation(Plasma::Animator::DisappearAnimation, Plasma::Animator::ZoomAnimation); kDebug() << "!!{} STARTUP TIME" << QTime().msecsTo(QTime::currentTime()) << "DesktopCorona init end" << "(line:" << __LINE__ << ")"; }
void KActivitiesProxy::start() { // qDebug() << "Running the KAMD proxy" << thread() << QCoreApplication::instance()->thread(); m_activities = new KActivities::Controller(this); connect(m_activities, &KActivities::Consumer::serviceStatusChanged, this, &KActivitiesProxy::serviceStatusChanged); connect(m_activities, &KActivities::Consumer::activitiesChanged, this, &KActivitiesProxy::activitiesChanged); connect(m_activities, &KActivities::Consumer::currentActivityChanged, this, &KActivitiesProxy::currentActivityChanged); emit activitiesChanged(m_activities->activities()); emit currentActivityChanged(m_activities->currentActivity()); emit serviceStatusChanged(m_activities->serviceStatus()); }
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(); } }
// Force the addition of already existent batteries foreach (const Device &device, Device::listFromType(DeviceInterface::Battery, QString())) { onDeviceAdded(device.udi()); } } connect(m_backend, SIGNAL(acAdapterStateChanged(PowerDevil::BackendInterface::AcAdapterState)), this, SLOT(onAcAdapterStateChanged(PowerDevil::BackendInterface::AcAdapterState))); connect(m_backend, SIGNAL(batteryRemainingTimeChanged(qulonglong)), this, SLOT(onBatteryRemainingTimeChanged(qulonglong))); connect(KIdleTime::instance(), SIGNAL(timeoutReached(int,int)), this, SLOT(onKIdleTimeoutReached(int,int))); connect(KIdleTime::instance(), SIGNAL(resumingFromIdle()), this, SLOT(onResumingFromIdle())); connect(m_activityConsumer, SIGNAL(currentActivityChanged(QString)), this, SLOT(loadProfile())); // Set up the policy agent PowerDevil::PolicyAgent::instance()->init(); // Initialize the action pool, which will also load the needed startup actions. PowerDevil::ActionPool::instance()->init(this); // Set up the critical battery timer m_criticalBatteryTimer->setSingleShot(true); m_criticalBatteryTimer->setInterval(30000); connect(m_criticalBatteryTimer, SIGNAL(timeout()), this, SLOT(onCriticalBatteryTimerExpired())); // In 30 seconds (so we are sure the user sees eventual notifications), check the battery state QTimer::singleShot(30000, this, SLOT(checkBatteryStatus()));