Author: kmachalkova
Date: Fri Feb 13 19:11:01 2009
New Revision: 55509
URL: http://svn.opensuse.org/viewcvs/yast?rev=55509&view=rev
Log:
Write sysconfig
Modified:
trunk/ncurses-pkg/src/NCPackageSelector.cc
trunk/ncurses-pkg/src/NCPackageSelector.h
trunk/ncurses-pkg/src/NCPkgMenuConfig.cc
trunk/ncurses-pkg/src/NCPkgMenuConfig.h
Modified: trunk/ncurses-pkg/src/NCPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPackageSelector.cc?rev=55509&r1=55508&r2=55509&view=diff
==============================================================================
--- trunk/ncurses-pkg/src/NCPackageSelector.cc (original)
+++ trunk/ncurses-pkg/src/NCPackageSelector.cc Fri Feb 13 19:11:01 2009
@@ -154,7 +154,24 @@
yuiMilestone() << "Read sysconfig's action at pkg mgr exit value: " << actionAtExit << endl;
}
else
- yuiMilestone() << "Smolicek pacholicek" << endl;
+ {
+ actionAtExit = "";
+ yuiMilestone() << "Could not read PKGMGR_ACTION_AT_EXIT variable from sysconfig, disabling the menu" << endl;
+ }
+}
+
+void NCPackageSelector::writeSysconfig( )
+{
+ if(!actionAtExit.empty())
+ {
+ // this is really, really stupid. But we have no other iface for writing sysconfig so far
+ int ret = -1;
+ string cmd = "sed -i 's/^[ \t]*PKGMGR_ACTION_AT_EXIT.*$/PKGMGR_ACTION_AT_EXIT=\"" + actionAtExit + "\"/' " +
+ PATH_TO_YAST_SYSCONFIG;
+ ret = system(cmd.c_str());
+ yuiMilestone() << "Executing system cmd " << cmd << " returned " << ret << endl;
+
+ }
}
bool NCPackageSelector::checkNow( bool *ok )
@@ -1108,6 +1125,7 @@
// could free some memory?
// clearSaveState ();
+ writeSysconfig();
const_cast(event).result = "accept";
yuiMilestone() << "OK button pressed - leaving package selection, starting installation" << endl;
Modified: trunk/ncurses-pkg/src/NCPackageSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPackageSelector.h?rev=55509&r1=55508&r2=55509&view=diff
==============================================================================
--- trunk/ncurses-pkg/src/NCPackageSelector.h (original)
+++ trunk/ncurses-pkg/src/NCPackageSelector.h Fri Feb 13 19:11:01 2009
@@ -196,6 +196,7 @@
void setFlags( long modeFlags);
void readSysconfig();
+ void writeSysconfig();
/**
* Create layout for the PackageSelector
@@ -237,6 +238,7 @@
bool verifySystem( bool *ok );
string ActionAtExit() { return actionAtExit; }
+ void setActionAtExit( string action ) { actionAtExit = action; }
/**
* Fills the package table with YOU patches matching the filter
@@ -270,7 +272,7 @@
* @param checkProvides Check in Provides (true or false)
* @param checkRequires Check in Requires (true or false)
* @return bool
- */
+ */
bool fillPatchSearchList( const string & expr );
bool fillDefaultList();
Modified: trunk/ncurses-pkg/src/NCPkgMenuConfig.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgMenuConfig.cc?rev=55509&r1=55508&r2=55509&view=diff
==============================================================================
--- trunk/ncurses-pkg/src/NCPkgMenuConfig.cc (original)
+++ trunk/ncurses-pkg/src/NCPkgMenuConfig.cc Fri Feb 13 19:11:01 2009
@@ -21,13 +21,12 @@
#include "NCPkgMenuConfig.h"
#include "NCPackageSelector.h"
+#define CHECK_BOX "[ ]"
+
/*
Textdomain "ncurses-pkg"
*/
-string preselect( string s1, string s2)
-{
- return (s1 == s2) ? "[x] " : "[ ] ";
-}
+
NCPkgMenuConfig::NCPkgMenuConfig (YWidget *parent, string label, NCPackageSelector *pkger)
: NCMenuButton( parent, label)
@@ -41,9 +40,18 @@
}
+void NCPkgMenuConfig::setSelected( YMenuItem *item, bool selected)
+{
+ string oldLabel = item->label();
+
+ string newLabel = oldLabel.replace(1,1,1, selected ? 'x' : ' ');
+
+ item->setLabel( newLabel);
+}
+
void NCPkgMenuConfig::createLayout()
{
- string exitAction = pkg->ActionAtExit();
+ exitAction = pkg->ActionAtExit();
repoManager = new YMenuItem( _( "Launch Repository Manager") );
onlineUpdate = new YMenuItem( _( "Launch Online Update Configuration" ) );
@@ -51,13 +59,21 @@
items.push_back( repoManager );
items.push_back( onlineUpdate );
- items.push_back( actionOnExit );
- restart = new YMenuItem( actionOnExit, preselect("restart", exitAction) + _( "Close Package Manager" ) );
- close = new YMenuItem( actionOnExit, preselect("close", exitAction) + _( "Restart Package Manager" ) );
- showSummary = new YMenuItem( actionOnExit, preselect("summary", exitAction) + _( "Show Summary" ) );
-
-
+ if (! exitAction.empty())
+ {
+ items.push_back( actionOnExit );
+
+ restart = new YMenuItem( actionOnExit, CHECK_BOX + _( "Restart Package Manager" ) );
+ close = new YMenuItem( actionOnExit,CHECK_BOX + _( "Close Package Manager" ) );
+ showSummary = new YMenuItem( actionOnExit, CHECK_BOX + _( "Show Summary" ) );
+
+ idToItemPtr["restart"] = restart;
+ idToItemPtr["close"] = close;
+ idToItemPtr["summary"] = showSummary;
+
+ setSelected( idToItemPtr[ exitAction ], true);
+ }
addItems( items );
@@ -84,7 +100,27 @@
yuiMilestone() << "Launching YOU configuration " << endl;
return false;
+ }
+ else
+ {
+ string old = exitAction;
+ if ( event.selection == restart )
+ {
+ exitAction = "restart";
+ }
+ else if ( event.selection == close )
+ {
+ exitAction = "close";
+ }
+ else if ( event.selection == restart )
+ {
+ exitAction = "summary";
+ }
+
+ setSelected(idToItemPtr[old], false);
+ setSelected(idToItemPtr[exitAction], true);
+ pkg->setActionAtExit( exitAction );
}
return true;
Modified: trunk/ncurses-pkg/src/NCPkgMenuConfig.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgMenuConfig.h?rev=55509&r1=55508&r2=55509&view=diff
==============================================================================
--- trunk/ncurses-pkg/src/NCPkgMenuConfig.h (original)
+++ trunk/ncurses-pkg/src/NCPkgMenuConfig.h Fri Feb 13 19:11:01 2009
@@ -36,6 +36,10 @@
NCPkgMenuConfig & operator=( const NCPkgMenuConfig & );
NCPkgMenuConfig ( const NCPkgMenuConfig & );
+private:
+ std::map idToItemPtr;
+ string exitAction;
+
public:
YItemCollection items;
@@ -53,6 +57,7 @@
NCPkgMenuConfig (YWidget *parent, string label, NCPackageSelector *pkger);
virtual ~NCPkgMenuConfig();
+ void setSelected ( YMenuItem *item, bool selected);
void createLayout();
bool handleEvent (const NCursesEvent & event);
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org