@@ -62,6 +62,7 @@ QString DBusInterface::introspect(const QString &path) const
6262 "<interface name=\"com.canonical.Unity.Launcher.Item\">"
6363 "<property name=\"count\" type=\"i\" access=\"readwrite\" />"
6464 "<property name=\"countVisible\" type=\"b\" access=\"readwrite\" />"
65+ "<property name=\"progress\" type=\"i\" access=\"readwrite\" />"
6566 "<method name=\"Alert\" />"
6667 "</interface>";
6768 return nodeiface;
@@ -175,33 +176,44 @@ bool DBusInterface::handleMessage(const QDBusMessage& message, const QDBusConnec
175176
176177 QVariantList retval;
177178 if (message.member() == "Get") {
179+ QString cachedString = message.arguments()[1].toString();
178180 if (!item) {
179181 return false;
180182 }
181− if (message.arguments()[1].toString() == "count") {
183+ if (cachedString == "count") {
182184 retval.append(QVariant::fromValue(QDBusVariant(item->count())));
183− } else if (message.arguments()[1].toString() == "countVisible") {
185+ } else if (cachedString == "countVisible") {
184186 retval.append(QVariant::fromValue(QDBusVariant(item->countVisible())));
187+ } else if (cachedString == "progress") {
188+ retval.append(QVariant::fromValue(QDBusVariant(item->progress())));
185189 }
186190 } else if (message.member() == "Set") {
187− if (message.arguments()[1].toString() == "count") {
191+ QString cachedString = message.arguments()[1].toString();
192+ if (cachedString == "count") {
188193 int newCount = message.arguments()[2].value<QDBusVariant>().variant().toInt();
189194 if (!item || newCount != item->count()) {
190195 Q_EMIT countChanged(appid, newCount);
191196 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "count", QVariant(newCount));
192197 }
193− } else if (message.arguments()[1].toString() == "countVisible") {
198+ } else if (cachedString == "countVisible") {
194199 bool newVisible = message.arguments()[2].value<QDBusVariant>().variant().toBool();
195200 if (!item || newVisible != item->countVisible()) {
196201 Q_EMIT countVisibleChanged(appid, newVisible);
197202 notifyPropertyChanged("com.canonical.Unity.Launcher.Item", encodeAppId(appid), "countVisible", newVisible);
198203 }
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));
209+ }
199210 }
200211 } else if (message.member() == "GetAll") {
201212 if (item) {
202213 QVariantMap all;
203214 all.insert("count", item->count());
204215 all.insert("countVisible", item->countVisible());
216+ all.insert("progress", item->progress());
205217 retval.append(all);
206218 }
207219 } else {