@@ -62,6 +62,7 @@ QString DBusInterface::introspect(const QString &path) const
62 "<interface name=\"com.canonical.Unity.Launcher.Item\">"
62 "<interface name=\"com.canonical.Unity.Launcher.Item\">"
63 "<property name=\"count\" type=\"i\" access=\"readwrite\" />"
63 "<property name=\"count\" type=\"i\" access=\"readwrite\" />"
64 "<property name=\"countVisible\" type=\"b\" access=\"readwrite\" />"
64 "<property name=\"countVisible\" type=\"b\" access=\"readwrite\" />"
65+ "<property name=\"progress\" type=\"i\" access=\"readwrite\" />"
65 "<method name=\"Alert\" />"
66 "<method name=\"Alert\" />"
66 "</interface>";
67 "</interface>";
67 return nodeiface;
68 return nodeiface;
@@ -175,33 +176,44 @@ bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnec
176 QVariantList retval;
177 QVariantList retval;
177 if (message.member() == "Get") {
178 if (message.member() == "Get") {
179+ QString cachedString = message.arguments()[1].toString();
178 if (!item) {
180 if (!item) {
179 return false;
181 return false;
181− if (message.arguments()[1].toString() == "count") {
183+ if (cachedString == "count") {
182 retval.append(QVariant::fromValue(QDBusVariant(item->count())));
184 retval.append(QVariant::fromValue(QDBusVariant(item->count())));
183− } else if (message.arguments()[1].toString() == "countVisible") {
185+ } else if (cachedString == "countVisible") {
184 retval.append(QVariant::fromValue(QDBusVariant(item->countVisible())));
186 retval.append(QVariant::fromValue(QDBusVariant(item->countVisible())));
187+ } else if (cachedString == "progress") {
188+ retval.append(QVariant::fromValue(QDBusVariant(item->progress())));
186 } else if (message.member() == "Set") {
190 } else if (message.member() == "Set") {
187− if (message.arguments()[1].toString() == "count") {
191+ QString cachedString = message.arguments()[1].toString();
192+ if (cachedString == "count") {
188 int newCount = message.arguments()[2].value<QDBusVariant>().variant().toInt();
193 int newCount = message.arguments()[2].value<QDBusVariant>().variant().toInt();
189 if (!item || newCount != item->count()) {
194 if (!item || newCount != item->count()) {
190 Q_EMIT countChanged(appid, newCount);
195 Q_EMIT countChanged(appid, newCount);
191 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "count", QVariant(newCount));
196 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "count", QVariant(newCount));
193− } else if (message.arguments()[1].toString() == "countVisible") {
198+ } else if (cachedString == "countVisible") {
194 bool newVisible = message.arguments()[2].value<QDBusVariant>().variant().toBool();
199 bool newVisible = message.arguments()[2].value<QDBusVariant>().variant().toBool();
195 if (!item || newVisible != item->countVisible()) {
200 if (!item || newVisible != item->countVisible()) {
196 Q_EMIT countVisibleChanged(appid, newVisible);
201 Q_EMIT countVisibleChanged(appid, newVisible);
197 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "countVisible", newVisible);
202 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "countVisible", newVisible);
204+ } else if (cachedString == "progress") {
205+ int newProgress = message.arguments()[2].value<QDBusVariant>().variant().toInt();
206+ if (!item || newProgress != item->progress()) {
207+ Q_EMIT progressChanged(appid, newProgress);
208+ notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "progress", QVariant(newProgress));
200 } else if (message.member() == "GetAll") {
211 } else if (message.member() == "GetAll") {
201 if (item) {
212 if (item) {
202 QVariantMap all;
213 QVariantMap all;
203 all.insert("count", item->count());
214 all.insert("count", item->count());
204 all.insert("countVisible", item->countVisible());
215 all.insert("countVisible", item->countVisible());
216+ all.insert("progress", item->progress());
205 retval.append(all);
217 retval.append(all);