Author: tgoettlicher Date: Thu Jun 14 12:51:57 2007 New Revision: 5747 URL: http://svn.opensuse.org/viewcvs/zypp?rev=5747&view=rev Log: Enabled trayicon and popupwindow to show available patches AND packages. Modified: trunk/updater-kde/updater/MainWindow.cpp trunk/updater-kde/updater/MainWindow.h trunk/updater-kde/updater/TrayIcon.cpp trunk/updater-kde/updater/TrayIcon.h trunk/updater-kde/updater/Updater.h trunk/updater-kde/updater/UpdaterApplication.cpp trunk/updater-kde/updater/dummy/DummyUpdater.cpp trunk/updater-kde/updater/dummy_with_packages/DummyUpdater.cpp trunk/updater-kde/updater/osupdaterpopup.cpp trunk/updater-kde/updater/osupdaterpopup.h Modified: trunk/updater-kde/updater/MainWindow.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/MainWindow.cpp?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/MainWindow.cpp (original) +++ trunk/updater-kde/updater/MainWindow.cpp Thu Jun 14 12:51:57 2007 @@ -84,7 +84,7 @@ _hide_action = KStdAction::close (this, SLOT(hide()), actionCollection(), 0); _quit_action = KStdAction::quit(this, SLOT(slotExit()), actionCollection(), 0); - connect(this, SIGNAL(updateApplet(int, int)), this, SLOT(slotAppletState(int, int))); + connect(this, SIGNAL(updateApplet(int, int, int)), this, SLOT(slotAppletState(int, int, int))); connect(this, SIGNAL(updateAppletError(const QString &)), this, SLOT(slotAppletError(const QString &))); //Initially we have 0 selected updates of course. @@ -298,13 +298,14 @@ applet->setState(APPLET_PROBLEM, desc); } -void MainWindow::slotAppletState(int state, int n) +// todo +void MainWindow::slotAppletState(int state, int patches, int packages) { - applet->setUpdates(patchList->childCount()); +// applet->setUpdates(patchList->childCount()); applet->setState(state); - applet->setUpdates(n); + applet->setUpdates(patches, packages); - popup->setUpdates(n); + popup->setUpdates(patches, packages); } void MainWindow::updateTabs() @@ -480,7 +481,7 @@ void MainWindow::checkUpdates() { - slotAppletState(APPLET_CHECKING, 0); + slotAppletState(APPLET_CHECKING, 0, 0); // Check whether network is avaiable: Modified: trunk/updater-kde/updater/MainWindow.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/MainWindow.h?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/MainWindow.h (original) +++ trunk/updater-kde/updater/MainWindow.h Thu Jun 14 12:51:57 2007 @@ -139,7 +139,7 @@ @param n number of updates will be refreshed to reflect **/ - void updateApplet(int state, int n); + void updateApplet(int state, int n, int m); /** This is a signal sent to the MainWindow class. It updates the applet to the specified state. @@ -158,7 +158,7 @@ @param state the state, taken from Updater.h definition. */ - void slotAppletState(int state, int n); + void slotAppletState(int state, int patches, int packages); /** Updates the applet to error state. Modified: trunk/updater-kde/updater/TrayIcon.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/TrayIcon.cpp?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/TrayIcon.cpp (original) +++ trunk/updater-kde/updater/TrayIcon.cpp Thu Jun 14 12:51:57 2007 @@ -27,8 +27,10 @@ #include "Updater.h" TrayIcon::TrayIcon(QWidget *parent) : KSystemTray(parent), - updateCount(0), - appletState(APPLET_NO_UPDATES) { + patchCount(0), + packageCount(0), + appletState(APPLET_NO_UPDATES) +{ KIconLoader iconLoader(PROGRAM_NAME); setPixmap(loadIcon(TRAY_ICON_GREEN)); @@ -48,36 +50,63 @@ setPixmap(loadIcon(TRAY_ICON_CHECKING)); QToolTip::add(this, i18n("Checking for updates...")); break; + case APPLET_PROBLEM: setPixmap(loadIcon(TRAY_ICON_PROBLEM)); QToolTip::add(this, i18n("Error:\n" + description )); break; + case APPLET_NO_UPDATES: setPixmap(loadIcon(TRAY_ICON_GREEN)); QToolTip::add(this, i18n("No Updates Available")); break; + case APPLET_UPDATES: + case APPLET_CRITICAL_UPDATES: setPixmap(loadIcon(TRAY_ICON_YELLOW)); - if (updateCount == 1) - QToolTip::add(this, i18n("1 Update Available")); - else - QToolTip::add(this, i18n("%1 Updates Available").arg(updateCount) ); + + + // the following isn't realy stylish but allows fine translations + if (patchCount == 1 && packageCount == 0) + QToolTip::add(this, i18n("1 Patch available")); + + if (patchCount > 1 && packageCount == 0) + QToolTip::add(this, i18n("%1 Patches available").arg(patchCount) ); + + if (patchCount == 0 && packageCount == 1) + QToolTip::add(this, i18n("1 Package available")); + + if (patchCount == 0 && packageCount > 1) + QToolTip::add(this, i18n("%1 Packages available").arg(packageCount) ); + + if (patchCount == 1 && packageCount == 1) + QToolTip::add(this, i18n("1 Patch and 1 Package available")); + + if (patchCount > 1 && packageCount == 1) + QToolTip::add(this, i18n("%1 Patches and 1 Package available").arg(patchCount)); + + if (patchCount == 1 && packageCount > 1) + QToolTip::add(this, i18n("1 Patch and %1 Packages available").arg(packageCount)); + + if (patchCount > 1 && packageCount > 1) + QToolTip::add(this, i18n("%1 Patches and %2 Packages available").arg(patchCount).arg(packageCount)); + break; - case APPLET_CRITICAL_UPDATES: - setPixmap(loadIcon(TRAY_ICON_RED)); - if (updateCount == 1) - QToolTip::add(this, i18n("1 Important Update Available")); - else - QToolTip::add(this, i18n("%1 Important Updates Available").arg(updateCount) ); - break; } } -void TrayIcon::setUpdates(int count) { - if (count >= 0) - updateCount = count; +void TrayIcon::setUpdates(int patches, int packages) +{ + if (patches >= 0) + patchCount = patches; else - updateCount = 0; + patchCount = 0; + + if (packages >= 0) + packageCount = packages; + else + packageCount = 0; + setState(appletState); } Modified: trunk/updater-kde/updater/TrayIcon.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/TrayIcon.h?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/TrayIcon.h (original) +++ trunk/updater-kde/updater/TrayIcon.h Thu Jun 14 12:51:57 2007 @@ -45,11 +45,12 @@ public slots: void setState(int state, const QString &description = QString() ); - void setUpdates(int count); + void setUpdates(int pat, int pac=0); private: - int updateCount; + int patchCount; + int packageCount; int appletState; }; Modified: trunk/updater-kde/updater/Updater.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/Updater.h?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/Updater.h (original) +++ trunk/updater-kde/updater/Updater.h Thu Jun 14 12:51:57 2007 @@ -84,7 +84,7 @@ @param n number of updates will be refreshed to reflect **/ - void updateApplet(int state, int n); + void updateApplet(int state, int n, int m); /** This is a signal sent to the MainWindow class. It updates the applet to the specified state. Modified: trunk/updater-kde/updater/UpdaterApplication.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/UpdaterApplication.cpp?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/UpdaterApplication.cpp (original) +++ trunk/updater-kde/updater/UpdaterApplication.cpp Thu Jun 14 12:51:57 2007 @@ -75,7 +75,7 @@ setupUpdater(_updater); kdDebug() << "Will check for updates soon." << endl; QTimer::singleShot( 30*1000, _main , SLOT(checkUpdates() )); - _main->slotAppletState(APPLET_CHECKING, 0); + _main->slotAppletState(APPLET_CHECKING, 0, 0); _main->setUpdaterCapabilities(_updater->capabilities()); } } @@ -157,7 +157,7 @@ //Connects the signals //Signal that controls applet state - connect(updater, SIGNAL(updateApplet(int, int)), _main, SLOT(slotAppletState(int, int))); + connect(updater, SIGNAL(updateApplet(int, int, int)), _main, SLOT(slotAppletState(int, int, int))); connect(updater, SIGNAL(updateAppletError(const QString &)), _main, SLOT(slotAppletError(const QString &))); Modified: trunk/updater-kde/updater/dummy/DummyUpdater.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/dummy/DummyUpdater.cpp?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/dummy/DummyUpdater.cpp (original) +++ trunk/updater-kde/updater/dummy/DummyUpdater.cpp Thu Jun 14 12:51:57 2007 @@ -141,11 +141,11 @@ if ( patchcount > 0 ) { - emit(updateApplet(APPLET_UPDATES, patchcount)); + emit(updateApplet(APPLET_UPDATES, patchcount, 0)); } else { - emit(updateApplet(APPLET_NO_UPDATES, 0)); + emit(updateApplet(APPLET_NO_UPDATES, 0, 0)); } if ( _error ) @@ -166,7 +166,7 @@ { kdDebug() << "Starting check for updates ..." << endl; - emit(updateApplet(APPLET_CHECKING, 0)); + emit(updateApplet(APPLET_CHECKING, 0, 0)); // We don't realy check for updates since this is a // dummy backend. We only wait 10 seconds. @@ -179,7 +179,7 @@ kdDebug() << "got populate UI request..." << endl; _patchList = patchList; _packageList = packageList; - emit(updateApplet(APPLET_NO_UPDATES, 0)); + emit(updateApplet(APPLET_NO_UPDATES, 0, 0)); doCheckForUpdates(); } Modified: trunk/updater-kde/updater/dummy_with_packages/DummyUpdater.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/dummy_with_packages/DummyUpdater.cpp?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/dummy_with_packages/DummyUpdater.cpp (original) +++ trunk/updater-kde/updater/dummy_with_packages/DummyUpdater.cpp Thu Jun 14 12:51:57 2007 @@ -109,6 +109,7 @@ // We will construct an example patch int patchcount=2; + int packagecount=1; QCheckListItem *newItem; QCheckListItem *newItem2; @@ -142,11 +143,11 @@ if ( patchcount > 0 ) { - emit(updateApplet(APPLET_UPDATES, patchcount)); + emit(updateApplet(APPLET_UPDATES, patchcount, packagecount)); } else { - emit(updateApplet(APPLET_NO_UPDATES, 0)); + emit(updateApplet(APPLET_NO_UPDATES, 0, 0)); } if ( _error ) @@ -167,7 +168,7 @@ { kdDebug() << "Starting check for updates ..." << endl; - emit(updateApplet(APPLET_CHECKING, 0)); + emit(updateApplet(APPLET_CHECKING, 0, 0)); // We don't realy check for updates since this is a // dummy backend. We only wait 10 seconds. @@ -180,7 +181,7 @@ kdDebug() << "got populate UI request..." << endl; _patchList = patchList; _packageList = packageList; - emit(updateApplet(APPLET_NO_UPDATES, 0)); + emit(updateApplet(APPLET_NO_UPDATES, 0, 0)); doCheckForUpdates(); } Modified: trunk/updater-kde/updater/osupdaterpopup.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/osupdaterpopup.cpp?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/osupdaterpopup.cpp (original) +++ trunk/updater-kde/updater/osupdaterpopup.cpp Thu Jun 14 12:51:57 2007 @@ -90,16 +90,32 @@ /** * Called when new updates are detected, with the new number of unapplied updates. */ -void OSUpdaterPopup::setUpdates(int newUpdateValue) +void OSUpdaterPopup::setUpdates(int patches, int packages) { - _updates = newUpdateValue; - if (_updates > 0) + _patches = patches; + _packages = packages; + + if ((_patches + _packages) > 0) { - if (_updates == 1) - _description->setText(i18n("1 Update Available")); - else - _description->setText(i18n("%1 Updates Available").arg(_updates)); - show(); + QString desc = ""; + + if (_patches == 1) + desc.append(i18n("1 Patch")); + else + desc.append(i18n("%1 Patches").arg(_patches)); + + if (_packages > 0) + if (_packages == 1) + desc.append(i18n("\n1 Upgrade")); + else + desc.append(i18n("\n%1 Upgrades").arg(_packages)); + + + desc.append(i18n(" Available")); + + _description->setText(desc); + + show(); } } Modified: trunk/updater-kde/updater/osupdaterpopup.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/osupdaterpopup.h?rev=5747&r1=5746&r2=5747&view=diff ============================================================================== --- trunk/updater-kde/updater/osupdaterpopup.h (original) +++ trunk/updater-kde/updater/osupdaterpopup.h Thu Jun 14 12:51:57 2007 @@ -38,11 +38,12 @@ Q_OBJECT public: OSUpdaterPopup(QWidget *parent,MainWindow *mainWindow); - void setUpdates(int newUpdateValue); + void setUpdates(int patches, int packages=0); protected: void paintEvent( QPaintEvent *e ); private: - int _updates; + int _patches; + int _packages; QVBoxLayout *_popupLayout; QHBoxLayout *_titleLayout; QHBoxLayout *_descriptionLayout; -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org