Changeset View
Changeset View
Standalone View
Standalone View
src/kstatusnotifieritemdbus_p.cpp
Show First 20 Lines • Show All 143 Lines • ▼ Show 20 Line(s) | 126 | { | |||
---|---|---|---|---|---|
144 | return argument; | 144 | return argument; | ||
145 | } | 145 | } | ||
146 | 146 | | |||
147 | int KStatusNotifierItemDBus::s_serviceCount = 0; | 147 | int KStatusNotifierItemDBus::s_serviceCount = 0; | ||
148 | 148 | | |||
149 | KStatusNotifierItemDBus::KStatusNotifierItemDBus(KStatusNotifierItem *parent) | 149 | KStatusNotifierItemDBus::KStatusNotifierItemDBus(KStatusNotifierItem *parent) | ||
150 | : QObject(parent), | 150 | : QObject(parent), | ||
151 | m_statusNotifierItem(parent), | 151 | m_statusNotifierItem(parent), | ||
152 | m_service(QStringLiteral("org.kde.StatusNotifierItem-%1-%2") | 152 | m_connId(QStringLiteral("org.kde.StatusNotifierItem-%1-%2") | ||
153 | .arg(QCoreApplication::applicationPid()) | 153 | .arg(QCoreApplication::applicationPid()) | ||
154 | .arg(++s_serviceCount)), | 154 | .arg(++s_serviceCount)), | ||
155 | m_dbus(QDBusConnection(m_service)) | 155 | m_dbus(QDBusConnection(m_connId)) | ||
156 | { | 156 | { | ||
157 | bool inSandbox = false; | 157 | m_dbus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, m_connId); | ||
158 | if (!qEnvironmentVariableIsEmpty("XDG_RUNTIME_DIR")) { | | |||
159 | const QByteArray runtimeDir = qgetenv("XDG_RUNTIME_DIR"); | | |||
160 | if (!runtimeDir.isEmpty()) { | | |||
161 | inSandbox = QFileInfo::exists(QString::fromUtf8(runtimeDir) + QLatin1String("/flatpak-info")); | | |||
162 | } | | |||
163 | } | | |||
164 | | ||||
165 | if (inSandbox) { | | |||
166 | m_service = QStringLiteral("org.kde.StatusNotifierItem-%1-%2").arg(QCoreApplication::applicationName()).arg(s_serviceCount); | | |||
167 | } | | |||
168 | | ||||
169 | m_dbus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, m_service); | | |||
170 | 158 | | |||
171 | new StatusNotifierItemAdaptor(this); | 159 | new StatusNotifierItemAdaptor(this); | ||
172 | qCDebug(LOG_KNOTIFICATIONS) << "service is" << m_service; | 160 | qCDebug(LOG_KNOTIFICATIONS) << "service is" << m_connId; | ||
173 | m_dbus.registerService(m_service); | | |||
174 | m_dbus.registerObject(QStringLiteral("/StatusNotifierItem"), this); | 161 | m_dbus.registerObject(QStringLiteral("/StatusNotifierItem"), this); | ||
175 | } | 162 | } | ||
176 | 163 | | |||
177 | KStatusNotifierItemDBus::~KStatusNotifierItemDBus() | 164 | KStatusNotifierItemDBus::~KStatusNotifierItemDBus() | ||
178 | { | 165 | { | ||
179 | m_dbus.unregisterObject(QStringLiteral("/StatusNotifierItem")); | 166 | m_dbus.unregisterObject(QStringLiteral("/StatusNotifierItem")); | ||
180 | m_dbus.unregisterService(m_service); | 167 | m_dbus.disconnectFromBus(m_connId); | ||
181 | m_dbus.disconnectFromBus(m_service); | | |||
182 | } | 168 | } | ||
183 | 169 | | |||
184 | QDBusConnection KStatusNotifierItemDBus::dbusConnection() const | 170 | QDBusConnection KStatusNotifierItemDBus::dbusConnection() const | ||
185 | { | 171 | { | ||
186 | return m_dbus; | 172 | return m_dbus; | ||
187 | } | 173 | } | ||
188 | 174 | | |||
189 | QString KStatusNotifierItemDBus::service() const | 175 | QString KStatusNotifierItemDBus::service() const | ||
190 | { | 176 | { | ||
191 | return m_service; | 177 | return m_dbus.baseService(); | ||
192 | } | 178 | } | ||
193 | 179 | | |||
194 | bool KStatusNotifierItemDBus::ItemIsMenu() const | 180 | bool KStatusNotifierItemDBus::ItemIsMenu() const | ||
195 | { | 181 | { | ||
196 | return (m_statusNotifierItem->d->associatedWidget == m_statusNotifierItem->d->menu); | 182 | return (m_statusNotifierItem->d->associatedWidget == m_statusNotifierItem->d->menu); | ||
197 | } | 183 | } | ||
198 | 184 | | |||
199 | //DBUS slots | 185 | //DBUS slots | ||
▲ Show 20 Lines • Show All 129 Lines • Show Last 20 Lines |