Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dl9pf:rts-luh
smart
smart-ksmarttray-runsmart.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File smart-ksmarttray-runsmart.patch of Package smart
Index: contrib/ksmarttray/src/ksmarttray.cc =================================================================== --- contrib/ksmarttray/src/ksmarttray.cc (revision 735) +++ contrib/ksmarttray/src/ksmarttray.cc (working copy) @@ -48,6 +48,7 @@ { hasActions = false; checkAction.setText("Check"); + startSmartAction.setText("Start Smart..."); stopAction.setText("Stop"); stopAction.setIcon("stop"); stopAction.setEnabled(false); @@ -58,6 +59,7 @@ if (!hasActions) { hasActions = true; checkAction.plug(menu, 1); + startSmartAction.plug(menu, 2); //stopAction.plug(menu, 2); } } @@ -94,6 +96,8 @@ connect(&sysTray.checkAction, SIGNAL(activated()), this, SLOT(manualCheckUpgrades())); + connect(&sysTray.startSmartAction, SIGNAL(activated()), + this, SLOT(startSmart())); connect(&sysTray.stopAction, SIGNAL(activated()), this, SLOT(stopChecking())); connect(&sysTray, SIGNAL(quitSelected()), @@ -112,6 +116,7 @@ return; if (state == StateWaiting) { sysTray.checkAction.setEnabled(false); + sysTray.startSmartAction.setEnabled(false); sysTray.stopAction.setEnabled(true); process.resetAll(); if (manual) @@ -145,6 +150,7 @@ "There is a running process."); } else { sysTray.checkAction.setEnabled(false); + sysTray.startSmartAction.setEnabled(false); sysTray.stopAction.setEnabled(false); process.resetAll(); process << "kdesu" << "-d" << "-c" << "smart --gui upgrade"; @@ -159,6 +165,28 @@ } } +void KSmartTray::startSmart() +{ + if (state != StateWaiting) { + KNotifyClient::event(sysTray.winId(), "fatalerror", + "There is a running process."); + } else { + sysTray.checkAction.setEnabled(false); + sysTray.startSmartAction.setEnabled(false); + sysTray.stopAction.setEnabled(false); + process.resetAll(); + process << "kdesu" << "-d" << "-c" << "smart --gui"; + if (!process.start()) { + KNotifyClient::event(sysTray.winId(), "fatalerror", + "Couldn't run 'smart'."); + } else { + state = StateRunningSmart; + QToolTip::remove(&sysTray); + QToolTip::add(&sysTray, "Running Smart Package Manager..."); + } + } +} + void KSmartTray::stopChecking() { process.kill(); @@ -223,6 +251,11 @@ lastKnownStatus = ""; break; + case StateRunningSmart: + state = StateWaiting; + lastKnownStatus = ""; + break; + default: /* Error! */ break; @@ -231,6 +264,7 @@ if (state == StateWaiting) { updateFailed = false; sysTray.checkAction.setEnabled(true); + sysTray.startSmartAction.setEnabled(true); sysTray.stopAction.setEnabled(false); if (!lastKnownStatus.isEmpty()) { Index: contrib/ksmarttray/src/ksmarttray.h =================================================================== --- contrib/ksmarttray/src/ksmarttray.h (revision 735) +++ contrib/ksmarttray/src/ksmarttray.h (working copy) @@ -43,6 +43,7 @@ KAction checkAction; KAction stopAction; + KAction startSmartAction; protected: @@ -69,6 +70,7 @@ StateUpdating, StateChecking, StateUpgrading, + StateRunningSmart, }; State state; @@ -105,6 +107,7 @@ void checkUpgrades(); void manualCheckUpgrades(); void runUpgrades(); + void startSmart(); public:
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor