Author: tgoettlicher Date: Mon Jan 21 14:10:58 2008 New Revision: 8333 URL: http://svn.opensuse.org/viewcvs/zypp?rev=8333&view=rev Log: check for system load (fate #302960) Modified: trunk/updater-kde/package/opensuse-updater-kde.changes trunk/updater-kde/updater/MainWindow.cpp trunk/updater-kde/updater/MainWindow.h trunk/updater-kde/updater/TrayIcon.cpp trunk/updater-kde/updater/Updater.h trunk/updater-kde/updater/opensuseupdater_settings.kcfg trunk/updater-kde/updater/simpleview.cpp Modified: trunk/updater-kde/package/opensuse-updater-kde.changes URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/package/opensuse-updater-kde.changes?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/package/opensuse-updater-kde.changes (original) +++ trunk/updater-kde/package/opensuse-updater-kde.changes Mon Jan 21 14:10:58 2008 @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Mon Jan 21 14:08:57 CET 2008 - tgoettlicher@suse.de + +- Added check for system load before checking for updates (fate #302960) + +------------------------------------------------------------------- Mon Jan 21 10:24:23 CET 2008 - tgoettlicher@suse.de - Show a more understandable message when no network is available Modified: trunk/updater-kde/updater/MainWindow.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/MainWindow.cpp?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/updater/MainWindow.cpp (original) +++ trunk/updater-kde/updater/MainWindow.cpp Mon Jan 21 14:10:58 2008 @@ -420,7 +420,7 @@ _check_updates_action->setEnabled(true); _edit_sources_action->setEnabled(true); - if ( state == APPLET_CHECKING || state == APPLET_INSTALLING || state == APPLET_NO_NETWORK ) + if ( state == APPLET_CHECKING || state == APPLET_INSTALLING || state == APPLET_NO_NETWORK || state == APPLET_SYSTEM_BUSY ) _check_updates_action->setEnabled(false); else _check_updates_action->setEnabled(true); @@ -781,6 +781,19 @@ slotAppletState(APPLET_CHECKING, 0, 0); + // Check whether system is idle or busy + if (systemIsBusy()) + { + slotAppletState(APPLET_SYSTEM_BUSY, 0, 0); + + if (displayProgress) + QTimer::singleShot( 1000 * 60 * 5, this , SLOT(checkUpdatesWithProgress() )); + else + QTimer::singleShot( 1000 * 60 * 5, this , SLOT(checkUpdatesWithoutProgress() )); + return; + } + + // Check whether network is avaiable: // If no network is available let ConnectionManager call this // function again when network ist connected @@ -887,4 +900,20 @@ } +bool MainWindow::systemIsBusy() +{ + double loadavg, maxloadavg; + + getloadavg(&loadavg,1); //get loadavg over last minute + maxloadavg = UpdaterSettings::self()->maxSystemLoad(); + + kdDebug() << "max system load:" << maxloadavg << endl; + kdDebug() << "system load:" << loadavg << endl; + + return (loadavg > maxloadavg); +} + + + + #include "MainWindow.moc" Modified: trunk/updater-kde/updater/MainWindow.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/MainWindow.h?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/updater/MainWindow.h (original) +++ trunk/updater-kde/updater/MainWindow.h Mon Jan 21 14:10:58 2008 @@ -322,6 +322,8 @@ int patchCountRestart(bool onlySelected=false); int patchCountSecurity(bool onlySelected=false); + + bool systemIsBusy(); }; #endif Modified: trunk/updater-kde/updater/TrayIcon.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/TrayIcon.cpp?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/updater/TrayIcon.cpp (original) +++ trunk/updater-kde/updater/TrayIcon.cpp Mon Jan 21 14:10:58 2008 @@ -109,6 +109,12 @@ setPixmap(loadIcon(TRAY_ICON_GRAY)); break; + case APPLET_SYSTEM_BUSY: + QToolTip::add(this, i18n("Unable to check whether updates are available.")); + setPixmap(loadIcon(TRAY_ICON_GRAY)); + break; + + case APPLET_PKGMGR_UPDATES: case APPLET_CRITICAL_UPDATES: QToolTip::add(this, i18n("New software updates are available.")); Modified: trunk/updater-kde/updater/Updater.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/Updater.h?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/updater/Updater.h (original) +++ trunk/updater-kde/updater/Updater.h Mon Jan 21 14:10:58 2008 @@ -56,7 +56,8 @@ APPLET_PKGMGR_UPDATES, /** Updates available that affect the package manager **/ APPLET_UNKNOWN, /** Unknown update status: No repositories are known to zypper **/ APPLET_ONLY_OPTIONAL_UPDATES, /** Only optional updates are available (for trayicon) **/ - APPLET_NO_NETWORK /** No Network connection available **/ + APPLET_NO_NETWORK, /** No Network connection available **/ + APPLET_SYSTEM_BUSY /** System (CPU) is busy**/ }; /** Modified: trunk/updater-kde/updater/opensuseupdater_settings.kcfg URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/opensuseupdater_settings.kcfg?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/updater/opensuseupdater_settings.kcfg (original) +++ trunk/updater-kde/updater/opensuseupdater_settings.kcfg Mon Jan 21 14:10:58 2008 @@ -40,5 +40,10 @@ <entry name="State" type="Int"> <label>Last applet state.</label> </entry> + <entry name="MaxSystemLoad" type="Double"> + <label>System's maximum load when checking for updates</label> + <default>3.0</default> + </entry> + </group> </kcfg> Modified: trunk/updater-kde/updater/simpleview.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-kde/updater/simpleview.cpp?rev=8333&r1=8332&r2=8333&view=diff ============================================================================== --- trunk/updater-kde/updater/simpleview.cpp (original) +++ trunk/updater-kde/updater/simpleview.cpp Mon Jan 21 14:10:58 2008 @@ -335,6 +335,21 @@ textBrowser->hide(); break; + case APPLET_SYSTEM_BUSY: + headline->setText(i18n("<b>Unable to check whether updates are available.</b>")); + title->show(); + title->setText(i18n("The system is busy. Another check will start soon.")); + recommended->hide(); + norestart->hide(); + install->hide(); + ok->show(); + details->hide(); + bar->hide(); + textBrowser->hide(); + + break; + + } updateSelection(); -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org