YaST Commits
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2011
- 16 participants
- 288 discussions

[yast-commit] r64091 - /branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes
by dmacvicar@svn2.opensuse.org 23 May '11
by dmacvicar@svn2.opensuse.org 23 May '11
23 May '11
Author: dmacvicar
Date: Mon May 23 21:58:12 2011
New Revision: 64091
URL: http://svn.opensuse.org/viewcvs/yast?rev=64091&view=rev
Log:
Fix changelog order
Modified:
branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes
Modified: branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/pa…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/package/yast2-ncurses.changes Mon May 23 21:58:12 2011
@@ -1242,12 +1242,6 @@
- improvements for package installation dialog
-------------------------------------------------------------------
-Thu Nov 14 20:56:17 CET 2002 - ma(a)suse.de
-
-- V 2.7.2
-- Fixed bug that inhibits logging on big-endian architectures.
-
--------------------------------------------------------------------
Tue Nov 26 15:36:02 CET 2002 - gs(a)suse.de
- V 2.6.24
@@ -1255,13 +1249,19 @@
(preserve newlines)
-------------------------------------------------------------------
+Thu Nov 14 20:56:17 CET 2002 - ma(a)suse.de
+
+- V 2.7.2
+- Fixed bug that inhibits logging on big-endian architectures.
+
+-------------------------------------------------------------------
Thu Nov 14 19:34:31 CET 2002 - ma(a)suse.de
- V 2.6.23
- Fixed bug that inhibits logging on big-endian architectures.
--------------------------------------------------------------------
+-------------------------------------------------------------------
Wed Nov 13 12:35:21 CET 2002 - gs(a)suse.de
- V 2.6.22
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0

[yast-commit] r64090 - /branches/tmp/dmacvicar/zc10/ncurses/src/
by dmacvicar@svn2.opensuse.org 23 May '11
by dmacvicar@svn2.opensuse.org 23 May '11
23 May '11
Author: dmacvicar
Date: Mon May 23 21:27:16 2011
New Revision: 64090
URL: http://svn.opensuse.org/viewcvs/yast?rev=64090&view=rev
Log:
Port to Code11 libzypp.
TODO: PkgTable class, updateInfo method commented.
Search progress popup commented.
Added:
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h
Modified:
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc
branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h
branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc
branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc
branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc
branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc
branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc
branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h
branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc
branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h
Added: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h (added)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgStrings.h Mon May 23 21:27:16 2011
@@ -0,0 +1,317 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ ____ _____ ____ |
+| \ \ / /_ _/ ___|_ _|___ \ |
+| \ V / _` \___ \ | | __) | |
+| | | (_| |___) || | / __/ |
+| |_|\__,_|____/ |_| |_____| |
+| |
+| core system |
+| (C) SuSE GmbH |
+\----------------------------------------------------------------------/
+
+ File: NCPkgStrings.h
+
+ Author: Gabriele Strattner <gs(a)suse.de>
+
+/-*/
+#ifndef NCPkgStrings_h
+#define NCPkgStrings_h
+
+#include "NCstring.h"
+#include <string>
+
+
+
+// Class to make available globally used names in package selection dialog,
+// such as widget ids, text which has to be translated and so on
+
+class NCPkgStrings
+{
+public:
+
+ // Main menu entry Dependencies
+ static const string Deps();
+
+ // Main menu entry View
+ static const string View();
+
+ // Main menu entry 'Extras'
+ static const string Extras();
+
+ //Package Filters combo box label
+ static const string Filter();
+
+ static const string InstPkg();
+
+ //Label below the table - pkg name follows
+ static const string PackageName();
+
+ //Actions menu (what to do with the pkg)
+ static const string Actions();
+
+ static const string Help();
+
+ // The headline of the help popup
+ static const string PackageHelp();
+
+ //strings in 'General Help'
+ static const string HelpPkgGen1();
+ static const string HelpPkgGen2();
+ static const string HelpPkgGen3();
+ static const string HelpPkgGen4();
+ static const string HelpPkgGen5();
+ static const string HelpPkgGen6();
+
+ // The headline of the help popup
+ static const string PackageStatusHelp();
+
+ //strings in 'Package Status and symbols'
+ static const string HelpOnStatus1();
+ static const string HelpOnStatus2();
+ static const string HelpOnStatus3();
+ static const string HelpOnStatus4();
+ static const string HelpOnStatus5();
+
+ // The headline of the help popup
+ static const string PackageFiltersHelp();
+
+ //string in 'How to use filters'
+ static const string HelpOnFilters1();
+ static const string HelpOnFilters2();
+ static const string HelpOnFilters3();
+ static const string HelpOnFilters4();
+ static const string HelpOnFilters5();
+
+ // The headline of the help popup
+ static const string PackageMenuHelp();
+
+ // strings in 'Useful functions in menu'
+ static const string HelpPkgMenu1();
+ static const string HelpPkgMenu2();
+ static const string HelpPkgMenu2_2();
+ static const string HelpPkgMenu3();
+ static const string HelpPkgMenu4();
+ static const string HelpPkgMenu5();
+
+ //Search settings
+ static const string SearchIn();
+ static const string SearchPhrase();
+
+ // table column headlines
+ static const string PkgStatus();
+ static const string PatternsLabel();
+ static const string LangCode();
+ static const string LangName();
+ static const string RepoURL();
+ static const string PkgName();
+ static const string PkgSummary();
+ static const string PkgVersion();
+ static const string PkgInstSource();
+ static const string PkgVersionNew();
+ static const string PkgVersionInst();
+ static const string PkgSize();
+ static const string PkgArch();
+ static const string PkgSource();
+ static const string PatchKind();
+
+ //Useful busy popups
+ static const string Solving();
+ static const string Saving();
+ static const string Loading();
+
+ /**
+ * The headline of the disk space popup
+ */
+ static const string DiskspaceLabel();
+
+ //column headers, diskspace table
+ static const string Partition();
+ static const string UsedSpace();
+ static const string FreeSpace();
+ static const string TotalSpace();
+ /**
+ * The headline of the disk space popup
+ */
+ static const string DiskSpaceError();
+ static const string DiskSpaceWarning();
+ static const string MoreText();
+ static const string MoreSpaceText();
+
+ /**
+ * bold text Version: (richtext)
+ */
+ static const string Version();
+
+ /**
+ * bold text Installed version: (richtext)
+ */
+ static const string InstVersion();
+
+ /**
+ * bold text License: (richtext)
+ */
+ static const string License();
+
+ /**
+ * bold text Media No.: (richtext)
+ */
+ static const string MediaNo();
+
+ /**
+ * bold text Size: (richtext)
+ */
+ static const string Size();
+
+ /**
+ * bold text Package Group: (richtext)
+ */
+ static const string RpmGroup();
+
+ /**
+ * bold text Authors: (richtext)
+ */
+ static const string Authors();
+
+ /**
+ * bold text Provides: (richtext)
+ */
+ static const string Provides();
+
+ /**
+ * bold text Requires: (richtext)
+ */
+ static const string Requires();
+
+ /**
+ * bold text Required by: (richtext)
+ */
+ static const string PreRequires();
+
+ /**
+ * bold text Conflicts with: (richtext)
+ */
+ static const string Conflicts();
+
+ static const string ListOfFiles();
+ static const string LanguageDescription();
+ /**
+ * text used for automatic changes popup
+ */
+ static const string AutoChangeLabel();
+ static const string AutoChangeText1();
+ static const string AutoChangeText2();
+
+ /**
+ * The headline of the help YOU popup
+ */
+ static const string YouHelp();
+
+ /**
+ * help text package status
+ */
+ static const string YouHelp1();
+ static const string YouHelp2();
+ static const string YouHelp3();
+
+ static const string WarningLabel();
+ static const string ErrorLabel();
+ static const string NotifyLabel();
+
+ /**
+ * The label of the OK button
+ */
+ static const string OKLabel();
+
+ /**
+ * The label of the Cancel button
+ */
+ static const string CancelLabel();
+
+ /**
+ * The label of the Yes button
+ */
+ static const string YesLabel();
+
+ /**
+ * The label of the Accept button
+ */
+ static const string AcceptLabel();
+
+ /**
+ * The label of the No button
+ */
+ static const string NoLabel();
+
+ /**
+ * The label of the Solve button
+ */
+ static const string SolveLabel();
+
+
+ static const string CancelText();
+ /**
+ * The label of the language selections popup
+ */
+ static const string LanguageLabel();
+
+ /**
+ * The label of the repositories selections popup
+ */
+ static const string RepoLabel();
+
+ /**
+ * The label Filter: YOU Patches
+ */
+ static const string YOUPatches();
+ static const string InstPatches();
+ static const string Patches();
+
+ /**
+ * The label for Filter: Search results
+ */
+ static const string SearchResults();
+
+ /**
+ * The label for Filter: Update problem
+ */
+ static const string UpdateProblem();
+
+ /**
+ * The headline of the dependency popup
+ */
+ static const string PackageDeps();
+
+ static const string HelpOnUpdate();
+
+ /**
+ * bold text Patch: (richtext)
+ */
+ static const string Patch();
+
+ /**
+ * Info line in empty patch list
+ */
+ static const string NoPatches();
+
+ static const string MenuList();
+ static const string Script();
+
+
+
+private:
+
+ // Need no object of this class: hide default constructor
+ NCPkgStrings();
+
+ static int do_something(){ return 0; }
+
+};
+
+
+///////////////////////////////////////////////////////////////////
+
+#endif // NCPkgStrings_h
+
+
+
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.cc Mon May 23 21:27:16 2011
@@ -91,10 +91,10 @@
case S_AutoDel: // Will be automatically deleted
return " a- ";
case S_AutoUpdate: // Will be automatically updated
- return " a> ";
- case S_Taboo: // Never install this
+ return " a> ";
+ case S_Taboo: // Never install this
return " ---";
- case S_Protected: // always keep installed version
+ case S_Protected: // always keep installed version
return " -i-";
default:
return "####";
@@ -119,7 +119,7 @@
, haveInstalledVersion ( false )
{
fillHeader();
-
+
WIDDBG << endl;
}
@@ -154,7 +154,7 @@
ZyppSel slbPtr )
{
vector<NCTableCol*> Items( elements.size()+1, 0 );
-
+
// fill first column (containing the status information and the package pointers)
Items[0] = new NCPkgTableTag( objPtr, slbPtr, stat );
@@ -163,9 +163,9 @@
Items[i] = new NCTableCol( YCPString( elements[i-1] ) );
}
myPad()->Append( Items );
-
+
// don't call DrawPad(); for every line - is called once after the loop
-
+
}
///////////////////////////////////////////////////////////////////
@@ -178,7 +178,7 @@
//
void NCPkgTable::itemsCleared()
{
- return NCTable::itemsCleared();
+ return NCTable::itemsCleared();
}
@@ -213,8 +213,8 @@
if ( !packager || !slbPtr )
return false;
- zypp::Text notify;
- zypp::License license;
+ std::string notify;
+ std::string license;
bool license_confirmed = true;
ZyppPkg pkgPtr = NULL;
YCPString header( "" );
@@ -235,7 +235,7 @@
case S_Install:
case S_Update:
if ( objPtr )
- {
+ {
notify = objPtr->insnotify();
NCDBG << "NOTIFY message: " << notify << endl;
header = YCPString(PkgNames::NotifyLabel());
@@ -277,7 +277,7 @@
case S_AutoInstall:
newstatus = S_Taboo;
break;
-
+
case S_Update:
case S_AutoUpdate:
newstatus = S_Protected;
@@ -286,7 +286,7 @@
default:
break;
}
-
+
ok = false;
} else {
NCMIL << "User confirmed license agreement for " << pkgName << endl;
@@ -301,10 +301,10 @@
YCPString( "<i>" + pkgName + "</i><br><br>" + packager->createDescrText( notify ) ) );
info.showInfoPopup( );
}
-
+
// inform the package manager
ok = statusStrategy->setObjectStatus( newstatus, slbPtr, objPtr );
-
+
if ( ok && singleChange )
{
switch ( tableType )
@@ -322,22 +322,22 @@
// don't show diskspace (type T_Availables is also used in YOU mode)
break;
case T_Selections:
- // check/show dependencies of selections
+ // check/show dependencies of selections
packager->showSelectionDependencies();
packager->showDiskSpace();
break;
-
+
case T_Patches:
// show the download size for all selected patches
packager->showDownloadSize();
break;
-
+
default:
break;
}
// update this list to show the status changes
updateTable();
-
+
if ( tableType == T_Availables )
{
// additionally update the package list
@@ -364,7 +364,7 @@
while ( index < size )
{
- // get the table line
+ // get the table line
NCTableLine * cl = myPad()->ModifyLine( index );
if ( !cl )
{
@@ -383,7 +383,7 @@
ret = false;
break;
}
-
+
ZyppStatus newstatus = S_NoInst;
if ( slbPtr && objPtr)
{
@@ -399,7 +399,7 @@
{
// get the new status and replace old status
newstatus = statusStrategy->getPackageStatus( slbPtr, objPtr );
-
+
// set new status (if status has changed)
if ( getStatus(index) != newstatus )
{
@@ -429,7 +429,7 @@
case T_Patches: {
packager->fillPatchList( "installable" ); // default: installable patches
- // set the visible info to long description
+ // set the visible info to long description
packager->setVisibleInfo ( PkgNames::PatchDescr() );
// show the package description of the current item
showInformation ();
@@ -439,7 +439,7 @@
if ( ! zypp::getZYpp()->resolver()->problematicUpdateItems().empty() )
{
packager->fillUpdateList();
- // set the visible info to package description
+ // set the visible info to package description
packager->setVisibleInfo ( PkgNames::PkgInfo() );
// show the package description of the current item
showInformation ();
@@ -453,8 +453,8 @@
{
packager->fillPackageList ( YCPString( defaultGroup->value().translation()),
defaultGroup );
-
- // set the visible info to package description
+
+ // set the visible info to package description
packager->setVisibleInfo ( PkgNames::PkgInfo() );
// show the package description of the current item
showInformation ();
@@ -487,7 +487,7 @@
//
// fillHeader
//
-// Fillup the column headers of the package table
+// Fillup the column headers of the package table
//
void NCPkgTable::fillHeader( )
{
@@ -584,14 +584,14 @@
NCERR << "No valid package available" << endl;
return false;
}
-
+
// add the package name
- pkgLine.push_back( slbPtr->name() );
+ pkgLine.push_back( slbPtr->name() );
string instVersion = "";
string version = "";
ZyppStatus status;
-
+
switch( tableType )
{
case T_PatchPkgs: {
@@ -599,7 +599,7 @@
{
instVersion = slbPtr->installedObj()->edition().asString();
}
-
+
// in case of YOU patches: show the version of the package which
// is contained in the patch
version = pkgPtr->edition().asString();
@@ -611,10 +611,10 @@
pkgLine.push_back( instVersion );
pkgLine.push_back( pkgPtr->summary() ); // short description
-
+
status = slbPtr->status(); // the package status
NCMIL << "Status of " << slbPtr->name() << ": " << status << endl;
- zypp::ByteCount size = pkgPtr->size(); // installed size
+ zypp::ByteCount size = pkgPtr->installSize(); // installed size
pkgLine.push_back( size.asString( 8 ) ); // format size
break;
@@ -624,11 +624,11 @@
if ( pkgPtr == slbPtr->candidateObj() )
isCandidate = " x ";
pkgLine.push_back( isCandidate );
-
+
version = pkgPtr->edition().asString();
pkgLine.push_back( version );
// is alias the right string? id?
- pkgLine.push_back( pkgPtr->source().alias() ); // show the installation source
+ pkgLine.push_back( pkgPtr->repoInfo().alias() ); // show the installation source
// set package status either to S_NoInst or S_KeepInstalled
status = S_NoInst;
@@ -640,17 +640,17 @@
status = S_KeepInstalled;
}
}
-
- zypp::ByteCount size = pkgPtr->size(); // installed size
+
+ zypp::ByteCount size = pkgPtr->installSize(); // installed size
pkgLine.push_back( size.asString( 8 ) ); // format size
pkgLine.push_back( pkgPtr->arch().asString()); // architecture
-
+
break;
}
default: {
// version() was edition.version. but what about edition.release?
- // if the package is installed, get the installed version
+ // if the package is installed, get the installed version
if ( slbPtr->hasInstalledObj() )
{
instVersion = slbPtr->installedObj()->edition().version();
@@ -672,26 +672,26 @@
pkgLine.push_back( instVersion ); // installed version
}
pkgLine.push_back( pkgPtr->summary() ); // short description
-
+
status = slbPtr->status(); // the package status
- zypp::ByteCount size = pkgPtr->size(); // installed size
+ zypp::ByteCount size = pkgPtr->installSize(); // installed size
pkgLine.push_back( size.asString( 8 ) ); // format size
// Selectable does not have source_install
#ifdef FIXME
if ( slbPtr->source_install() )
{
- pkgLine.push_back( " x " );
+ pkgLine.push_back( " x " );
}
else
#endif
{
- pkgLine.push_back( " " );
+ pkgLine.push_back( " " );
}
}
}
-
+
addLine( status, // the package status
pkgLine, // the package data
pkgPtr, // the corresponding package pointer
@@ -716,7 +716,7 @@
pkgLine,
ZyppObj(),
ZyppSel()); // null pointer
-
+
return true;
}
@@ -729,7 +729,7 @@
{
vector<string> pkgLine;
pkgLine.reserve(5);
-
+
if ( !patchPtr || !selectable )
{
NCERR << "No valid patch available" << endl;
@@ -737,19 +737,19 @@
}
pkgLine.push_back( selectable->name() ); // show the patch name
-
+
if ( !patchPtr->summary().empty() )
pkgLine.push_back( patchPtr->summary() ); // short description
else
- pkgLine.push_back( selectable->name() ); // name
+ pkgLine.push_back( selectable->name() ); // name
pkgLine.push_back( patchPtr->category() ); // patch kind
pkgLine.push_back( patchPtr->edition().asString() ); // patch version
-
+
// zypp::ByteCount size = patchPtr->size();
// pkgLine.push_back( size.asString( 8 ) );
-
+
addLine( selectable->status(), // get the status
pkgLine,
patchPtr,
@@ -770,25 +770,76 @@
if ( !packager )
return false;
-
+
switch ( tableType )
{
case T_Packages:
case T_Update:
// show the required package info
- packager->showPackageInformation( objPtr, slbPtr );
+ if (objPtr && slbPtr)
+ {
+ packager->showPackageInformation( objPtr, slbPtr );
+ //updateInfo( objPtr, slbPtr, VisibleInfo() );
+ //packager->PackageLabel()->setLabel( slbPtr->name() );
+ }
break;
case T_Patches:
// show the patch info
+ //if (objPtr && slbPtr )
+ // updateInfo( objPtr, slbPtr, VisibleInfo() );
packager->showPatchInformation( objPtr, slbPtr );
break;
default:
break;
}
-
+
return true;
}
+void NCPkgTable::updateInfo( ZyppObj pkgPtr, ZyppSel slbPtr, NCPkgTableInfoType mode )
+{
+/*
+ switch (mode)
+ {
+ case I_Descr:
+ if ( packager->InfoText() )
+ packager->InfoText()->longDescription( pkgPtr );
+ break;
+ case I_Technical:
+ if ( packager->InfoText() )
+ packager->InfoText()->technicalData( pkgPtr, slbPtr );
+ break;
+ case I_Files:
+ if ( packager->InfoText() )
+ packager->InfoText()->fileList( slbPtr );
+ break;
+ case I_Deps:
+ if ( packager->InfoText() )
+ packager->InfoText()->dependencyList( pkgPtr, slbPtr );
+ break;
+ case I_Versions:
+ if ( packager->VersionsList() )
+ packager->VersionsList()->fillAvailableList( slbPtr );
+ break;
+ case I_PatchDescr:
+ if ( packager->InfoText() )
+ packager->InfoText()->patchDescription( pkgPtr, slbPtr );
+ break;
+ case I_PatchPkgs:
+ if ( packager->PatchPkgs() )
+ packager->fillPatchPackages( packager->PatchPkgs(), pkgPtr );
+ break;
+ case I_PatchPkgsVersions:
+ if ( packager->PatchPkgsVersions() )
+ packager->fillPatchPackages( packager->PatchPkgsVersions(), pkgPtr, true );
+ break;
+ // Intentionally omitting 'default' branch so the compiler can
+ // catch unhandled enum states
+ }
+*/
+}
+
+
///////////////////////////////////////////////////////////////////
//
//
@@ -800,10 +851,10 @@
NCursesEvent NCPkgTable::wHandleInput( wint_t key )
{
NCursesEvent ret = NCursesEvent::none;
-
+
// call handleInput of NCPad
handleInput( key );
-
+
switch ( key )
{
case KEY_UP:
@@ -823,7 +874,7 @@
toggleObjStatus( );
ret = NCursesEvent::handled;
- break;
+ break;
}
default: {
// set the new status
@@ -845,7 +896,7 @@
//
ZyppStatus NCPkgTable::getStatus( int index )
{
- // get the tag
+ // get the tag
NCPkgTableTag * cc = getTag( index);
if ( !cc )
return S_NoInst;
@@ -855,7 +906,7 @@
ZyppObj NCPkgTable::getDataPointer( int index )
{
- // get the tag
+ // get the tag
NCPkgTableTag *cc = getTag( index );
if ( !cc )
return ZyppObj( );
@@ -865,7 +916,7 @@
ZyppSel NCPkgTable::getSelPointer( int index )
{
- // get the tag
+ // get the tag
NCPkgTableTag *cc = getTag( index );
if ( !cc )
return ZyppSel( );
@@ -875,7 +926,7 @@
NCPkgTableTag * NCPkgTable::getTag( const int & index )
{
- // get the table line
+ // get the table line
NCTableLine * cl = myPad()->ModifyLine( index );
if ( !cl )
return 0;
@@ -897,7 +948,7 @@
int index = getCurrentItem();
ZyppObj objPtr = getDataPointer( index );
bool ok;
-
+
if ( !objPtr )
{
NCERR << "Invalid Pointer" << endl;
@@ -905,14 +956,14 @@
}
ZyppSel selPtr = objPtr->getSelectable();
NCTableLine * currentLine = myPad()->ModifyLine( index );
-
+
if ( !selPtr || !currentLine )
{
NCERR << "Invalid Selectable" << endl;
return false;
}
- NCTableCol * currentCol = currentLine->GetCol( currentLine->Cols()-1 );
+ NCTableCol * currentCol = currentLine->GetCol( currentLine->Cols()-1 );
if ( install && selPtr->providesSources() )
{
@@ -928,7 +979,7 @@
if ( currentCol )
currentCol->SetLabel( NClabel( " " ) );
}
-
+
return true;
}
#endif
@@ -945,16 +996,16 @@
if ( !slbPtr )
return false;
-
+
ZyppStatus newStatus;
-
+
bool ok = statusStrategy->toggleStatus( slbPtr, objPtr, newStatus );
if ( ok )
{
changeStatus( newStatus, slbPtr, objPtr, true );
}
-
+
return true;
}
@@ -970,12 +1021,12 @@
if ( !slbPtr )
{
- return false;
+ return false;
}
ZyppStatus newStatus;
bool ok = statusStrategy->keyToStatus( key, slbPtr, objPtr, newStatus );
-
+
if ( ok )
{
changeStatus( newStatus, slbPtr, objPtr, true );
@@ -1000,12 +1051,12 @@
ZyppSel slbPtr = getSelPointer( index );
ZyppObj objPtr = getDataPointer( index );
bool ok = false;
-
+
if ( slbPtr )
{
switch ( type ) {
case A_Install: {
- if ( slbPtr->status() == S_NoInst )
+ if ( slbPtr->status() == S_NoInst )
ok = statusStrategy->keyToStatus( '+', slbPtr, objPtr, newStatus );
break;
}
@@ -1028,7 +1079,7 @@
}
case A_UpdateNewer: {
if ( slbPtr->status() == S_KeepInstalled && slbPtr->hasCandidateObj() ) {
- if ( slbPtr->installedObj()->edition() < slbPtr->candidateObj()->edition() )
+ if ( slbPtr->installedObj()->edition() < slbPtr->candidateObj()->edition() )
ok = statusStrategy->keyToStatus( '>', slbPtr, objPtr, newStatus );
}
break;
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPkgTable.h Mon May 23 21:27:16 2011
@@ -26,7 +26,7 @@
#include "NCTable.h"
#include "PkgNames.h"
-#include <map>
+#include <map>
#include <string>
#include <utility> // for STL pair
@@ -56,7 +56,7 @@
// returns the corresponding string value to given package status
string statusToStr( ZyppStatus stat ) const;
-
+
public:
NCPkgTableTag( ZyppObj pkgPtr,
@@ -68,7 +68,7 @@
virtual void DrawAt( NCursesWindow & w, const wrect at,
NCTableStyle & tableStyle,
NCTableLine::STATE linestate,
- unsigned colidx ) const;
+ unsigned colidx ) const;
void setStatus( ZyppStatus stat ) { status = stat; }
ZyppStatus getStatus() const { return status; }
@@ -112,19 +112,30 @@
L_Installed,
L_Unknown
};
-
+
+ enum NCPkgTableInfoType {
+ I_Descr,
+ I_Technical,
+ I_Versions,
+ I_Files,
+ I_Deps,
+ I_PatchDescr,
+ I_PatchPkgs,
+ I_PatchPkgsVersions
+ };
+
private:
NCPkgTable & operator=( const NCPkgTable & );
NCPkgTable ( const NCPkgTable & );
-
+
PackageSelector * packager; // connection to the PackageSelector,
ObjectStatStrategy * statusStrategy; // particular methods to get the status
NCPkgTableType tableType; // the type (e.g. table of packages, patches)
bool haveInstalledVersion; // for T_Packages and T_Update
-
+
// returns the first column of line with 'index' (the tag)
NCPkgTableTag * getTag ( const int & index );
@@ -156,9 +167,9 @@
/**
* Draws the package list (has to be called after the loop with addLine() calls)
- */
+ */
void drawList( ) { return DrawPad(); }
-
+
/**
* Clears the package list
*/
@@ -201,7 +212,7 @@
* the currently selected package and updates the states
* of all packages in the list
* @param newstat The new status
- * @param slbPtr The pointer to the object to change
+ * @param slbPtr The pointer to the object to change
* @param objPtr is candidatePtr or what the user selected instead of it.
* @return bool
*/
@@ -209,7 +220,7 @@
const ZyppSel & slbPtr,
ZyppObj objPtr,
bool singleChange );
-
+
bool changeObjStatus( int key );
bool changeListObjStatus( NCPkgTableListAction key );
@@ -217,27 +228,27 @@
bool toggleObjStatus( );
/**
- * Set the status information if status has changed
+ * Set the status information if status has changed
* @return bool
- */
+ */
bool updateTable();
/**
* Gets the currently displayed package status.
* @param index The index in package table (the line)
* @return ZyppStatus
- */
+ */
ZyppStatus getStatus( int index );
#ifdef FIXME
/**
* Toggles the installation of the source package.
- * @param install
+ * @param install
* @return bool
- */
+ */
bool SourceInstall( bool install );
#endif
-
+
/**
* Sets the type of the table and the status strategy (which means call particular methods
* to set/get the status for different zypp::ResObjects (zypp::Patch, zypp::Package or available zypp::Package)
@@ -249,7 +260,7 @@
bool setTableType( NCPkgTableType type, ObjectStatStrategy * strategy ) {
if ( !strategy )
return false;
-
+
delete statusStrategy;
statusStrategy = strategy;
tableType = type;
@@ -261,32 +272,32 @@
* Gets the data pointer of a certain package.
* @param index The index in package table (the line)
* @return ZyppObj
- */
+ */
ZyppObj getDataPointer( int index );
/**
* Gets the selectable pointer of a certain package.
* @param index The index in package table (the line)
* @return ZyppSel
- */
+ */
ZyppSel getSelPointer( int index );
/**
* Returns the number of lines in the table (the table size)
* @return unsigned int
- */
+ */
unsigned int getNumLines( ) { return myPad()->Lines(); }
/**
* Shows default list (packages of default RPM group or patch list)
* @return bool
- */
+ */
bool fillDefaultList( );
/**
* Fills the header of the table
* @return void
- */
+ */
void fillHeader( );
/**
@@ -294,29 +305,30 @@
* @param pkgPtr The package pointer
* @param slbPtr The selectable pointer
* @return bool
- */
+ */
bool createListEntry ( ZyppPkg pkgPtr, ZyppSel slbPtr );
/**
* Creates a line in the YOU patch table.
- * @param pkgPtr The YOU patch pointer
+ * @param pkgPtr The YOU patch pointer
* @return bool
- */
+ */
bool createPatchEntry ( ZyppPatch pkgPtr, ZyppSel slbPtr );
/**
* Creates a line in the table shwing an info text.
* @param text The information
* @return bool
- */
+ */
bool createInfoEntry ( string text );
/**
* Show the corresponding information (e.g. the package description).
* @return bool
- */
+ */
bool showInformation ( );
+ void updateInfo( ZyppObj pkgPtr, ZyppSel slbPtr, NCPkgTableInfoType mode );
};
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupDeps.cc Mon May 23 21:27:16 2011
@@ -244,7 +244,7 @@
success = resolver->resolvePool();
break;
case S_Verify:
- success = resolver->verifySystem( true ); // check hardware
+ success = resolver->verifySystem(); // check hardware
break;
default:
NCERR << "Unknown action for resolve" << endl;
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupPkgTable.cc Mon May 23 21:27:16 2011
@@ -96,7 +96,7 @@
split->addChild( lb1 );
NCLabel * lb2 = new NCLabel( split, opt, YCPString(PkgNames::AutoChangeText2()) );
split->addChild( lb2 );
-
+
// add the package table (use default type T_Packages)
pkgTable = new NCPkgTable( split, opt );
pkgTable->setPackager( packager );
@@ -147,19 +147,19 @@
pkgTable->itemsCleared(); // clear the table
- set<string> ignoredNames;
+ set<string> ignoredNames;
set<string> userWantedNames = zypp::ui::userWantedPackageNames();
//these are the packages already selected for autoinstallation in previous 'verify system' run
set<string> verifiedNames = packager->getVerifiedPkgs();
//initialize storage for the new set
insert_iterator< set<string> > result (ignoredNames, ignoredNames.begin());
-
+
if(!verifiedNames.empty())
- {
+ {
//if we have some leftovers from previous run, do the union of the sets
set_union(userWantedNames.begin(), userWantedNames.end(),
- verifiedNames.begin(), verifiedNames.end(), result );
+ verifiedNames.begin(), verifiedNames.end(), result );
}
else
//else just take userWanted stuff
@@ -167,7 +167,7 @@
for ( set<string>::iterator it = ignoredNames.begin(); it != ignoredNames.end(); ++it )
NCMIL << "Ignoring: " << *it << endl;
-
+
ZyppPoolIterator
b = zyppPkgBegin(),
e = zyppPkgEnd(),
@@ -180,7 +180,7 @@
// show all packages which are automatically selected for installation
if ( slb->toModify() && slb->modifiedBy () != zypp::ResStatus::USER )
{
- if ( ! contains( ignoredNames, slb->name() ) )
+ if ( ignoredNames.find(slb->name()) ==ignoredNames.end() )
{
ZyppPkg pkgPtr = tryCastToZyppPkg (slb->theObj());
if ( pkgPtr )
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/NCPopupSelection.cc Mon May 23 21:27:16 2011
@@ -25,7 +25,7 @@
#include "PkgNames.h"
#include "NCPkgTable.h"
#include "ObjectStatStrategy.h"
-#include <zypp/ui/PatternContents.h>
+#include <zypp/Pattern.h>
#include "YQZypp.h"
@@ -154,15 +154,18 @@
// show the package list
std::set<std::string> packages;
- ZyppSelection selPtr = tryCastToZyppSelection (objPtr);
- ZyppPattern patPtr = tryCastToZyppPattern (objPtr);
- if (selPtr)
- packages = selPtr->install_packages ();
- else if (patPtr)
- {
- zypp::ui::PatternContents patternContents( patPtr );
- packages = patternContents.install_packages();
- }
+ ZyppPattern patPtr = tryCastToZyppPattern (objPtr);
+ zypp::Pattern::Contents related ( patPtr->contents() );
+ for ( zypp::Pattern::Contents::Selectable_iterator it = related.selectableBegin();
+ it != related.selectableEnd();
+ ++it )
+ {
+ ZyppPkg zyppPkg = tryCastToZyppPkg( (*it)->theObj() );
+ if ( zyppPkg )
+ {
+ packages.insert(zyppPkg->name());
+ }
+ }
packager->showSelPackages( getCurrentLine(), packages );
// showDiskSpace() moved to NCPkgTable.cc (show/check diskspace
@@ -209,7 +212,7 @@
vdim = 20;
else
vdim = NCurses::lines()-4;
-
+
return ( dim == YD_HORIZ ? NCurses::cols()*2/3 : vdim );
}
@@ -262,21 +265,7 @@
///////////////////////////////////////////////////////////////////
//
-// OrderFunc
-//
-bool order( ZyppSel slb1, ZyppSel slb2 )
-{
- ZyppSelection ptr1 = tryCastToZyppSelection (slb1->theObj());
- ZyppSelection ptr2 = tryCastToZyppSelection (slb2->theObj());
- if ( !ptr1 || !ptr2 )
- return false;
- else
- return ptr1->order() < ptr2->order();
-}
-
-///////////////////////////////////////////////////////////////////
-//
-// OrderFuncPattern
+// OrderFuncPattern
//
bool orderPattern( ZyppSel slb1, ZyppSel slb2 )
{
@@ -303,35 +292,14 @@
ZyppPoolIterator i, b, e;
list<ZyppSel> slbList;
-
+
switch ( type )
{
- case S_Selection:
- {
- for ( i = zyppSelectionsBegin () ; i != zyppSelectionsEnd (); ++i )
- {
- ZyppObj resPtr = (*i)->theObj();
- bool show;
-
- ZyppSelection selPtr = tryCastToZyppSelection (resPtr);
- show = selPtr && selPtr->visible() && !selPtr->isBase();
- if (show)
- {
- NCMIL << resPtr->kind () <<": " << resPtr->name()
- << ", initial status: " << (*i)->status() << endl;
-
- slbList.push_back (*i);
- }
- }
- slbList.sort( order );
-
- break;
- }
case S_Pattern:
{
for ( i = zyppPatternsBegin () ; i != zyppPatternsEnd (); ++i )
{
- ZyppObj resPtr = (*i)->theObj();
+ ZyppObj resPtr = (*i)->theObj();
bool show;
ZyppPattern patPtr = tryCastToZyppPattern (resPtr);
@@ -351,7 +319,7 @@
default:
NCERR << "Selecion type not handled: " << type << endl;
}
-
+
list<ZyppSel>::iterator listIt;
vector<string> pkgLine;
for ( listIt = slbList.begin(); listIt != slbList.end(); ++listIt )
@@ -365,6 +333,6 @@
resPtr, // ZyppSelection or ZyppPattern
(*listIt) ); // ZyppSel
}
-
+
return true;
}
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/ObjectStatStrategy.cc Mon May 23 21:27:16 2011
@@ -67,25 +67,25 @@
/////////////////////////////////////////////////////////////////
//
-// ObjectStatStrategy::setObjectStatus()
+// ObjectStatStrategy::setObjectStatus()
//
// Informs the package manager about the status change
//
bool ObjectStatStrategy::setObjectStatus( ZyppStatus newstatus, ZyppSel slbPtr, ZyppObj objPtr )
{
bool ok = false;
-
+
if ( !slbPtr )
{
NCERR << "Invalid package object" << endl;
return false;
}
- ok = slbPtr->set_status( newstatus );
+ ok = slbPtr->setStatus( newstatus );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< newstatus << " returns: " << (ok?"true":"false") << endl;
-
+
return ok;
}
@@ -102,12 +102,12 @@
{
if ( !slbPtr )
return false;
-
+
bool valid = true;
ZyppStatus retStat = S_NoInst;
ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
bool installed = slbPtr->hasInstalledObj();
-
+
// get the new status
switch ( key )
{
@@ -158,7 +158,7 @@
valid = false;
}
break;
- //this is the case for 'going back' i.e. S_Install -> S_NoInst, S_Update -> S_KeepInstalled
+ //this is the case for 'going back' i.e. S_Install -> S_NoInst, S_Update -> S_KeepInstalled
//not for S_Del, since '+' key does this
case '<':
if ( oldStatus == S_Install
@@ -166,7 +166,7 @@
{
retStat = S_NoInst;
}
- else if ( oldStatus == S_Update
+ else if ( oldStatus == S_Update
|| oldStatus == S_AutoUpdate )
{
retStat = S_KeepInstalled;
@@ -182,7 +182,7 @@
retStat = S_Protected;
}
break;
- case '%': // reset S_Taboo or S_Protected status
+ case '%': // reset S_Taboo or S_Protected status
if ( oldStatus == S_Taboo )
{
retStat = S_NoInst;
@@ -203,7 +203,7 @@
if ( valid )
newStat = retStat;
-
+
return valid;
}
@@ -220,10 +220,10 @@
{
if ( !slbPtr )
return false;
-
+
bool ok = true;
-
- ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
+
+ ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
ZyppStatus newStatus = oldStatus;
switch ( oldStatus )
@@ -281,15 +281,7 @@
void ObjectStatStrategy::solveResolvableCollections()
{
zypp::Resolver_Ptr resolver = zypp::getZYpp()->resolver();
-
- resolver->transactReset( zypp::ResStatus::APPL_LOW );
-
- resolver->transactResKind( zypp::ResTraits<zypp::Product>::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Selection>::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Pattern >::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Language >::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Patch >::kind );
- resolver->transactResKind( zypp::ResTraits<zypp::Atom >::kind );
+ resolver->resolvePool();
}
@@ -335,12 +327,12 @@
{
if ( !slbPtr )
return false;
-
+
bool valid = true;
ZyppStatus retStat = S_NoInst;
ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
bool installed = slbPtr->hasInstalledObj();
-
+
// get the new status
switch ( key )
{
@@ -364,12 +356,12 @@
|| oldStatus == S_AutoDel)
{
retStat = S_KeepInstalled;
- }
+ }
else
{
valid = false;
}
-
+
break;
case '>':
if ( oldStatus == S_KeepInstalled
@@ -393,7 +385,7 @@
if ( valid )
newStat = retStat;
-
+
return valid;
}
@@ -411,10 +403,10 @@
{
if ( !slbPtr )
return false;
-
+
bool ok = true;
-
- ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
+
+ ZyppStatus oldStatus = getPackageStatus( slbPtr, objPtr );
ZyppStatus newStatus = oldStatus;
switch ( oldStatus )
@@ -448,14 +440,14 @@
}
newStat = newStatus;
-
+
return ok;
}
#endif
/////////////////////////////////////////////////////////////////
//
-// PatchStatStrategy::setObjectStatus()
+// PatchStatStrategy::setObjectStatus()
//
// Inform the package manager about the status change
// of the patch
@@ -470,12 +462,12 @@
return false;
}
- ok = slbPtr->set_status( newstatus );
+ ok = slbPtr->setStatus( newstatus );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< newstatus << " returns: " << (ok?"true":"false") << endl;
// do a solver run
- solveResolvableCollections();
+ solveResolvableCollections();
return ok;
}
@@ -494,7 +486,7 @@
/////////////////////////////////////////////////////////////////
//
-// SelectionStatStrategy::setObjectStatus()
+// SelectionStatStrategy::setObjectStatus()
//
// Inform the package manager about the status change
// of the selection
@@ -509,12 +501,12 @@
return false;
}
- ok = slbPtr->set_status( newstatus );
+ ok = slbPtr->setStatus( newstatus );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< newstatus << " returns: " << (ok?"true":"false") << endl;
// do a solver run
- solveResolvableCollections();
+ solveResolvableCollections();
return ok;
}
@@ -600,10 +592,10 @@
}
// Set status
- ok = slbPtr->set_status( status );
+ ok = slbPtr->setStatus( status );
NCMIL << "Set status of: " << slbPtr->name() << " to: "
<< status << " returns: " << (ok?"true":"false") << endl;
-
+
// Set candidate
ok = slbPtr->setCandidate( newCandidate );
NCMIL << "Set user candidate returns: " << (ok?"true":"false") << endl;
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.cc Mon May 23 21:27:16 2011
@@ -34,6 +34,7 @@
#include "NCPopupPkgTable.h"
#include "NCPopupPkgDescr.h"
#include "NCPopupFile.h"
+#include "NCPkgStrings.h"
#include "PackageSelector.h"
#include "YSelectionBox.h"
#include "YNCursesUI.h"
@@ -48,13 +49,14 @@
#include "YQZypp.h" // tryCastToZyppPkg(), tryCastToZyppPatch()
#include <zypp/ui/Selectable.h>
-#include <zypp/ui/PatchContents.h>
+#include <zypp/Package.h>
#include <zypp/SysContent.h>
-typedef zypp::ui::PatchContents ZyppPatchContents;
-typedef zypp::ui::PatchContents::const_iterator ZyppPatchContentsIterator;
+typedef zypp::Patch::Contents ZyppPatchContents;
+typedef zypp::Patch::Contents::Selectable_iterator ZyppPatchContentsIterator;
+
typedef zypp::syscontent::Reader::Entry ZyppReaderEntry;
-typedef std::pair<string, ZyppReaderEntry> importMapPair;
+typedef std::pair<string, ZyppReaderEntry> importMapPair;
#include <ycp/YCPString.h>
#include <ycp/YCPVoid.h>
@@ -74,20 +76,7 @@
///////////////////////////////////////////////////////////////////
//
-// CompFunc
-//
-bool sortByName( ZyppSel ptr1, ZyppSel ptr2 )
-{
- if ( ptr1->name() < ptr2->name() )
- {
- return true;
- }
- return false;
-}
-
-///////////////////////////////////////////////////////////////////
-//
-// ignore case compare
+// ignore case compare
//
bool ic_compare ( char c1, char c2 )
{
@@ -124,7 +113,7 @@
// Filter menu
eventHandlerMap[ PkgNames::RpmGroups()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Selections()->toString() ] = &PackageSelector::FilterHandler;
- eventHandlerMap[ PkgNames::Patterns()->toString() ] = &PackageSelector::FilterHandler;
+ eventHandlerMap[ PkgNames::Patterns()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::UpdateList()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Installed()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Whatif()->toString() ] = &PackageSelector::FilterHandler;
@@ -134,10 +123,10 @@
eventHandlerMap[ PkgNames::Security()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::Optional()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::InstalledPatches()->toString() ] = &PackageSelector::FilterHandler;
- eventHandlerMap[ PkgNames::AllPatches()->toString() ] = &PackageSelector::FilterHandler;
+ eventHandlerMap[ PkgNames::AllPatches()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::NewPatches()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::InstalledPatches()->toString() ] = &PackageSelector::FilterHandler;
- eventHandlerMap[ PkgNames::InstallablePatches()->toString() ] = &PackageSelector::FilterHandler;
+ eventHandlerMap[ PkgNames::InstallablePatches()->toString() ] = &PackageSelector::FilterHandler;
eventHandlerMap[ PkgNames::YaST2Patches()->toString() ] = &PackageSelector::FilterHandler;
// Information menu
@@ -147,7 +136,7 @@
eventHandlerMap[ PkgNames::Versions()->toString() ] = &PackageSelector::InformationHandler;
eventHandlerMap[ PkgNames::Relations()->toString() ] = &PackageSelector::InformationHandler;
- // YOU information
+ // YOU information
eventHandlerMap[ PkgNames::PatchDescr()->toString() ] = &PackageSelector::InformationHandler;
eventHandlerMap[ PkgNames::PatchPackages()->toString() ] = &PackageSelector::InformationHandler;
eventHandlerMap[ PkgNames::PatchPackagesVersions()->toString() ] = &PackageSelector::InformationHandler;
@@ -168,7 +157,7 @@
eventHandlerMap[ PkgNames::UpdateNewer()->toString() ] = &PackageSelector::StatusHandler;
eventHandlerMap[ PkgNames::UpdateAll()->toString() ] = &PackageSelector::StatusHandler;
eventHandlerMap[ PkgNames::DontUpdate()->toString() ] = &PackageSelector::StatusHandler;
-
+
// Etc. menu
eventHandlerMap[ PkgNames::ShowDeps()->toString() ] = &PackageSelector::DependencyHandler;
eventHandlerMap[ PkgNames::AutoDeps()->toString() ] = &PackageSelector::DependencyHandler;
@@ -178,7 +167,7 @@
eventHandlerMap[ PkgNames::SaveSel()->toString() ] = &PackageSelector::SelectionHandler;
eventHandlerMap[ PkgNames::LoadSel()->toString() ] = &PackageSelector::SelectionHandler;
eventHandlerMap[ PkgNames::Testcase()->toString() ] = &PackageSelector::TestcaseHandler;
-
+
// Help menu
eventHandlerMap[ PkgNames::GeneralHelp()->toString() ] = &PackageSelector::HelpHandler;
eventHandlerMap[ PkgNames::StatusHelp()->toString() ] = &PackageSelector::HelpHandler;
@@ -205,13 +194,13 @@
selectionPopup = new NCPopupSelection( wpos( 1, 1 ), this, NCPopupSelection::S_Selection );
// create the patterns popup
patternPopup = new NCPopupSelection( wpos( 1, 1 ), this, NCPopupSelection::S_Pattern );
-
+
_rpmGroupsTree = new YRpmGroupsTree ();
// get the rpm groups
ZyppPoolIterator b = zyppPkgBegin ();
ZyppPoolIterator e = zyppPkgEnd ();
ZyppPoolIterator i;
- for ( i = b; i != e; ++i )
+ for ( i = b; i != e; ++i )
{
ZyppPkg zyppPkg = tryCastToZyppPkg( (*i)->theObj() );
if ( zyppPkg )
@@ -220,7 +209,7 @@
}
}
// create the filter popup
- filterPopup = new NCPopupTree( wpos( 1, 1 ), this );
+ filterPopup = new NCPopupTree( wpos( 1, 1 ), this );
// the file popup
filePopup = new NCPopupFile( wpos( 1, 1), floppyDevice, this );
@@ -228,7 +217,7 @@
// create the search popup
searchPopup = new NCPopupSearch( wpos( 1, 1 ), this );
-
+
// the dependency popup
depsPopup = new NCPopupDeps( wpos( 1, 1 ), this );
@@ -257,7 +246,7 @@
}
if ( depsPopup )
{
- delete depsPopup;
+ delete depsPopup;
}
if ( diskspacePopup )
{
@@ -279,108 +268,23 @@
void PackageSelector::createFilterMenu()
{
- bool selections;
- bool patterns;
-
- // create the pattern popup
- if ( ! zyppPool().empty<zypp::Pattern>() )
- {
-
- patterns = true;
- }
- else
- {
- patterns = false;
- }
- // create the selections popup
- if ( ! zyppPool().empty<zypp::Selection>() )
- {
-
- selections = true;
- }
- else
- {
- selections = false;
- }
-
- if ( selections && !patterns )
- {
- // ReplaceWidget and show menu entry Selections instead of Patterns
- char menu[4000];
- snprintf ( menu, sizeof(menu) - 1,
- "`MenuButton( `opt(`key_F4), \"%s\", "
- "[`item( `id(\"groups\"), \"%s\" ), `item( `id(\"selections\"), \"%s\" ), "
- " `item( `id(\"search\"), \"%s\" ), `item( `id(\"installed\"), \"%s\" ), "
- " `item( `id(\"whatif\"), \"%s\" ), `item( `id(\"updatelist\"), \"%s\" ) ] ) ",
- PkgNames::MenuFilter().c_str(),
- PkgNames::MenuEntryRPMGroups().c_str(),
- PkgNames::MenuEntrySelections().c_str(),
- PkgNames::MenuEntrySearch().c_str(),
- PkgNames::MenuEntryInstPkg().c_str() ,
- PkgNames::MenuEntryInstSummary().c_str(),
- PkgNames::MenuEntryUpdateList().c_str()
- );
-
- Parser parser( menu );
- YCodePtr parsed_code = parser.parse ();
- YCPValue layout = YCPNull ();
- if (parsed_code != NULL)
- layout = parsed_code->evaluate();
- if ( !layout.isNull() )
- y2ui->evaluateReplaceWidget( YCPSymbol("replacefilter"), layout->asTerm() );
-
- }
- else if ( patterns && selections )
- {
- // ReplaceWidget and show menu entries Patterns AND Selections
- char menu[4000];
- snprintf ( menu, sizeof(menu) - 1,
- "`MenuButton(`opt(`key_F4), \"%s\", "
- "[`item( `id(\"groups\"), \"%s\" ), `item( `id(\"patterns\"), \"%s\" ), "
- " `item( `id(\"selections\"), \"%s\" ), "
- " `item( `id(\"search\"), \"%s\" ), `item( `id(\"installed\"), \"%s\" ), "
- " `item( `id(\"whatif\"), \"%s\" ), `item( `id(\"updatelist\"), \"%s\" ) ] ) ",
- PkgNames::MenuFilter().c_str(),
- PkgNames::MenuEntryRPMGroups().c_str(),
- PkgNames::MenuEntryPatterns().c_str(),
- PkgNames::MenuEntrySelections().c_str(),
- PkgNames::MenuEntrySearch().c_str(),
- PkgNames::MenuEntryInstPkg().c_str() ,
- PkgNames::MenuEntryInstSummary().c_str(),
- PkgNames::MenuEntryUpdateList().c_str()
- );
-
- Parser parser( menu );
- YCodePtr parsed_code = parser.parse ();
- YCPValue layout = YCPNull ();
- if (parsed_code != NULL)
- layout = parsed_code->evaluate();
- if ( !layout.isNull() )
- y2ui->evaluateReplaceWidget( YCPSymbol("replacefilter"), layout->asTerm() );
-
- }
+ // NO OP if no Selections support
}
///////////////////////////////////////////////////////////////////
//
// detection whether the user has made any changes
//
-
+
void PackageSelector::saveState ()
{
ZyppPool p = zyppPool ();
p.saveState<zypp::Package> ();
p.saveState<zypp::SrcPackage> ();
-
- p.saveState<zypp::Patch> ();
- // some future proofing
- p.saveState<zypp::Message> ();
- p.saveState<zypp::Script> ();
- p.saveState<zypp::Selection> ();
+ p.saveState<zypp::Patch> ();
p.saveState<zypp::Pattern> ();
- p.saveState<zypp::Language> ();
}
void PackageSelector::restoreState ()
@@ -389,15 +293,9 @@
p.restoreState<zypp::Package> ();
p.restoreState<zypp::SrcPackage> ();
-
+
p.restoreState<zypp::Patch> ();
- // some future proofing
- p.restoreState<zypp::Message> ();
- p.restoreState<zypp::Script> ();
-
- p.restoreState<zypp::Selection> ();
p.restoreState<zypp::Pattern> ();
- p.restoreState<zypp::Language> ();
}
bool PackageSelector::diffState ()
@@ -412,21 +310,11 @@
log << diff << endl;
diff = diff || p.diffState<zypp::SrcPackage> ();
log << diff << endl;
-
+
diff = diff || p.diffState<zypp::Patch> ();
log << diff << endl;
- // some future proofing
- diff = diff || p.diffState<zypp::Message> ();
- log << diff << endl;
- diff = diff || p.diffState<zypp::Script> ();
- log << diff << endl;
-
- diff = diff || p.diffState<zypp::Selection> ();
- log << diff << endl;
diff = diff || p.diffState<zypp::Pattern> ();
log << diff << endl;
- diff = diff || p.diffState<zypp::Language> ();
- log << diff << endl;
return diff;
}
@@ -443,7 +331,7 @@
if ( event == NCursesEvent::handled )
return false;
-
+
// Get the id of the widget which is affected
if ( event == NCursesEvent::button )
{
@@ -453,31 +341,31 @@
{
currentId = event.selection;
}
-
+
// Find the handler-function for the given widget-nameId
if ( ! currentId.isNull() )
{
UIMIL << "Selected widget id: " << currentId->toString() << endl;
- // hyperlink
+ // hyperlink
if ( currentId->isString()
&& currentId->asString()->value().substr(0, 4) == "pkg:" )
{
LinkHandler( currentId->asString()->value() );
return true;
}
-
+
tHandlerMap::iterator it = eventHandlerMap.find ( currentId->toString() );
-
+
if (it != eventHandlerMap.end()) // if currentId found in map
- {
+ {
tHandlerFctPtr pFct = (*it).second;
retVal = (this->*pFct) ( event ); // call handler
}
else
{
UIERR << "Unhandled event for widget-Id: " << currentId->toString() << endl;
-
- // return true means: don't leave the event loop in runPkgSelection
+
+ // return true means: don't leave the event loop in runPkgSelection
retVal = true;
}
}
@@ -505,9 +393,9 @@
//
// fillAvailableList
//
-// Fills the package table (on bottom ) with the list of available packages
+// Fills the package table (on bottom ) with the list of available packages
//
-bool PackageSelector::fillAvailableList( NCPkgTable * pkgTable, ZyppSel selectable )
+bool PackageSelector::fillAvailableList( NCPkgTable * pkgTable, ZyppSel slb )
{
if ( !pkgTable )
{
@@ -515,35 +403,47 @@
return false;
}
- if ( !selectable )
+ bool addInstalled = true;
+ if ( !slb )
{
NCERR << "Package pointer not valid" << endl;
return false;
}
-
+
// clear the package table
pkgTable->itemsCleared ();
- NCDBG << "Number of available packages: " << selectable->availableObjs() << endl;
+ NCDBG << "Number of available packages: " << slb->availableSize() << endl;
// show all availables
zypp::ui::Selectable::available_iterator
- b = selectable->availableBegin (),
- e = selectable->availableEnd (),
+ b = slb->availableBegin (),
+ e = slb->availableEnd (),
it;
for (it = b; it != e; ++it)
{
- pkgTable->createListEntry( tryCastToZyppPkg (*it), selectable );
+
+ if ( slb->installedObj() &&
+ slb->installedObj()->edition() == (*it)->edition() &&
+ slb->installedObj()->arch() == (*it)->arch() )
+ // FIXME: In future releases, also the vendor will make a difference
+ {
+ addInstalled = false;
+ }
+ pkgTable->createListEntry( tryCastToZyppPkg (*it), slb );
+ }
+ if ( (! slb->installedEmpty()) && addInstalled )
+ {
+ pkgTable->createListEntry( tryCastToZyppPkg (slb->installedObj()), slb );
}
// show the package list
pkgTable->drawList();
-
+
if ( pkgTable->getNumLines() > 0 )
{
pkgTable->setCurrentItem( 0 );
}
-
return true;
}
@@ -556,7 +456,7 @@
bool PackageSelector::showSelPackages( const YCPString & label, const set<string> & wanted )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "Widget is not a valid NCPkgTable widget" << endl;
@@ -565,7 +465,7 @@
// clear the package table
packageList->itemsCleared ();
-
+
set<string>::iterator not_found = wanted.end ();
std::vector<ZyppSel> sorted;
@@ -607,7 +507,7 @@
// show the package table
packageList->drawList();
-
+
if ( !label.isNull() )
{
NCDBG << "Filter: " << label->toString() << endl;
@@ -619,7 +519,7 @@
static_cast<NCLabel *>(filterLabel)->setLabel( label );
}
}
-
+
return true;
}
@@ -639,9 +539,8 @@
bool checkRequires )
{
NCPkgTable * packageList = getPackageList();
-
- if ( !packageList
- || expr.isNull() )
+
+ if ( !packageList )
{
return false;
}
@@ -649,70 +548,74 @@
// clear the package table
packageList->itemsCleared ();
-// FIXME filter it inside zypp
- ZyppPoolIterator b = zyppPkgBegin ();
- ZyppPoolIterator e = zyppPkgEnd ();
- ZyppPoolIterator i;
-
- // get the package list and sort it
- list<ZyppSel> pkgList( b, e );
- pkgList.sort( sortByName );
-
- // fill the package table
- list<ZyppSel>::iterator listIt = pkgList.begin();
- ZyppPkg pkg;
- string description = "";
- string provides = "";
- string requires = "";
-
- while ( listIt != pkgList.end() )
- {
- if ( (*listIt)->installedObj() )
- pkg = tryCastToZyppPkg ((*listIt)->installedObj());
- else
- pkg = tryCastToZyppPkg ((*listIt)->theObj());
+ zypp::PoolQuery q;
+ q.setMatchSubstring();
- if ( pkg )
- {
- if ( checkDescr )
- {
- zypp::Text value = pkg->description();
- description = createDescrText( value );
- }
- if ( checkProvides )
- {
- zypp::CapSet value = pkg->dep (zypp::Dep::PROVIDES);
- provides = createRelLine( value );
- }
- if ( checkRequires )
- {
- zypp::CapSet value = pkg->dep (zypp::Dep::REQUIRES);
- requires = createRelLine( value );
- }
- if ( ( checkName && match( pkg->name(), expr->value(), ignoreCase )) ||
- ( checkSummary && match( pkg->summary(), expr->value(), ignoreCase) ) ||
- ( checkDescr && match( description, expr->value(), ignoreCase) ) ||
- ( checkProvides && match( provides, expr->value(), ignoreCase) ) ||
- ( checkRequires && match( requires, expr->value(), ignoreCase) )
- )
- {
- // search sucessful
- packageList->createListEntry( pkg, *listIt );
- }
- }
+ q.addString( expr->value() );
+ q.addKind( zypp::ResKind::package );
- ++listIt;
- }
+ if ( !ignoreCase )
+ q.setCaseSensitive();
+ if ( checkName )
+ q.addAttribute( zypp::sat::SolvAttr::name );
+ if ( checkSummary )
+ q.addAttribute( zypp::sat::SolvAttr::summary );
+ if ( checkDescr )
+ q.addAttribute( zypp::sat::SolvAttr::description );
+ if ( checkProvides )
+ q.addAttribute( zypp::sat::SolvAttr("solvable:provides") );
+ if ( checkRequires )
+ q.addAttribute( zypp::sat::SolvAttr("solvable:requires") );
+
+ //NCPopupInfo * info = new NCPopupInfo( wpos( (NCurses::lines()-4)/2, (NCurses::cols()-18)/2 ),
+// "",
+// _("Searching...")
+// );
+//info->popup();
+
+ try
+ {
+ for( zypp::PoolQuery::Selectable_iterator it = q.selectableBegin();
+ it != q.selectableEnd(); it++)
+ {
+ ZyppPkg pkg = tryCastToZyppPkg( (*it)->theObj() );
+ packageList->createListEntry ( pkg, *it);
+ }
+ }
+ catch (const std::exception & e)
+ {
+ //NCPopupInfo * info = new NCPopupInfo ( wpos( NCurses::lines()/10,
+ // NCurses::cols()/10),
+ // NCPkgStrings::ErrorLabel(),
+ // // Popup informs the user that the query string
+ // // entered for package search isn't correct
+ // _("Query Error:") + ("<br>") + e.what(),
+ // NCPkgStrings::OKLabel() );
+ //info->setPreferredSize( 50, 10 );
+ //info->showInfoPopup();
+ //YDialog::deleteTopmostDialog();
+ NCERR << "Caught a std::exception: " << e.what () << endl;
+ }
+
+ //info->popdown();
+//YDialog::deleteTopmostDialog();
+
+ int found_pkgs = packageList->getNumLines();
+ ostringstream s;
+//s << boost::format( _( "%d packages found")) % found_pkgs;
+//packager->PatternLabel()->setText( s.str() );
// show the package list
packageList->drawList();
-
- // set filter label to 'Search'
- YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
- if ( filterLabel )
+
+ if ( found_pkgs > 0 )
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::SearchResults()) );
+ packageList->setCurrentItem( 0 );
+ packageList->showInformation();
+ packageList->setKeyboardFocus();
}
+// else
+ //packager->clearInfoArea();
return true;
}
@@ -726,7 +629,7 @@
bool PackageSelector::fillPatchSearchList( const YCPString & expr )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList
|| expr.isNull() )
{
@@ -738,7 +641,7 @@
// get the patch list and sort it
list<ZyppSel> patchList( zyppPatchesBegin (), zyppPatchesEnd () );
patchList.sort( sortByName );
- list<ZyppSel>::iterator listIt = patchList.begin();
+ list<ZyppSel>::iterator listIt = patchList.begin();
while ( listIt != patchList.end() )
{
@@ -756,7 +659,7 @@
}
// show the patch list with search result
packageList->drawList();
-
+
// set filter label to 'Search'
YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
if ( filterLabel )
@@ -777,20 +680,20 @@
bool PackageSelector::fillPatchList( string filter )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "No valid NCPkgTable widget" << endl;
return false;
}
-
+
// clear list of patches
packageList->itemsCleared ();
// get the patch list and sort it
list<ZyppSel> patchList( zyppPatchesBegin (), zyppPatchesEnd () );
patchList.sort( sortByName );
- list<ZyppSel>::iterator listIt = patchList.begin();
+ list<ZyppSel>::iterator listIt = patchList.begin();
while ( listIt != patchList.end() )
{
@@ -800,18 +703,18 @@
{
checkPatch( patchPtr, *listIt, filter );
}
- ++listIt;
+ ++listIt;
}
if ( filter == "installable"
&& packageList->getNumLines() == 0 )
{
- packageList->createInfoEntry( PkgNames::NoPatches() );
+ packageList->createInfoEntry( PkgNames::NoPatches() );
}
// show the patches
packageList->drawList();
-
+
// show the selected filter label
YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
if ( filterLabel )
@@ -823,14 +726,14 @@
}
else if ( filter == "installed" )
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::InstPatches()) );
+ static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::InstPatches()) );
}
else
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::Patches()) );
+ static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::Patches()) );
}
}
-
+
return true;
}
@@ -843,19 +746,19 @@
bool PackageSelector::fillUpdateList( )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
- UIERR << "Widget is not a valid NCPkgTable widget" << endl;
+ NCERR << "Widget is not a valid NCPkgTable widget" << endl;
return false;
}
// clear the package table
packageList->itemsCleared ();
- list<zypp::PoolItem_Ref> problemList = zypp::getZYpp()->resolver()->problematicUpdateItems();
-
- for ( list<zypp::PoolItem_Ref>::const_iterator it = problemList.begin();
+ list<zypp::PoolItem> problemList = zypp::getZYpp()->resolver()->problematicUpdateItems();
+
+ for ( list<zypp::PoolItem>::const_iterator it = problemList.begin();
it != problemList.end();
++it )
{
@@ -872,19 +775,19 @@
packageList->createListEntry( pkg, slb );
}
}
-
+
}
-
+
// show the list
packageList->drawList();
-
+
// show the selected filter label
- YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
- if ( filterLabel )
+ YWidget * packageLabel = y2ui->widgetWithId( PkgNames::Packages(), true );
+ if ( packageLabel )
{
- static_cast<NCLabel *>(filterLabel)->setLabel( YCPString(PkgNames::UpdateProblem()) );
+ static_cast<NCLabel *>(packageLabel)->setLabel( YCPString(PkgNames::UpdateProblem()) );
}
-
+
return true;
}
@@ -895,95 +798,83 @@
//
bool PackageSelector::fillPatchPackages ( NCPkgTable * pkgTable, ZyppObj objPtr, bool versions )
{
- if ( !pkgTable )
+ if ( !pkgTable || !objPtr )
return false;
+
pkgTable->itemsCleared ();
std::set<ZyppSel> patchSelectables;
-
- ZyppPatch patchPtr = tryCastToZyppPatch( objPtr );
-
+ ZyppPatch patchPtr = tryCastToZyppPatch( objPtr );
+
if ( !patchPtr )
return false;
- ZyppPatchContents patchContents( patchPtr );
+ ZyppPatchContents patchContents( patchPtr->contents() );
- zypp::Patch::AtomList atomList = patchPtr->atoms();
- NCMIL << "Filtering for patch: " << patchPtr->name().c_str() << " number of atoms: " << atomList.size() << endl ;
+ NCMIL << "Filtering for patch: " << patchPtr->name().c_str() << " number of atoms: "
+ << patchContents.size() << endl ;
- for ( ZyppPatchContentsIterator it = patchContents.begin();
- it != patchContents.end();
+ for ( ZyppPatchContentsIterator it = patchContents.selectableBegin();
+ it != patchContents.selectableEnd();
++it )
{
-
- ZyppPkg pkg = tryCastToZyppPkg( *it );
+ ZyppPkg pkg = tryCastToZyppPkg( (*it)->theObj() );
if ( pkg )
{
NCMIL << "Patch package found: " << (*it)->name().c_str() << endl;
-
ZyppSel sel = selMapper.findZyppSel( pkg );
if ( sel )
- if ( contains( patchSelectables, sel ) )
+ {
+ if ( inContainer( patchSelectables, sel ) )
{
NCMIL << "Suppressing duplicate selectable: " << (*it)->name().c_str() << "-" <<
- (*it)->edition().asString().c_str() << " " <<
- (*it)->arch().asString().c_str() << endl;
+ pkg->edition().asString().c_str() << " " <<
+ pkg->arch().asString().c_str() << endl;
}
else
{
patchSelectables.insert( sel );
+ NCDBG << (*it)->name().c_str() << ": Version: " << pkg->edition().asString() << endl;
+
+ pkgTable->createListEntry( pkg, sel );
- if ( versions )
+ if ( versions ) // additionally show all availables
{
- // show all availables
zypp::ui::Selectable::available_iterator
b = sel->availableBegin (),
e = sel->availableEnd (),
it;
for (it = b; it != e; ++it)
{
- pkgTable->createListEntry( tryCastToZyppPkg (*it), sel );
+ ZyppPkg pkgAvail = tryCastToZyppPkg (*it);
+ if ( pkgAvail )
+ {
+ if ( pkg->edition() != pkgAvail->edition() ||
+ pkg->arch() != pkgAvail->arch() )
+ {
+ pkgTable->createListEntry( pkgAvail, sel );
+ }
+ }
}
- }
- else
- {
- pkgTable->createListEntry( pkg, sel );
- }
- }
+ } // if ( versions )
+ }
+ }
}
- else // No ZyppPkg - some other kind of object (script, message)
+ else // No ZyppPkg - some other kind of object
{
- if ( zypp::isKind<zypp::Script> ( *it ) )
- {
- vector<string> pkgLine;
- pkgLine.reserve(4);
+ NCDBG << "Found unknown atom of kind %s: %s" <<
+ (*it)->kind().asString().c_str() <<
+ (*it)->name().c_str() << endl;
- pkgLine.push_back( (*it)->name() );
- pkgLine.push_back( " " ); // versions empty
- pkgLine.push_back( " " );
- pkgLine.push_back( PkgNames::Script() );
-
- pkgTable->addLine( S_NoInst,
- pkgLine,
- ZyppObj(),
- ZyppSel()
- );
- }
- else
- {
- y2debug( "Found unknown atom of kind %s: %s",
- (*it)->kind().asString().c_str(),
- (*it)->name().c_str() );
- }
}
}
// show the list
pkgTable->drawList();
-
+
return true;
}
@@ -996,13 +887,13 @@
bool PackageSelector::fillSummaryList( NCPkgTable::NCPkgTableListType type )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "No valid NCPkgTable widget" << endl;
return false;
}
-
+
// clear the package table
packageList->itemsCleared ();
@@ -1014,32 +905,32 @@
list<ZyppSel>::iterator listIt;
ZyppPkg pkgPtr;
- // If the dependency check is off, the dependencies will not be solved for
+ // If the dependency check is off, the dependencies will not be solved for
// the installation summary.
// This is not necessary because the dependencies will be solved and the
- // "Automatic Changes" list will be shown if the OK button is pressed.
+ // "Automatic Changes" list will be shown if the OK button is pressed.
if ( !autoCheck )
{
// showPackageDependencies( true );
}
-
+
for ( listIt = pkgList.begin(); listIt != pkgList.end(); ++listIt )
{
ZyppSel selectable = *listIt;
ZyppPkg pkg = tryCastToZyppPkg (selectable->theObj ());
- // show all matching packages
+ // show all matching packages
switch ( type )
{
case NCPkgTable::L_Changes: {
if ( selectable->status() != S_NoInst
- && selectable->status() != S_KeepInstalled )
+ && selectable->status() != S_KeepInstalled )
{
packageList->createListEntry( pkg, selectable );
}
break;
}
case NCPkgTable::L_Installed: {
- if ( selectable->status() == S_KeepInstalled )
+ if ( selectable->status() == S_KeepInstalled )
{
packageList->createListEntry( pkg, selectable );
}
@@ -1052,7 +943,7 @@
// show the package list
packageList->drawList();
-
+
// show the selected filter label
YWidget * filterLabel = y2ui->widgetWithId( PkgNames::Filter(), true );
if ( filterLabel )
@@ -1073,13 +964,13 @@
bool PackageSelector::fillPackageList( const YCPString & label, YStringTreeItem * rpmGroup )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "No valid NCPkgTable widget" << endl;
return false;
}
-
+
// clear the package table
packageList->itemsCleared ();
@@ -1095,7 +986,7 @@
for ( listIt = pkgList.begin(); listIt != pkgList.end(); ++listIt )
{
ZyppSel selectable = *listIt;
-
+
// Multiple instances of this package may or may not be in the same
// RPM group, so let's check both the installed version (if there
// is any) and the candidate version.
@@ -1103,14 +994,14 @@
// Make sure we emit only one filterMatch() signal if both exist
// and both are in the same RPM group. We don't want multiple list
// entries for the same package!
-
+
bool match =
checkPackage( selectable->candidateObj(), selectable, rpmGroup ) ||
- checkPackage( selectable->installedObj(), selectable, rpmGroup );
+ checkPackage( selectable->installedObj(), selectable, rpmGroup );
// If there is neither an installed nor a candidate package, check
- // any other instance.
-
+ // any other instance.
+
if ( ! match &&
! selectable->installedObj() &&
! selectable->candidateObj() )
@@ -1120,7 +1011,7 @@
// show the package list
packageList->drawList();
-
+
if ( !label.isNull() )
{
// show the selected filter label
@@ -1142,7 +1033,7 @@
bool PackageSelector::match ( string s1, string s2, bool ignoreCase )
{
string::iterator pos;
-
+
if ( ignoreCase )
{
pos = search( s1.begin(), s1.end(),
@@ -1172,19 +1063,19 @@
return false;
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList )
{
UIERR << "Widget is not a valid NCPkgTable widget" << endl;
return false;
}
-
+
string group_str = _rpmGroupsTree->rpmGroup (rpmGroup);
// is the requested rpm group a prefix of this package's group?
if ( pkg->group ().find (group_str) == 0 )
{
packageList->createListEntry( pkg, slb );
-
+
return true;
}
else
@@ -1204,11 +1095,11 @@
bool PackageSelector::checkPatch( ZyppPatch patchPtr,
ZyppSel selectable,
string filter )
-
+
{
NCPkgTable * packageList = getPackageList();
bool displayPatch = false;
-
+
if ( !packageList || !patchPtr
|| !selectable )
{
@@ -1230,7 +1121,7 @@
if ( selectable->hasInstalledObj() ) // patch installed?
{
// display only if broken
- if ( selectable->installedPoolItem().status().isIncomplete() )
+ if ( selectable->installedObj().isBroken() )
{
displayPatch = true;
NCWAR << "Installed patch is broken: " << patchPtr->name().c_str() << " - "
@@ -1239,13 +1130,13 @@
}
else // patch not installed
- {
- if (selectable->hasCandidateObj() &&
- selectable->candidatePoolItem().status().isSatisfied() )
+ {
+ if (selectable->hasCandidateObj() &&
+ selectable->candidateObj().status().isSatisfied() )
{
//patch not installed, but it is satisfied (updated to the version patch requires)
//all that is missing are patch metadata, so let's display the patch
-
+
displayPatch = true;
NCMIL << "Patch satisfied, but not installed yet: " << patchPtr->name().c_str() << " - "
@@ -1259,9 +1150,14 @@
// isSatisfied(): all packages are installed, therefore the isNeeded() flag
// isn't set. BUT the patch meta data aren't installed and therefore it makes
// sense to install the patch
- if ( selectable->candidatePoolItem().status().isNeeded())
- {
- displayPatch = true;
+ if ( selectable->hasCandidateObj() &&
+ selectable->candidateObj().isRelevant() )
+ {
+ // and only those that are needed
+ if ( ! selectable->candidateObj().isSatisfied() ||
+ // may be it is satisfied because is preselected
+ selectable->candidateObj().status().isToBeInstalled() )
+ displayPatch = true;
}
else
{
@@ -1296,7 +1192,7 @@
if ( patchPtr->category() == "yast" )
displayPatch = true;
}
-
+
if ( displayPatch )
packageList->createPatchEntry( patchPtr, selectable );
@@ -1323,13 +1219,13 @@
newStatus = oldStatus;
break;
- //Keep also those marked for deletion
+ //Keep also those marked for deletion
case S_Del:
case S_AutoDel:
newStatus = S_KeepInstalled;
NCDBG << "Keeping " << kind << " " << selectable->name().c_str() << endl;
break;
-
+
//Add not yet installed pkgs (if they have candidate available)
case S_NoInst:
case S_Taboo:
@@ -1340,12 +1236,12 @@
}
else
{
- NCDBG << "Cannot add " << kind << " " << selectable->name().c_str() <<
- " " << " - no candidate." << endl;
+ NCDBG << "Cannot add " << kind << " " << selectable->name().c_str() <<
+ " " << " - no candidate." << endl;
}
- break;
- }
- }
+ break;
+ }
+ }
//Package/Pattern is not on the list
else
{
@@ -1362,7 +1258,7 @@
NCDBG << "Deleting " << kind << " " << selectable->name().c_str() << endl;
break;
- //Keep status for not installed, taboo and to-be-deleted
+ //Keep status for not installed, taboo and to-be-deleted
case S_Del:
case S_AutoDel:
case S_NoInst:
@@ -1371,9 +1267,9 @@
break;
}
}
-
- if (oldStatus != newStatus)
- selectable->set_status( newStatus );
+
+ if (oldStatus != newStatus)
+ selectable->setStatus( newStatus );
}
///////////////////////////////////////////////////////////////////
@@ -1385,12 +1281,12 @@
bool PackageSelector::SearchHandler( const NCursesEvent& event)
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList || !searchPopup )
{
return false;
}
-
+
// open the search popup
NCursesEvent retEvent = searchPopup->showSearchPopup();
@@ -1405,7 +1301,7 @@
}
packageList->setKeyboardFocus();
-
+
return true;
}
@@ -1431,7 +1327,7 @@
NCERR << "*** InformationHandler RETURN false ***" << endl;
return false;
}
-
+
if ( visibleInfo->compare( event.selection ) == YO_EQUAL )
{
// information selection has not changed
@@ -1444,7 +1340,7 @@
if ( visibleInfo->compare( PkgNames::Versions() ) == YO_EQUAL )
{
// show the package table
- const char * tableLayout = "`PkgSpecial( `id(\"availpkgs\"), `opt(`notify), \"pkgTable\" )";
+ const char * tableLayout = "`PkgSpecial( `id(\"availpkgs\"), `opt(`notify), \"pkgTable\" )";
Parser parser( tableLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1471,7 +1367,7 @@
else if ( visibleInfo->compare( PkgNames::PatchPackages() ) == YO_EQUAL )
{
// show the package table
- const char * tableLayout = "`PkgSpecial( `id(\"patchpkgs\"), `opt(`notify), \"pkgTable\" )";
+ const char * tableLayout = "`PkgSpecial( `id(\"patchpkgs\"), `opt(`notify), \"pkgTable\" )";
Parser parser( tableLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1492,12 +1388,12 @@
patchPkgs->fillHeader( );
fillPatchPackages( patchPkgs, packageList->getDataPointer( packageList->getCurrentItem() ) );
- }
+ }
}
else if ( visibleInfo->compare( PkgNames::PatchPackagesVersions() ) == YO_EQUAL )
{
// show the package table
- const char * tableLayout = "`PkgSpecial( `id(\"pkgsversions\"), `opt(`notify), \"pkgTable\" )";
+ const char * tableLayout = "`PkgSpecial( `id(\"pkgsversions\"), `opt(`notify), \"pkgTable\" )";
Parser parser( tableLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1518,12 +1414,12 @@
patchPkgsVersions->fillHeader( );
fillPatchPackages( patchPkgsVersions, packageList->getDataPointer( packageList->getCurrentItem() ), true );
- }
- }
+ }
+ }
else
{
// show the rich text widget
- const char * textLayout = "`RichText( `id(\"description\"), \" \")";
+ const char * textLayout = "`RichText( `id(\"description\"), \" \")";
Parser parser( textLayout );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
@@ -1531,12 +1427,12 @@
layout = parsed_code->evaluate ();
if (!layout.isNull())
y2ui->evaluateReplaceWidget( YCPSymbol ("replaceinfo"), layout->asTerm() );
-
+
packageList->showInformation( );
}
packageList->setKeyboardFocus();
-
+
UIMIL << "Change package info to: " << visibleInfo->toString() << endl;
return true;
}
@@ -1559,7 +1455,7 @@
showPackageDependencies( true ); // do the check
// update the package list and the disk space info
updatePackageList();
- showDiskSpace();
+ showDiskSpace();
}
else if ( event.selection->compare( PkgNames::VerifySystem() ) == YO_EQUAL )
{
@@ -1570,7 +1466,7 @@
else if ( event.selection->compare( PkgNames::AutoDeps() ) == YO_EQUAL )
{
char menu[2000];
-
+
if ( autoCheck )
{
snprintf ( menu, sizeof(menu) - 1,
@@ -1600,7 +1496,7 @@
Parser parser( menu );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
-
+
if ( parsed_code != NULL )
layout = parsed_code->evaluate();
@@ -1615,7 +1511,7 @@
snprintf ( menu, sizeof(menu) - 1,
"`MenuButton( \"%s\", ["
"`menu( \"%s\", [`item( `id(\"showdeps\"), \"%s\" ), `item( `id(\"autodeps\"), \"%s\" ), `item ( `id(\"verifysystem\"), \"%s\" ) ] ),"
- "`item( `id(\"testcase\"), \"%s\" )"
+ "`item( `id(\"testcase\"), \"%s\" )"
#ifdef FIXME
","
"`menu( \"%s\", [`item( `id(\"save\"), \"%s\" ), `item( `id(\"load\"), \"%s\" ) ] )"
@@ -1626,7 +1522,7 @@
PkgNames::MenuCheckDeps().c_str(),
PkgNames::MenuAutoDeps().c_str(),
PkgNames::MenuVerifySystem().c_str(),
- PkgNames::MenuTestCase().c_str()
+ PkgNames::MenuTestCase().c_str()
#ifdef FIXME
,
PkgNames::MenuSel().c_str(),
@@ -1639,20 +1535,20 @@
Parser parser( menu );
YCodePtr parsed_code = parser.parse ();
YCPValue layout = YCPNull ();
-
+
if ( parsed_code != NULL )
layout = parsed_code->evaluate();
if ( !layout.isNull() )
{
- y2ui->evaluateReplaceWidget( YCPSymbol ("replacemenu"), layout->asTerm() );
+ y2ui->evaluateReplaceWidget( YCPSymbol ("replacemenu"), layout->asTerm() );
autoCheck = true;
}
}
}
NCPkgTable * packageList = getPackageList();
-
+
if ( packageList )
{
packageList->setKeyboardFocus();
@@ -1672,7 +1568,7 @@
{
NCursesEvent retEvent;
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList
|| event.selection.isNull() )
{
@@ -1683,7 +1579,7 @@
{
if ( filterPopup )
{
- // show the filter popup (fills the package list)
+ // show the filter popup (fills the package list)
retEvent = filterPopup->showFilterPopup( );
}
}
@@ -1702,7 +1598,7 @@
// show the selection popup
retEvent = patternPopup->showSelectionPopup( );
}
- }
+ }
// patches
else if ( event.selection->compare( PkgNames::Recommended() ) == YO_EQUAL )
{
@@ -1719,7 +1615,7 @@
else if ( event.selection->compare( PkgNames::YaST2Patches() ) == YO_EQUAL )
{
fillPatchList( "YaST2" ); // patch kind
- }
+ }
else if ( event.selection->compare( PkgNames::AllPatches() ) == YO_EQUAL )
{
fillPatchList( "all" ); // show all patches
@@ -1748,11 +1644,11 @@
{
fillSummaryList( NCPkgTable::L_Installed );
}
-
+
packageList->showInformation();
- packageList->setKeyboardFocus();
-
- // return true means: don't leave the event loop in runPkgSelection
+ packageList->setKeyboardFocus();
+
+ // return true means: don't leave the event loop in runPkgSelection
return true;
}
@@ -1765,13 +1661,13 @@
bool PackageSelector::StatusHandler( const NCursesEvent& event )
{
NCPkgTable * packageList = getPackageList();
-
+
if ( !packageList
|| event.selection.isNull() )
{
return false;
}
-
+
if ( packageList->getNumLines() == 0 )
{
// nothing to do
@@ -1806,24 +1702,24 @@
}
else if ( event.selection->compare( PkgNames::TabooOn() ) == YO_EQUAL )
{
- packageList->changeObjStatus( '!' );
+ packageList->changeObjStatus( '!' );
}
else if ( event.selection->compare( PkgNames::TabooOff() ) == YO_EQUAL )
{
- packageList->changeObjStatus( '%' );
- }
+ packageList->changeObjStatus( '%' );
+ }
else if ( event.selection->compare( PkgNames::SourceYes() ) == YO_EQUAL )
{
#ifdef FIXME
- packageList->SourceInstall( true );
+ packageList->SourceInstall( true );
#endif
}
else if ( event.selection->compare( PkgNames::SourceNo() ) == YO_EQUAL )
{
#ifdef FIXME
- packageList->SourceInstall( false );
+ packageList->SourceInstall( false );
#endif
- }
+ }
else if ( event.selection->compare( PkgNames::InstallAll() ) == YO_EQUAL )
{
packageList->changeListObjStatus( NCPkgTable::A_Install );
@@ -1852,9 +1748,9 @@
{
packageList->changeListObjStatus( NCPkgTable::A_DontUpdate );
}
-
+
packageList->setKeyboardFocus();
-
+
return true;
}
@@ -1863,7 +1759,7 @@
// PackageListHandler
//
// Handles actions not directly related to the package list.
-//
+//
bool PackageSelector::PackageListHandler( const NCursesEvent& event )
{
return true;
@@ -1874,7 +1770,7 @@
// DiskinfoHandler
//
// Opens a popup with disk space information.
-//
+//
bool PackageSelector::DiskinfoHandler( const NCursesEvent& event )
{
NCPkgTable * packageList = getPackageList();
@@ -1887,7 +1783,7 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
@@ -1902,7 +1798,7 @@
bool found = false;
// e.g. link is pkg://hp-officeJet
string pkgName = link.substr(6);
-
+
ZyppPoolIterator
b = zyppPkgBegin(),
e = zyppPkgEnd(),
@@ -1925,15 +1821,15 @@
NCERR << "Package " << pkgName << " NOT found" << endl;
// open error popup
}
-
+
return found;
}
///////////////////////////////////////////////////////////////////
//
// testcase handler
-//
-// generate solver testcase
+//
+// generate solver testcase
//
bool PackageSelector::TestcaseHandler ( const NCursesEvent& event )
{
@@ -1949,7 +1845,7 @@
YCPString( "" ),
YCPString( _("Dependency resolver test case written to ") + "<br>" + testCaseDir ) );
info.setNiceSize( 40, 8 );
- info.showInfoPopup( );
+ info.showInfoPopup( );
}
return success;
}
@@ -1957,7 +1853,7 @@
///////////////////////////////////////////////////////////////////
//
// File handler
-//
+//
// export/import all packages and patterns list to/from file
//
bool PackageSelector::FileHandler( const NCursesEvent& event )
@@ -1967,16 +1863,16 @@
return false;
}
- //Export package list into file
- if ( event.selection->compare( PkgNames::ExportToFile() ) == YO_EQUAL )
+ //Export package list into file
+ if ( event.selection->compare( PkgNames::ExportToFile() ) == YO_EQUAL )
{
//Ask for file to save into
- YCPValue filename = YNCursesUI::ui()->askForSaveFileName( YCPString(DEFAULT_EXPORT_FILE_NAME),
- YCPString("*.xml"),
- YCPString(_("Export List of All Packages and Patterns to File" )));
-
- if ( filename->isString() && !filename->asString()->value().empty() )
- {
+ YCPValue filename = YNCursesUI::ui()->askForSaveFileName( YCPString(DEFAULT_EXPORT_FILE_NAME),
+ YCPString("*.xml"),
+ YCPString(_("Export List of All Packages and Patterns to File" )));
+
+ if ( filename->isString() && !filename->asString()->value().empty() )
+ {
zypp::syscontent::Writer writer;
const zypp::ResPool & pool = zypp::getZYpp()->pool();
@@ -1986,21 +1882,21 @@
boost::ref(writer),
_1));
- try
+ try
{
//open file for writing and try to dump syscontent into it
std::ofstream exportFile( filename ->asString()->value_cstr() );
exportFile.exceptions(std::ios_base::badbit | std::ios_base::failbit );
exportFile << writer;
-
+
NCMIL << "Exported list of packages and patterns to " << filename->toString() << endl;
- }
-
+ }
+
catch (std::exception & exception)
{
NCWAR << "Error exporting list of packages and patterns to " << filename->toString() << endl;
- //delete partially written file (don't care if it doesn't exist)
+ //delete partially written file (don't care if it doesn't exist)
(void) unlink( filename->asString()->value_cstr() );
//present error popup to the user
@@ -2012,9 +1908,9 @@
NCursesEvent input = errorMsg.showInfoPopup();
}
-
+
return true;
- }
+ }
}
//Import package list from file
@@ -2026,12 +1922,12 @@
YCPString(_("Import List of All Packages and Patterns from File")));
if ( filename->isString() && !filename->asString()->value().empty() )
- {
+ {
NCPkgTable * packageList = getPackageList();
NCMIL << "Importing list of packages and patterns from " << filename->toString() << endl;
try
- {
+ {
std::ifstream importFile ( filename->asString()->value_cstr() );
zypp::syscontent::Reader reader (importFile);
@@ -2045,32 +1941,32 @@
it ++ )
{
string kind = it->kind();
-
+
// importMapPair => std::pair<string, ZyppReaderEntry>
- if ( kind == "package" )
+ if ( kind == "package" )
importPkgs.insert( importMapPair( it->name(), *it ) );
- else if ( kind == "pattern" )
+ else if ( kind == "pattern" )
importPatterns.insert( importMapPair( it->name(), *it ) );
- }
+ }
- NCMIL << "Found " << importPkgs.size() << " packages and " << importPatterns.size() << " patterns." << endl;
+ NCMIL << "Found " << importPkgs.size() << " packages and " << importPatterns.size() << " patterns." << endl;
//Change status of appropriate packages and patterns
for (ZyppPoolIterator it = zyppPkgBegin();
- it != zyppPkgEnd();
+ it != zyppPkgEnd();
it++ )
{
ZyppSel selectable = *it;
//isWanted => package name found in importPkgs map
- importSelectable ( *it, importPkgs.find( selectable->name() ) != importPkgs.end(), "package" );
+ importSelectable ( *it, importPkgs.find( selectable->name() ) != importPkgs.end(), "package" );
}
for (ZyppPoolIterator it = zyppPatternsBegin();
- it != zyppPatternsEnd();
+ it != zyppPatternsEnd();
it++ )
{
ZyppSel selectable = *it;
- importSelectable ( *it, importPatterns.find( selectable->name() ) != importPatterns.end(), "pattern" );
+ importSelectable ( *it, importPatterns.find( selectable->name() ) != importPatterns.end(), "pattern" );
}
//Switch to installation summary filter
@@ -2096,12 +1992,12 @@
}
}
}
- return true;
+ return true;
}
///////////////////////////////////////////////////////////////////
//
// HelpHandler
-//
+//
// Show the help popup
//
bool PackageSelector::HelpHandler( const NCursesEvent& event )
@@ -2109,12 +2005,12 @@
NCPkgTable * packageList = getPackageList();
string text = "";
YCPString headline = YCPString(PkgNames::PackageHelp());
-
+
if ( event.selection.isNull() )
{
return false;
}
-
+
if ( event.selection->compare( PkgNames::GeneralHelp() ) == YO_EQUAL )
{
text += PkgNames::HelpPkgInst1();
@@ -2145,7 +2041,7 @@
headline = YCPString(PkgNames::SearchHeadline());
text += PkgNames::HelpOnSearch();
}
-
+
// open the popup with the help text
NCPopupInfo pkgHelp( wpos( 1, 1 ), headline, YCPString( text ) );
pkgHelp.setNiceSize( (NCurses::cols()*65)/100, (NCurses::lines()*85)/100 );
@@ -2155,14 +2051,14 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
///////////////////////////////////////////////////////////////////
//
// YOUHelpHandler
-//
+//
// Show the Online Update Help
//
bool PackageSelector::YouHelpHandler( const NCursesEvent& event )
@@ -2182,14 +2078,14 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
///////////////////////////////////////////////////////////////////
//
// SelectionHandler
-//
+//
// Save/Load selections
//
bool PackageSelector::SelectionHandler( const NCursesEvent& event )
@@ -2200,7 +2096,7 @@
{
return false;
}
-
+
if ( event.selection->compare( PkgNames::SaveSel() ) == YO_EQUAL )
{
filePopup->saveToFile();
@@ -2216,7 +2112,7 @@
{
packageList->setKeyboardFocus();
}
-
+
return true;
}
@@ -2225,7 +2121,7 @@
// CancelHandler
//
// Cancel button handler.
-//
+//
bool PackageSelector::CancelHandler( const NCursesEvent& event )
{
bool changes = diffState ();
@@ -2237,7 +2133,7 @@
YCPString( PkgNames::CancelText() ),
PkgNames::OKLabel(),
PkgNames::CancelLabel() );
- cancelMsg.setNiceSize( 35, 8 );
+ cancelMsg.setNiceSize( 35, 8 );
NCursesEvent input = cancelMsg.showInfoPopup( );
if ( input == NCursesEvent::cancel ) {
// don't leave the package installation dialog
@@ -2249,7 +2145,7 @@
NCMIL << "Cancel button pressed - leaving package selection" << endl;
const_cast<NCursesEvent &>(event).result = YCPSymbol("cancel");
-
+
// return false, which means stop the event loop (see runPkgSelection)
return false;
}
@@ -2259,7 +2155,7 @@
// OkButtonHandler
//
// OK button handler.
-//
+//
bool PackageSelector::OkButtonHandler( const NCursesEvent& event )
{
bool closeDialog = true;
@@ -2277,7 +2173,7 @@
}
confirmedAllLicenses = showPendingLicenseAgreements();
-
+
} while ( !confirmedAllLicenses && closeDialog );
if ( !youMode ) // don't show automatic changes if YOU mode
@@ -2292,7 +2188,7 @@
closeDialog = false;
}
}
-
+
if ( diskspacePopup )
{
string message = "";
@@ -2305,8 +2201,8 @@
YCPString( PkgNames::DiskSpaceError() + "<br>" + message ),
PkgNames::OKLabel(),
PkgNames::CancelLabel() );
-
- spaceMsg.setNiceSize( 50, 10 );
+
+ spaceMsg.setNiceSize( 50, 10 );
NCursesEvent input = spaceMsg.showInfoPopup( );
if ( input == NCursesEvent::cancel )
@@ -2323,10 +2219,10 @@
// could free some memory?
// clearSaveState ();
- const_cast<NCursesEvent &>(event).result = YCPSymbol("accept");
+ const_cast<NCursesEvent &>(event).result = YCPSymbol("accept");
NCMIL << "OK button pressed - leaving package selection, starting installation" << endl;
- // return false, leave the package selection
+ // return false, leave the package selection
return false;
}
else
@@ -2355,7 +2251,7 @@
bool PackageSelector::showPendingLicenseAgreements( ZyppPoolIterator begin, ZyppPoolIterator end )
{
- y2milestone( "Showing all pending license agreements" );
+ NCMIL << "Showing all pending license agreements" << endl;
bool allConfirmed = true;
@@ -2376,7 +2272,8 @@
if ( ! licenseText.empty() )
{
- y2milestone( "Package/Patch %s has a license agreement", sel->name().c_str() );
+ NCMIL << "Package/Patch " << sel->name().c_str() <<
+ "has a license" << endl;
if( ! sel->hasLicenceConfirmed() )
{
@@ -2384,7 +2281,8 @@
}
else
{
- y2milestone( "Package/Patch %s's license is already confirmed", sel->name().c_str() );
+ NCMIL << "License for " << sel->name().c_str() <<
+ " is already confirmed" << endl;
}
}
}
@@ -2422,18 +2320,18 @@
{
case S_Install:
case S_AutoInstall:
- slbPtr->set_status( S_Taboo );
+ slbPtr->setStatus( S_Taboo );
break;
-
+
case S_Update:
case S_AutoUpdate:
- slbPtr->set_status( S_Protected );
+ slbPtr->setStatus( S_Protected );
break;
default:
break;
}
-
+
ok = false;
} else {
NCMIL << "User confirmed license agreement for " << pkgName << endl;
@@ -2464,13 +2362,13 @@
if ( visibleInfo.isNull() )
{
NCERR << "Visible package information NOT set" << endl;
- return false;
- }
+ return false;
+ }
if ( visibleInfo->compare( PkgNames::PatchDescr() ) == YO_EQUAL )
{
string descr;
-
+
descr += PkgNames::Patch();
descr += selectable->name();
descr += " ";
@@ -2487,22 +2385,22 @@
descr += "<br>";
if ( selectable->hasInstalledObj()
- && selectable->installedPoolItem().status().isIncomplete() )
+ && selectable->installedObj().isBroken() )
{
descr += _( "----- this patch is broken !!! -----" );
descr += "<br>";
}
// get and format the patch description
- zypp::Text value = patchPtr->description();
+ string value = patchPtr->description();
descr += createDescrText( value );
-
- // show the description
+
+ // show the description
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
-
+
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString( descr ) );
- }
+ }
}
else if ( visibleInfo->compare( PkgNames::PatchPackages() ) == YO_EQUAL )
{
@@ -2520,7 +2418,7 @@
fillPatchPackages ( patchPkgsVersions, objPtr, true);
}
}
-
+
return true;
}
@@ -2534,7 +2432,7 @@
bool PackageSelector::showPackageDependencies ( bool doit )
{
bool cancel = false;
-
+
if ( depsPopup
&& (doit || autoCheck) )
{
@@ -2597,22 +2495,22 @@
NCERR << "Selectable not valid" << endl;
return false;
}
-
+
if ( visibleInfo.isNull() )
{
NCERR << "Visible package information NOT set" << endl;
- return false;
+ return false;
}
if ( visibleInfo->compare( PkgNames::LongDescr() ) == YO_EQUAL )
{
// ask the package manager for the description of this package
- zypp::Text value = pkgPtr->description();
+ string value = pkgPtr->description();
string descr = createDescrText( value );
- // show the description
+ // show the description
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
-
+
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString(descr) );
@@ -2627,26 +2525,26 @@
if ( package )
{
// get the file list from the package manager/show the list
- list<string> fileList = package->filenames();
- text += createText( fileList, false ) ;
+ zypp::Package::FileList fileList = package->filelist();
+ text += createText( fileList.begin(), fileList.end(), false ) ;
}
-
- // get the widget id
- YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
+
+ // get the widget id
+ YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString(text) );
- }
+ }
}
else if ( visibleInfo->compare( PkgNames::PkgInfo() ) == YO_EQUAL )
{
string instVersion = "";
string version = "";
string text = "";
-
+
text += slbPtr->name();
text += " - ";
-
+
text += pkgPtr->summary();
text += "<br>";
@@ -2665,9 +2563,9 @@
{
version = pkgPtr->edition().version();
version += "-";
- version += pkgPtr->edition().release();
+ version += pkgPtr->edition().release();
}
-
+
text += PkgNames::Version();
text += version;
if ( instVersion != "" )
@@ -2677,22 +2575,22 @@
text += instVersion;
}
text += " ";
-
+
// show the size
text += PkgNames::Size();
- text += pkgPtr->size().asString();
+ text += pkgPtr->installSize().asString();
text += " ";
-
+
ZyppPkg package = tryCastToZyppPkg (pkgPtr);
if ( package )
{
// add the media nr
text += PkgNames::MediaNo();
char num[5];
- int medianr = package->sourceMediaNr ();
+ int medianr = package->location().medianr();
sprintf( num, "%d", medianr );
text += num;
- text += "<br>";
+ text += "<br>";
// the license
text += PkgNames::License();
@@ -2705,10 +2603,10 @@
text += package->group ();
text += "<br>";
}
-
+
// show Provides:
text += PkgNames::Provides();
- zypp::CapSet provides = package->dep (zypp::Dep::PROVIDES);
+ zypp::Capabilities provides = package->dep (zypp::Dep::PROVIDES);
text += createRelLine(provides);
text += "<br>";
@@ -2716,11 +2614,11 @@
if ( package )
{
text += PkgNames::Authors();
- list<string> authors = package->authors(); // zypp::Package
- text += createText( authors, true );
+ list<string> authors = package->authors(); // zypp::Package
+ text += createText( authors.begin(), authors.end(), true );
}
-
- // show the description
+
+ // show the description
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
if ( descrInfo )
@@ -2753,14 +2651,13 @@
zypp::Dep::OBSOLETES,
zypp::Dep::RECOMMENDS,
zypp::Dep::SUGGESTS,
- zypp::Dep::FRESHENS,
zypp::Dep::ENHANCES,
zypp::Dep::SUPPLEMENTS,
};
for (size_t i = 0; i < sizeof (deptypes)/sizeof(deptypes[0]); ++i)
{
zypp::Dep deptype = deptypes[i];
- zypp::CapSet relations = pkgPtr->dep (deptype);
+ zypp::Capabilities relations = pkgPtr->dep (deptype);
string relline = createRelLine (relations);
if (!relline.empty ())
{
@@ -2769,18 +2666,18 @@
+ relline + "<br>";
}
}
-
- // show the package relations
+
+ // show the package relations
YWidget * descrInfo = y2ui->widgetWithId( PkgNames::Description(), true );
-
+
if ( descrInfo )
{
static_cast<NCRichText *>(descrInfo)->setText( YCPString( text ) );
}
}
-
+
NCDBG << "Showing package information: " << visibleInfo->toString() << endl;
-
+
return true;
}
@@ -2790,10 +2687,10 @@
//
#define DOCTYPETAG "<!-- DT:Rich -->"
-string PackageSelector::createDescrText( zypp::Text value )
+string PackageSelector::createDescrText( const string & value )
{
string html_text = "";
-
+
#ifdef FIXME
bool author_format = false;
bool htmlFormat = false; /* Is the description coming in html? */
@@ -2802,7 +2699,7 @@
* to be formatted in html. The yast (this method here) needs not to
* do further formatting for the text part.
*/
-
+
list<string>::const_iterator it = value.begin();
string line;
@@ -2853,15 +2750,15 @@
else
{
html_text += " ";
- }
+ }
}
-
+
++it;
}
#else
html_text = value;
#endif
-
+
return html_text;
}
@@ -2879,19 +2776,15 @@
}
}
-///////////////////////////////////////////////////////////////////
-//
-// createProvides
-//
-string PackageSelector::createRelLine( const zypp::CapSet & info )
+string PackageSelector::createRelLine( const zypp::Capabilities & info )
{
string text = "";
- zypp::CapSet::const_iterator
+ zypp::Capabilities::const_iterator
b = info.begin (),
e = info.end (),
it;
unsigned int i, n = info.size();
-
+
for ( it = b, i = 0; it != e; ++it, ++i )
{
text = text + (*it).asString();
@@ -2904,40 +2797,6 @@
return text;
}
-
-///////////////////////////////////////////////////////////////////
-//
-// createText
-//
-string PackageSelector::createText( list<string> info, bool oneline )
-{
- list<string>::iterator it;
- string text = "";
- unsigned int i;
-
- for ( i = 0, it = info.begin(); it != info.end() && i < 1000; ++it, i++ )
- {
- text += (*it);
- if ( i < info.size()-1 )
- {
- if ( oneline && i < 999 )
- {
- text += ", ";
- }
- else
- {
- text += "<br>";
- }
- }
- if ( i == 999 )
- {
- text += "...";
- }
- }
-
- return text;
-}
-
static
ostream & operator << (ostream & s, zypp::DiskUsageCounter::MountPoint mp)
{
@@ -2971,14 +2830,14 @@
zypp::ByteCount diff = 0;
for (it = b; it != e; ++it)
{
- UIMIL << *it << endl;
+ //NCMIL << *it << endl;
diff += (it->pkg_size - it->used_size) * 1024;
}
// show pkg_diff, i.e. total difference of disk space (can be negative in installed system
// if packages are deleted)
YCPString label( diff.asString () );
-
+
// show the required diskspace
YWidget * diskSpace = y2ui->widgetWithId( PkgNames::Diskspace(), true );
if ( diskSpace )
@@ -3010,18 +2869,17 @@
if ( patch )
{
- ZyppPatchContents patchContents( patch );
+ zypp::Patch::Contents patchContents(patch->contents());
- for ( ZyppPatchContentsIterator contents_it = patchContents.begin();
- contents_it != patchContents.end();
- ++contents_it )
- {
- ZyppPkg pkg = tryCastToZyppPkg( *contents_it );
- ZyppSel sel;
-
- if ( pkg )
- sel = selMapper.findZyppSel( pkg );
-
+ for ( ZyppPatchContentsIterator contents_it = patchContents.selectableBegin();
+ contents_it != patchContents.selectableEnd();
+ ++contents_it )
+ {
+ ZyppPkg pkg = tryCastToZyppPkg( (*contents_it)->theObj() );
+ ZyppSel sel;
+
+ if ( pkg )
+ sel = selMapper.findZyppSel( pkg );
if ( sel )
{
@@ -3063,7 +2921,7 @@
++it )
{
if ( (*it)->candidateObj() )
- totalSize += (*it)->candidateObj()->size();
+ totalSize += (*it)->candidateObj()->downloadSize();
}
YCPString label( totalSize.asString() );
@@ -3084,6 +2942,6 @@
NCPkgTable * PackageSelector::getPackageList()
{
YWidget * packages = y2ui->widgetWithId( PkgNames::Packages(), true );
-
+
return ( dynamic_cast<NCPkgTable *>(packages) );
}
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/PackageSelector.h Mon May 23 21:27:16 2011
@@ -24,7 +24,7 @@
#include "YNCursesUI.h"
#include "PkgNames.h"
-#include <map>
+#include <map>
#include <string>
#include <utility> // for STL pair
@@ -68,7 +68,7 @@
typedef std::map<std::string, tHandlerFctPtr> tHandlerMap;
tHandlerMap eventHandlerMap; // event handler map
-
+
YNCursesUI * y2ui; // the UI
YCPValue visibleInfo; // visible package info (description, file list, ...)
@@ -85,21 +85,21 @@
NCPopupSearch * searchPopup; // the package search popup
NCPopupFile * filePopup; // the save/load selection popup
-
+
bool youMode; // YOU
bool updateMode; // Update
bool testMode; // testing
-
+
bool autoCheck; // flag for automatic dependency check on/off
YRpmGroupsTree * _rpmGroupsTree; // rpm groups of the found packages
-
- // internal helper functions (format list of string)
- string createRelLine( const zypp::CapSet & info );
+
+ // internal helper functions (format list of string)
+ string createRelLine( const zypp::Capabilities & info );
// internal use (copies tree items got from YPkgRpmGroupTagsFilterView)
void cloneTree( YStringTreeItem * parentOrig, YTreeItem * parentClone );
- // the package (patch) list
+ // the package (patch) list
NCPkgTable * getPackageList();
// Mapping from ZyppPkg to the correspoinding ZyppSel.
@@ -123,9 +123,9 @@
/**
* Destructor
- */
+ */
virtual ~PackageSelector();
-
+
/**
* Fills the package table
* @param label The selected RPM group (the label)
@@ -141,7 +141,7 @@
* @return bool
*/
bool fillPatchList( string filter );
-
+
/**
* Fills the package table with packages with update problems
* @return bool
@@ -149,15 +149,15 @@
bool fillUpdateList( );
/**
- * Fills the package table with a summary packages
+ * Fills the package table with a summary packages
* @return bool
*/
bool fillSummaryList( NCPkgTable::NCPkgTableListType type );
-
+
/**
* Fills the list of available packages
* @param table The table widget
- * @param selectable Show all available versions of this package
+ * @param selectable Show all available versions of this package
* @return bool
*/
bool fillAvailableList( NCPkgTable *table, ZyppSel selectable );
@@ -168,9 +168,9 @@
* @param youPatch Show all packages belonging to the patch
* @param versions Show all versions of all packages belonging to the patch
* @return bool
- */
+ */
bool fillPatchPackages ( NCPkgTable * pkgTable, ZyppObj youPatch, bool versions = false );
-
+
/**
* Fills the package table with packages matching the search expression
* @param expr The search expression
@@ -180,7 +180,7 @@
* @param checkProvides Check in Provides (true or false)
* @param checkRequires Check in Requires (true or false)
* @return bool
- */
+ */
bool fillSearchList( const YCPString & expr,
bool ignoreCase,
bool checkName,
@@ -190,7 +190,7 @@
bool checkRequires );
bool fillPatchSearchList( const YCPString & expr );
-
+
bool isYouMode() { return youMode; }
/**
* Gets default RPM group (the first group)
@@ -231,7 +231,7 @@
* @return bool
*/
bool SelectionHandler( const NCursesEvent& event );
-
+
/**
* Handler function for the "Information" menu
* @param event The Ncurses event
@@ -254,7 +254,7 @@
/**
* Handler function for "OK button pressed"
* @param event The Ncurses event
- * @return bool
+ * @return bool
*/
bool OkButtonHandler ( const NCursesEvent& event );
@@ -271,26 +271,26 @@
* @return bool
*/
bool DiskinfoHandler ( const NCursesEvent& event );
-
+
/**
* Handler function for the package list which handles events not directly
* related to the list. Most events are handled in NCPkgTable itself.
* @param event The Ncurses event
* @return bool
- */
+ */
bool PackageListHandler( const NCursesEvent& event );
/**
* Handler function for the "Filter" menu
* @param event The Ncurses event
- * @return bool
+ * @return bool
*/
bool FilterHandler( const NCursesEvent& event );
/**
* Handler function for the "Action" menu (changes the package status)
* @param event The Ncurses event
- * @return bool
+ * @return bool
*/
bool StatusHandler( const NCursesEvent& event );
@@ -314,7 +314,7 @@
* @return bool
*/
bool LinkHandler ( string link );
-
+
/**
* Gets the required package info from package manager and shows it
* ( called from NCPkgTable )
@@ -333,12 +333,12 @@
* Verifies and shows the dependencies
*/
bool verifyPackageDependencies ();
-
+
/**
* Checks and shows the selectiondependencies
*/
void showSelectionDependencies ( );
-
+
/**
* Gets the required patch info from you patch manager and shows it
@@ -347,7 +347,7 @@
*/
bool showPatchInformation ( ZyppObj pkgPtr, ZyppSel slbPtr );
-
+
/**
* Sets the member variable to the currently visible information
* @param info
@@ -366,11 +366,11 @@
* Updates the status in list of packages
*/
void updatePackageList();
-
+
/**
* Check if 'pkg' matches 'selectedRpmGroup'.
* Returns true if there is a match, false otherwise or if 'pkg' is 0.
- * @return bool
+ * @return bool
**/
bool checkPackage( ZyppObj pkg, ZyppSel slb, YStringTreeItem * rpmGroup );
@@ -380,22 +380,22 @@
* @return bool
**/
bool checkPatch( ZyppPatch patch, ZyppSel selectable, string filter );
-
+
/**
- * Set status of a selectable according to its presence
+ * Set status of a selectable according to its presence
* in the list imported from xml file (zypp::syscontent::Reader)
- *
+ *
* @param selectable a selectable
* @param isWanted should be installed or not
- * @param kind "package" or "pattern"
- * @return void
+ * @param kind "package" or "pattern"
+ * @return void
**/
void importSelectable ( ZyppSel selectable, bool isWanted, const char* kind );
-
+
/**
* Returns whether automatic dependency is on or off
- * @return bool
- */
+ * @return bool
+ */
bool autoChecking() { return autoCheck; }
/**
@@ -403,14 +403,44 @@
* @param oneline true: create one line, items seperated by comma; false: every string is a line
* @return string The text
*/
- string createText( list<string> info, bool oneline );
+ template <class InputIterator>
+ std::string createText( InputIterator begin, InputIterator end, bool oneline )
+ {
+ string text = "";
+ unsigned int i;
+ InputIterator it;
+
+ for ( i = 0, it = begin; it != end && i < 1000; ++it, i++ )
+ {
+ text += (*it);
+ InputIterator next(it);
+ if ( ++next == end )
+ {
+ if ( oneline && i < 999 )
+ {
+ text += ", ";
+ }
+ else
+ {
+ text += "<br>";
+ }
+ }
+ if ( i == 999 )
+ {
+ text += "...";
+ }
+ }
+
+ return text;
+ }
+
/**
* Creates a text from a list of strings which may contain HTML tags
* @param t used to be list, now a single string. but what does it contain?
* @return string The text
*/
- string createDescrText( zypp::Text t );
+ string createDescrText( const string & t );
/**
* Used for package search
@@ -422,12 +452,12 @@
/**
* Calls the package mananager (updateDu()) and shows the required disk space
- */
+ */
void showDiskSpace();
/**
* Shows the total download size
- */
+ */
void showDownloadSize();
/**
@@ -446,9 +476,9 @@
/**
* Show popup with license.
* @return bool
- */
+ */
bool showLicenseAgreement( ZyppSel & slbPtr , string licenseText );
-
+
void createFilterMenu();
/**
@@ -456,7 +486,7 @@
* (usually via 'verify system' call)
* @return std::set <string>
*/
- set <string> getVerifiedPkgs()
+ set <string> getVerifiedPkgs()
{
return verified_pkgs;
}
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/YNCursesUI.cc Mon May 23 21:27:16 2011
@@ -26,7 +26,7 @@
#include <YEvent.h>
#include <ycp/y2log.h>
-#include <ycp/Parser.h>
+//#include <ycp/Parser.h>
#include <ycp/YCPString.h>
#include <ycp/YCPVoid.h>
#include <ycp/YCPMap.h>
@@ -87,11 +87,11 @@
setenv( "LC_CTYPE", locale.c_str(), 1 );
NCMIL << "setenv LC_CTYPE: " << locale << " encoding: " << encoding << endl;
-
+
// The encoding of a terminal (xterm, konsole usw. ) can never change; the encoding
- // of "real" console is changed in setConsoleFont().
+ // of "real" console is changed in setConsoleFont().
NCstring::setTerminalEncoding( encoding );
-
+
setLanguage( language );
}
@@ -106,7 +106,7 @@
if ( macro_file )
playMacro( macro_file );
-
+
topmostConstructorHasFinished();
}
@@ -201,19 +201,19 @@
{
// Note: libyui assumes ownership of YEvents, so they need to be
// created on the heap with 'new'. libyui takes care of deleting them.
-
+
case button:
if ( widget->isValid() )
return new YWidgetEvent( dynamic_cast<YWidget *> (widget), reason );
else
return 0;
-
+
case menu:
return new YMenuEvent( selection );
-
+
case cancel:
return new YCancelEvent();
-
+
case timeout:
return new YTimeoutEvent();
@@ -222,17 +222,17 @@
return new YKeyEvent( keySymbol, dynamic_cast<YWidget *> (widget) );
else
return 0;
-
+
case none:
case handled:
return 0;
// Intentionally omitting 'default' branch so the compiler can
- // detect unhandled enums
+ // detect unhandled enums
}
// If we get this far, there must be an error.
-
+
UIINT << "Can't propagate through (EventType*)0" << endl;
UIDBG << *this << endl;
return 0;
@@ -263,7 +263,7 @@
YEvent * yevent = cevent.propagate();
UIDBG << "Returning event: " << ( yevent ? yevent->ycpEvent()->toString().c_str() : "(nil)" ) << endl;
-
+
return yevent;
}
@@ -755,7 +755,7 @@
Refresh();
NCDBG << "Language: " << language << " Encoding: " << ((encoding!="")?encoding:"NOT SET") << endl;
-
+
return true;
}
@@ -792,9 +792,9 @@
//
int YNCursesUI::runInTerminal( const YCPString & module )
-{
+{
int ret;
- string cmd = module->value();
+ string cmd = module->value();
//Save tty modes and end ncurses mode temporarily
::def_prog_mode();
@@ -891,13 +891,13 @@
string code = language2encoding( language );
NCMIL << "setConsoleFont( ENCODING: " << code << " )" << endl;
-
+
if ( NCstring::setTerminalEncoding( code ) )
{
Redraw();
}
else
- {
+ {
Refresh();
}
}
@@ -997,7 +997,7 @@
const YCPString & headline )
{
NCAskForSaveFileName filePopup( wpos( 1, 1 ), startDir, filter, headline );
-
+
NCursesEvent retEvent = filePopup.showDirPopup( );
if ( !retEvent.result.isNull() )
@@ -1006,7 +1006,7 @@
return retEvent.result;
}
else
- return YCPVoid(); // nothing selected -> return 'nil'
+ return YCPVoid(); // nothing selected -> return 'nil'
}
///////////////////////////////////////////////////////////////////
@@ -1022,7 +1022,7 @@
const YCPString & headline )
{
NCAskForExistingFile filePopup( wpos( 1, 1 ), startDir, filter, headline );
-
+
NCursesEvent retEvent = filePopup.showDirPopup( );
if ( !retEvent.result.isNull() )
@@ -1031,7 +1031,7 @@
return retEvent.result;
}
else
- return YCPVoid(); // nothing selected -> return 'nil'
+ return YCPVoid(); // nothing selected -> return 'nil'
}
///////////////////////////////////////////////////////////////////
@@ -1046,7 +1046,7 @@
const YCPString & headline )
{
NCAskForExistingDirectory dirPopup( wpos( 1, 1 ), startDir, headline );
-
+
NCursesEvent retEvent = dirPopup.showDirPopup( );
if ( !retEvent.result.isNull() )
Modified: branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/dmacvicar/zc10/ncurses/sr…
==============================================================================
--- branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h (original)
+++ branches/tmp/dmacvicar/zc10/ncurses/src/YQZypp.h Mon May 23 21:27:16 2011
@@ -10,40 +10,39 @@
| (C) SuSE GmbH |
\----------------------------------------------------------------------/
- File: YQZypp.h
+ File: NCZypp.h
Author: Stefan Hundhammer <sh(a)suse.de>
/-*/
-// -*- c++ -*-
-
-#ifndef YQZypp_h
-#define YQZypp_h
+#ifndef Yqzypp_h
+#define Yqzypp_h
#include <set>
#include <zypp/ui/Status.h>
#include <zypp/ui/Selectable.h>
#include <zypp/ResObject.h>
#include <zypp/Package.h>
-#include <zypp/Selection.h>
#include <zypp/Pattern.h>
-#include <zypp/Language.h>
+#include <zypp/Product.h>
+//#include <zypp/Language.h>
#include <zypp/Patch.h>
#include <zypp/ZYppFactory.h>
#include <zypp/ResPoolProxy.h>
+#include <zypp/PoolQuery.h>
-using zypp::ui::S_Protected;
-using zypp::ui::S_Taboo;
-using zypp::ui::S_Del;
-using zypp::ui::S_Update;
-using zypp::ui::S_Install;
-using zypp::ui::S_AutoDel;
-using zypp::ui::S_AutoUpdate;
-using zypp::ui::S_AutoInstall;
-using zypp::ui::S_KeepInstalled;
-using zypp::ui::S_NoInst;
+using zypp::ui::S_Protected;
+using zypp::ui::S_Taboo;
+using zypp::ui::S_Del;
+using zypp::ui::S_Update;
+using zypp::ui::S_Install;
+using zypp::ui::S_AutoDel;
+using zypp::ui::S_AutoUpdate;
+using zypp::ui::S_AutoInstall;
+using zypp::ui::S_KeepInstalled;
+using zypp::ui::S_NoInst;
//
@@ -54,13 +53,15 @@
typedef zypp::ui::Selectable::Ptr ZyppSel;
typedef zypp::ResObject::constPtr ZyppObj;
typedef zypp::Package::constPtr ZyppPkg;
-typedef zypp::Selection::constPtr ZyppSelection;
typedef zypp::Pattern::constPtr ZyppPattern;
-typedef zypp::Language::constPtr ZyppLang;
+//typedef zypp::Language::constPtr ZyppLang;
typedef zypp::Patch::constPtr ZyppPatch;
+typedef zypp::Product::constPtr ZyppProduct;
+typedef zypp::Repository ZyppRepo;
typedef zypp::ResPoolProxy ZyppPool;
typedef zypp::ResPoolProxy::const_iterator ZyppPoolIterator;
+typedef zypp::ResPoolProxy::repository_iterator ZyppRepositoryIterator;
inline ZyppPool zyppPool() { return zypp::getZYpp()->poolProxy(); }
@@ -71,46 +72,49 @@
inline ZyppPoolIterator zyppPkgBegin() { return zyppBegin<zypp::Package>(); }
inline ZyppPoolIterator zyppPkgEnd() { return zyppEnd<zypp::Package>(); }
-inline ZyppPoolIterator zyppSelectionsBegin() { return zyppBegin<zypp::Selection>(); }
-inline ZyppPoolIterator zyppSelectionsEnd() { return zyppEnd<zypp::Selection>(); }
-
inline ZyppPoolIterator zyppPatternsBegin() { return zyppBegin<zypp::Pattern>(); }
inline ZyppPoolIterator zyppPatternsEnd() { return zyppEnd<zypp::Pattern>(); }
-inline ZyppPoolIterator zyppLangBegin() { return zyppBegin<zypp::Language>(); }
-inline ZyppPoolIterator zyppLangEnd() { return zyppEnd<zypp::Language>(); }
+//inline ZyppPoolIterator zyppLangBegin() { return zyppBegin<zypp::Language>(); }
+//inline ZyppPoolIterator zyppLangEnd() { return zyppEnd<zypp::Language>(); }
inline ZyppPoolIterator zyppPatchesBegin() { return zyppBegin<zypp::Patch>(); }
inline ZyppPoolIterator zyppPatchesEnd() { return zyppEnd<zypp::Patch>(); }
+inline ZyppPoolIterator zyppProductsBegin() { return zyppBegin<zypp::Product>(); }
+inline ZyppPoolIterator zyppProductsEnd() { return zyppEnd<zypp::Product>(); }
+
+inline ZyppRepositoryIterator ZyppRepositoriesBegin() { return zyppPool().knownRepositoriesBegin(); }
+inline ZyppRepositoryIterator ZyppRepositoriesEnd() { return zyppPool().knownRepositoriesEnd(); }
+
inline ZyppPkg tryCastToZyppPkg( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Package>( zyppObj );
}
-inline ZyppSelection tryCastToZyppSelection( ZyppObj zyppObj )
-{
- return zypp::dynamic_pointer_cast<const zypp::Selection>( zyppObj );
-}
-
inline ZyppPattern tryCastToZyppPattern( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Pattern>( zyppObj );
}
+#if 0
inline ZyppLang tryCastToZyppLang( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Language>( zyppObj );
}
-
+#endif
inline ZyppPatch tryCastToZyppPatch( ZyppObj zyppObj )
{
return zypp::dynamic_pointer_cast<const zypp::Patch>( zyppObj );
}
+inline ZyppProduct tryCastToZyppProduct( ZyppObj zyppObj )
+{
+ return zypp::dynamic_pointer_cast<const zypp::Product>( zyppObj );
+}
-template<typename T> bool contains( const std::set<T> & container, T search )
+template<typename T> bool inContainer( const std::set<T> & container, T search )
{
return container.find( search ) != container.end();
}
@@ -121,5 +125,8 @@
return binary_search( sorted_vector.begin(), sorted_vector.end(), search);
}
-
-#endif // YQZypp_h
+inline bool sortByName( ZyppSel ptr1, ZyppSel ptr2 )
+{
+ return( ptr1->name() < ptr2->name() );
+}
+#endif // Yqzypp_h
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0

[yast-commit] r64089 - /branches/SuSE-Code-11-SP2-Branch/apparmor/
by jreidinger@svn2.opensuse.org 23 May '11
by jreidinger@svn2.opensuse.org 23 May '11
23 May '11
Author: jreidinger
Date: Mon May 23 16:39:24 2011
New Revision: 64089
URL: http://svn.opensuse.org/viewcvs/yast?rev=64089&view=rev
Log:
create separate package for SP2 for apparmor features
Added:
branches/SuSE-Code-11-SP2-Branch/apparmor/ (props changed)
- copied from r64088, branches/SuSE-Code-11-SP1-Branch/apparmor/
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0

[yast-commit] r64088 - /branches/SuSE-Code-11-SP1-Branch/control-center/src/
by tgoettlicher@svn2.opensuse.org 23 May '11
by tgoettlicher@svn2.opensuse.org 23 May '11
23 May '11
Author: tgoettlicher
Date: Mon May 23 15:58:18 2011
New Revision: 64088
URL: http://svn.opensuse.org/viewcvs/yast?rev=64088&view=rev
Log:
backported trunk to sp2
Added:
branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt
branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop
branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp
branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h
Modified:
branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop
branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/CMakeLists.txt Mon May 23 15:58:18 2011
@@ -0,0 +1,86 @@
+INCLUDE(${QT_USE_FILE})
+
+INCLUDE_DIRECTORIES(/usr/include/initng ${CMAKE_CURRENT_BINARY_DIR})
+
+SET(THEMEDIR "/usr/share/YaST2/theme")
+
+ADD_DEFINITIONS(-DQT_NO_DEBUG_OUTPUT)
+ADD_DEFINITIONS("-DLOCALEDIR=\"${CMAKE_INSTALL_PREFIX}/share/YaST2/locale\"")
+ADD_DEFINITIONS("-DICON_DIR=\"${THEMEDIR}/current/icons/32x32/apps\"")
+ADD_DEFINITIONS("-DFALLBACK_ICON_DIR=\"${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/32x32/apps\"")
+ADD_DEFINITIONS("-DPIXMAP_DIR=\"${THEMEDIR}/current/icons/32x32/apps\"")
+ADD_DEFINITIONS("-DDESKTOP_TRANSLATIONS_DIR=\"${CMAKE_INSTALL_PREFIX}/share/locale\"")
+ADD_DEFINITIONS("-DMODULES_DESKTOP_DIR=\"${CMAKE_INSTALL_PREFIX}/share/applications/YaST2\"")
+ADD_DEFINITIONS("-DGROUPS_DESKTOP_DIR=\"${CMAKE_INSTALL_PREFIX}/share/applications/YaST2/groups\"")
+
+SET(yast2-control-center_SRCS
+ main.cpp
+ main_window.cpp
+ kcategorizedview.cpp
+ kcategorydrawer.cpp
+ kcategorizedsortfilterproxymodel.cpp
+ moduleiconitem.cpp
+ yccmoduleinfoprovider.cpp
+ yqdesktopfilesmodel.cpp
+ yqmodulegroupsmodel.cpp
+ yqmodulesmodel.cpp
+ yqmodulesproxymodel.cpp
+ yqsavelogs.cpp
+ i18n.cpp
+)
+
+#SET(yast2-control-center_UIS
+# main_window.ui
+#)
+
+SET(yast2-control-center_HDRS
+ main_window.h
+ kcategorizedview.h
+ kcategorydrawer.h
+ kcategorizedsortfilterproxymodel.h
+ moduleiconitem.h
+ kcategorizedview_p.h
+ yccmoduleinfoprovider.h
+ yqdesktopfilesmodel.h
+ yqmodulegroupsmodel.h
+ yqmodulesmodel.h
+ yqmodulesproxymodel.h
+ listview.h
+ yqsavelogs.h
+ i18n.h
+)
+
+#SET(yast2-control-center_RCCS ../files.qrc)
+
+
+QT4_AUTOMOC(${yast2-control-center_SRCS})
+# QT4_WRAP_UI(yast2-control-center_UIS_H ${yast2-control-center_UIS})
+QT4_WRAP_CPP(yast2-control-center_MOC ${yast2-control-center_UIS_H})
+QT4_ADD_RESOURCES(yast2-control-center_RCC_SRCS ${yast2-control-center_RCCS})
+
+
+
+ADD_EXECUTABLE(y2controlcenter ${yast2-control-center_SRCS} ${yast2-control-center_MOC} ${yast2-control-center_RCC_SRCS})
+TARGET_LINK_LIBRARIES(y2controlcenter ${QT_LIBRARIES})
+INSTALL(TARGETS y2controlcenter DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/YaST2/bin)
+
+INSTALL(FILES yast.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps )
+INSTALL(FILES YaST.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications )
+INSTALL(FILES YaST-systemsettings.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/kde4/services )
+
+SET(MODELS_TEST_SRCS
+ models_test.cpp
+ yqdesktopfilesmodel.cpp
+ yqmodulegroupsmodel.cpp
+ yccmoduleinfoprovider.cpp
+ yqmodulesmodel.cpp )
+
+
+QT4_AUTOMOC(${MODELS_TEST_SRCS})
+ADD_EXECUTABLE(models_test ${MODELS_TEST_SRCS})
+TARGET_LINK_LIBRARIES(models_test ${QT_QTCORE_LIBRARIES} ${QT_QTGUI_LIBRARIES})
+
+FIND_PACKAGE(KDE4)
+IF ( KDE4_FOUND )
+ ADD_SUBDIRECTORY(kde)
+ENDIF ( KDE4_FOUND )
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST-systemsettings.desktop Mon May 23 15:58:18 2011
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Service
+Name=YaST
+Icon=yast
+GenericName=Administrator Settings
+Exec=kdesu -c /sbin/yast2
+X-KDE-RootOnly=true
+X-KDE-System-Settings-Parent-Category=system-administration
+X-KDE-ServiceTypes=SystemSettingsExternalApp
Modified: branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop (original)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/YaST.desktop Mon May 23 15:58:18 2011
@@ -4,8 +4,5 @@
Name=YaST
Icon=yast
GenericName=Control Center
-Exec=/sbin/yast2
-OnlyShowIn=KDE;GNOME;
-X-KDE-SubstituteUID=true
-X-KDE-RootOnly=true
+Exec=/usr/bin/xdg-su -c /sbin/yast2
Encoding=UTF-8
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,10 @@
+
+#include "i18n.h"
+
+void
+set_textdomain (const char* domain)
+{
+ bindtextdomain (domain, LOCALEDIR);
+ textdomain (domain);
+ bind_textdomain_codeset (domain, "UTF-8");
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/i18n.h Mon May 23 15:58:18 2011
@@ -0,0 +1,22 @@
+#ifndef MYINTL_H
+#define MYINTL_H
+
+
+#include <libintl.h>
+#include <qstring.h>
+
+
+inline QString _(const char* msgid)
+{
+ return QString::fromUtf8 (gettext(msgid));
+}
+
+inline QString _(const char* msgid1, const char* msgid2, unsigned long int n)
+{
+ return QString::fromUtf8 (ngettext (msgid1, msgid2, n));
+}
+
+void set_textdomain (const char* domain);
+
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,349 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ * Copyright (C) 2007 John Tapsell <tapsell(a)kde.org>
+ * Copyright (C) 2006 by Dominic Battre <dominic(a)battre.de>
+ * Copyright (C) 2006 by Martin Pool <mbp(a)canonical.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kcategorizedsortfilterproxymodel.h"
+#include "yqdesktopfilesmodel.h"
+#include "kcategorizedsortfilterproxymodel_p.h"
+
+#include <limits.h>
+#include <iostream>
+
+#include <QItemSelection>
+#include <QStringList>
+#include <QSize>
+#include <QDebug>
+
+KCategorizedSortFilterProxyModel::KCategorizedSortFilterProxyModel(QObject *parent)
+ : QSortFilterProxyModel(parent)
+ , d(new Private())
+
+{
+ setFilterCaseSensitivity( Qt::CaseInsensitive );
+}
+
+KCategorizedSortFilterProxyModel::~KCategorizedSortFilterProxyModel()
+{
+ delete d;
+}
+
+void KCategorizedSortFilterProxyModel::sort(int column, Qt::SortOrder order)
+{
+ d->sortColumn = column;
+ d->sortOrder = order;
+
+ QSortFilterProxyModel::sort(column, order);
+}
+
+bool KCategorizedSortFilterProxyModel::isCategorizedModel() const
+{
+ return d->categorizedModel;
+}
+
+void KCategorizedSortFilterProxyModel::setCategorizedModel(bool categorizedModel)
+{
+ if (categorizedModel == d->categorizedModel)
+ {
+ return;
+ }
+
+ d->categorizedModel = categorizedModel;
+
+ invalidate();
+}
+
+int KCategorizedSortFilterProxyModel::sortColumn() const
+{
+ return d->sortColumn;
+}
+
+Qt::SortOrder KCategorizedSortFilterProxyModel::sortOrder() const
+{
+ return d->sortOrder;
+}
+
+void KCategorizedSortFilterProxyModel::setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison)
+{
+ if (sortCategoriesByNaturalComparison == d->sortCategoriesByNaturalComparison)
+ {
+ return;
+ }
+
+ d->sortCategoriesByNaturalComparison = sortCategoriesByNaturalComparison;
+
+ invalidate();
+}
+
+bool KCategorizedSortFilterProxyModel::sortCategoriesByNaturalComparison() const
+{
+ return d->sortCategoriesByNaturalComparison;
+}
+
+int KCategorizedSortFilterProxyModel::naturalCompare(const QString &a,
+ const QString &b)
+{
+ // This method chops the input a and b into pieces of
+ // digits and non-digits (a1.05 becomes a | 1 | . | 05)
+ // and compares these pieces of a and b to each other
+ // (first with first, second with second, ...).
+ //
+ // This is based on the natural sort order code code by Martin Pool
+ // http://sourcefrog.net/projects/natsort/
+ // Martin Pool agreed to license this under LGPL or GPL.
+
+ const QChar* currA = a.unicode(); // iterator over a
+ const QChar* currB = b.unicode(); // iterator over b
+
+ if (currA == currB) {
+ return 0;
+ }
+
+ const QChar* begSeqA = currA; // beginning of a new character sequence of a
+ const QChar* begSeqB = currB;
+
+ while (!currA->isNull() && !currB->isNull()) {
+ if (currA->unicode() == QChar::ObjectReplacementCharacter) {
+ return 1;
+ }
+
+ if (currB->unicode() == QChar::ObjectReplacementCharacter) {
+ return -1;
+ }
+
+ if (currA->unicode() == QChar::ReplacementCharacter) {
+ return 1;
+ }
+
+ if (currB->unicode() == QChar::ReplacementCharacter) {
+ return -1;
+ }
+
+ // find sequence of characters ending at the first non-character
+ while (!currA->isNull() && !currA->isDigit()) {
+ ++currA;
+ }
+
+ while (!currB->isNull() && !currB->isDigit()) {
+ ++currB;
+ }
+
+ // compare these sequences
+ const QString subA(begSeqA, currA - begSeqA);
+ const QString subB(begSeqB, currB - begSeqB);
+ const int cmp = QString::localeAwareCompare(subA, subB);
+ if (cmp != 0) {
+ return cmp;
+ }
+
+ if (currA->isNull() || currB->isNull()) {
+ break;
+ }
+
+ // now some digits follow...
+ if ((*currA == '0') || (*currB == '0')) {
+ // one digit-sequence starts with 0 -> assume we are in a fraction part
+ // do left aligned comparison (numbers are considered left aligned)
+ while (1) {
+ if (!currA->isDigit() && !currB->isDigit()) {
+ break;
+ } else if (!currA->isDigit()) {
+ return -1;
+ } else if (!currB->isDigit()) {
+ return + 1;
+ } else if (*currA < *currB) {
+ return -1;
+ } else if (*currA > *currB) {
+ return + 1;
+ }
+ ++currA;
+ ++currB;
+ }
+ } else {
+ // No digit-sequence starts with 0 -> assume we are looking at some integer
+ // do right aligned comparison.
+ //
+ // The longest run of digits wins. That aside, the greatest
+ // value wins, but we can't know that it will until we've scanned
+ // both numbers to know that they have the same magnitude.
+
+ int weight = 0;
+ while (1) {
+ if (!currA->isDigit() && !currB->isDigit()) {
+ if (weight != 0) {
+ return weight;
+ }
+ break;
+ } else if (!currA->isDigit()) {
+ return -1;
+ } else if (!currB->isDigit()) {
+ return + 1;
+ } else if ((*currA < *currB) && (weight == 0)) {
+ weight = -1;
+ } else if ((*currA > *currB) && (weight == 0)) {
+ weight = + 1;
+ }
+ ++currA;
+ ++currB;
+ }
+ }
+
+ begSeqA = currA;
+ begSeqB = currB;
+ }
+
+ if (currA->isNull() && currB->isNull()) {
+ return 0;
+ }
+
+ return currA->isNull() ? -1 : + 1;
+}
+
+bool KCategorizedSortFilterProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ if (d->categorizedModel)
+ {
+ int compare = compareCategories(left, right);
+
+ if (compare > 0) // left is greater than right
+ {
+ return false;
+ }
+ else if (compare < 0) // left is less than right
+ {
+ return true;
+ }
+ }
+
+ return subSortLessThan(left, right);
+}
+
+bool KCategorizedSortFilterProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ QModelIndex i1 = createIndex(left.row(), YQDesktopFilesModel::Name);
+ QModelIndex i2 = createIndex(right.row(), YQDesktopFilesModel::Name);
+
+ QVariant l = (left.model() ? left.model()->data(i1, Qt::UserRole) : QVariant());
+ QVariant r = (right.model() ? right.model()->data(i2, Qt::UserRole) : QVariant());
+
+ return l.toString() < r.toString();
+}
+
+int KCategorizedSortFilterProxyModel::compareCategories(const QModelIndex &left, const QModelIndex &right) const
+{
+ QVariant l = (left.model() ? left.model()->data(left, CategorySortRole) : QVariant());
+ QVariant r = (right.model() ? right.model()->data(right, CategorySortRole) : QVariant());
+
+ QVariant s1 = (left.model() ? left.model()->data( left, CategoryDisplayRole ) : QVariant());
+ QVariant s2 = (right.model() ? right.model()->data( right, CategoryDisplayRole ) : QVariant());
+
+ Q_ASSERT(l.isValid());
+ Q_ASSERT(r.isValid());
+ Q_ASSERT(s1.isValid());
+ Q_ASSERT(s2.isValid());
+ Q_ASSERT(l.type() == r.type());
+ Q_ASSERT(s1.type() == s2.type());
+
+ qlonglong lint = l.toLongLong();
+ qlonglong rint = r.toLongLong();
+
+ if (lint < rint)
+ {
+ return -1;
+ }
+
+ if (lint > rint)
+ {
+ return 1;
+ }
+
+ if (lint == rint)
+ {
+
+ QString lstr = s1.toString();
+ QString rstr = s2.toString();
+
+ if (d->sortCategoriesByNaturalComparison)
+ {
+ return naturalCompare(lstr, rstr);
+ }
+ else
+ {
+ if (lstr < rstr)
+ {
+ return -1;
+ }
+
+ if (lstr > rstr)
+ {
+ return 1;
+ }
+
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+bool KCategorizedSortFilterProxyModel::filterAcceptsRow( int row, const QModelIndex &srcindex ) const
+{
+ QModelIndex i0 = sourceModel()->index( row, YQDesktopFilesModel::Group, srcindex);
+ QModelIndex i1 = sourceModel()->index( row, 0, srcindex);
+ QStringList keywordList = sourceModel()->data( i1, KeywordsRole ).toStringList();
+ QString keywords = keywordList.join(" ");
+
+ bool nameMatches = QSortFilterProxyModel::filterAcceptsRow( row, srcindex );
+ bool keywordMatches = ( !keywords.isEmpty() && keywords.contains( filterFixedString()) );
+
+ if( nameMatches || keywordMatches )
+ {
+ QString gr = sourceModel()->data(i0, Qt::UserRole).toString();
+ d->filterGroups.insert( gr );
+ }
+
+ return ( nameMatches || keywordMatches );
+}
+
+void KCategorizedSortFilterProxyModel::customFilterFunction( const QString &s )
+{
+ d->filterGroups.clear();
+ setFilterFixedString( s );
+ d->filterString = s;
+ invalidateFilter();
+ invalidate();
+}
+
+QString KCategorizedSortFilterProxyModel::matchingGroupFilterRegexp()
+{
+ QStringList slist = d->filterGroups.toList();
+
+ if ( !slist.isEmpty() )
+ return slist.join("|");
+ else
+ // dumb constant, make sure nothing matches if the list of matching groups is empty
+ return QString("zzzz");
+}
+
+QString KCategorizedSortFilterProxyModel::filterFixedString() const
+{
+ return d->filterString;
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,195 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ * Copyright (C) 2007 John Tapsell <tapsell(a)kde.org>
+ * Copyright (C) 2006 by Dominic Battre <dominic(a)battre.de>
+ * Copyright (C) 2006 by Martin Pool <mbp(a)canonical.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_H
+#define KCATEGORIZEDSORTFILTERPROXYMODEL_H
+
+#include <QtGui/QSortFilterProxyModel>
+
+//#include "kdeui_export.h"
+
+class QItemSelection;
+
+
+/**
+ * This class lets you categorize a view. It is meant to be used along with
+ * KCategorizedView class.
+ *
+ * In general terms all you need to do is to reimplement subSortLessThan() and
+ * compareCategories() methods. In order to make categorization work, you need
+ * to also call setCategorizedModel() class to enable it, since the categorization
+ * is disabled by default.
+ *
+ * @see KCategorizedView
+ *
+ * @author Rafael Fernández López <ereslibre(a)kde.org>
+ */
+//class KDEUI_EXPORT KCategorizedSortFilterProxyModel
+class KCategorizedSortFilterProxyModel
+ : public QSortFilterProxyModel
+{
+public:
+ enum AdditionalRoles {
+ // Note: use printf "0x%08X\n" $(($RANDOM*$RANDOM))
+ // to define additional roles.
+ CategoryDisplayRole = 0x17CE990A, ///< This role is used for asking the category to a given index
+
+ CategorySortRole = 0x27857E60, ///< This role is used for sorting categories. You can return a
+ ///< string or a long long value. Strings will be sorted alphabetically
+ ///< while long long will be sorted by their value. Please note that this
+ ///< value won't be shown on the view, is only for sorting purposes. What will
+ ///< be shown as "Category" on the view will be asked with the role
+ ///< CategoryDisplayRole.
+
+ KeywordsRole = 0x09B2C2AA
+ };
+
+ KCategorizedSortFilterProxyModel(QObject *parent = 0);
+ virtual ~KCategorizedSortFilterProxyModel();
+
+ /**
+ * Overridden from QSortFilterProxyModel. Sorts the source model using
+ * @p column for the given @p order.
+ */
+ virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+
+ /**
+ * @return whether the model is categorized or not. Disabled by default.
+ */
+ bool isCategorizedModel() const;
+
+ /**
+ * Enables or disables the categorization feature.
+ *
+ * @param categorizedModel whether to enable or disable the categorization feature.
+ */
+ void setCategorizedModel(bool categorizedModel);
+
+ /**
+ * @return the column being used for sorting.
+ */
+ int sortColumn() const;
+
+ /**
+ * @return the sort order being used for sorting.
+ */
+ Qt::SortOrder sortOrder() const;
+
+ /**
+ * Set if the sorting using CategorySortRole will use a natural comparison
+ * in the case that strings were returned. If enabled, QString::localeAwareCompare
+ * will be used for sorting.
+ *
+ * @param sortCategoriesByNaturalComparison whether to sort using a natural comparison or not.
+ */
+ void setSortCategoriesByNaturalComparison(bool sortCategoriesByNaturalComparison);
+
+ /**
+ * @return whether it is being used a natural comparison for sorting. Enabled by default.
+ */
+ bool sortCategoriesByNaturalComparison() const;
+
+ /**
+ * Does a natural comparing of the strings. -1 is returned if \a a
+ * is smaller than \a b. +1 is returned if \a a is greater than \a b. 0
+ * is returned if both values are equal.
+ */
+ static int naturalCompare(const QString &a, const QString &b);
+
+ void customFilterFunction( const QString &s );
+
+ QString matchingGroupFilterRegexp();
+
+ QString filterFixedString() const;
+
+protected:
+ /**
+ * Overridden from QSortFilterProxyModel. If you are subclassing
+ * KCategorizedSortFilterProxyModel, you will probably not need to reimplement this
+ * method.
+ *
+ * It calls compareCategories() to sort by category. If the both items are in the
+ * same category (i.e. compareCategories returns 0), then subSortLessThan is called.
+ *
+ * @return Returns true if the item @p left is less than the item @p right when sorting.
+ *
+ * @warning You usually won't need to reimplement this method when subclassing
+ * from KCategorizedSortFilterProxyModel.
+ */
+ virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
+
+ /**
+ * This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
+ * It is used for sorting items that are in the same category.
+ *
+ * @return Returns true if the item @p left is less than the item @p right when sorting.
+ */
+ virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
+
+ /**
+ * This method compares the category of the @p left index with the category
+ * of the @p right index.
+ *
+ * Internally and if not reimplemented, this method will ask for @p left and
+ * @p right models for role CategorySortRole. In order to correctly sort
+ * categories, the data() metod of the model should return a qlonglong (or numeric) value, or
+ * a QString object. QString objects will be sorted with QString::localeAwareCompare if
+ * sortCategoriesByNaturalComparison() is true.
+ *
+ * @note Please have present that:
+ * QString(QChar(QChar::ObjectReplacementCharacter)) >
+ * QString(QChar(QChar::ReplacementCharacter)) >
+ * [ all possible strings ] >
+ * QString();
+ *
+ * This means that QString() will be sorted the first one, while
+ * QString(QChar(QChar::ObjectReplacementCharacter)) and
+ * QString(QChar(QChar::ReplacementCharacter)) will be sorted in last
+ * position.
+ *
+ * @warning Please note that data() method of the model should return always
+ * information of the same type. If you return a QString for an index,
+ * you should return always QStrings for all indexes for role CategorySortRole
+ * in order to correctly sort categories. You can't mix by returning
+ * a QString for one index, and a qlonglong for other.
+ *
+ * @note If you need a more complex layout, you will have to reimplement this
+ * method.
+ *
+ * @return A negative value if the category of @p left should be placed before the
+ * category of @p right. 0 if @p left and @p right are on the same category, and
+ * a positive value if the category of @p left should be placed after the
+ * category of @p right.
+ */
+ virtual int compareCategories(const QModelIndex &left, const QModelIndex &right) const;
+
+ virtual bool filterAcceptsRow( int row, const QModelIndex &index ) const;
+
+private:
+ class Private;
+ Private *const d;
+
+};
+
+
+#endif // KCATEGORIZEDSORTFILTERPROXYMODEL_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedsortfilterproxymodel_p.h Mon May 23 15:58:18 2011
@@ -0,0 +1,53 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ * Copyright (C) 2007 John Tapsell <tapsell(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDSORTFILTERPROXYMODEL_P_H
+#define KCATEGORIZEDSORTFILTERPROXYMODEL_P_H
+
+#include <QSet>
+
+class KCategorizedSortFilterProxyModel;
+
+class KCategorizedSortFilterProxyModel::Private
+{
+public:
+ Private()
+ : sortColumn(0)
+ , sortOrder(Qt::AscendingOrder)
+ , categorizedModel(false)
+ , sortCategoriesByNaturalComparison(true)
+ {
+ }
+
+ ~Private()
+ {
+ }
+
+ int sortColumn;
+ Qt::SortOrder sortOrder;
+ bool categorizedModel;
+ bool sortCategoriesByNaturalComparison;
+
+ QSet<QString> filterGroups;
+ QString filterString;
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,1552 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kcategorizedview.h"
+#include "kcategorizedview_p.h"
+
+#include <math.h> // trunc on C99 compliant systems
+
+#include <QPainter>
+#include <QScrollBar>
+#include <QPaintEvent>
+#include <QDebug>
+#include <iostream>
+
+
+#include "kcategorydrawer.h"
+#include "kcategorizedsortfilterproxymodel.h"
+
+// By defining DOLPHIN_DRAGANDDROP the custom drag and drop implementation of
+// KCategorizedView is bypassed to have a consistent drag and drop look for all
+// views. Hopefully transparent pixmaps for drag objects will be supported in
+// Qt 4.4, so that this workaround can be skipped.
+#define DOLPHIN_DRAGANDDROP
+
+KCategorizedView::Private::Private(KCategorizedView *listView)
+ : listView(listView)
+ , categoryDrawer(0)
+ , biggestItemSize(QSize(0, 0))
+ , mouseButtonPressed(false)
+ , rightMouseButtonPressed(false)
+ , isDragging(false)
+ , dragLeftViewport(false)
+ , proxyModel(0)
+{
+}
+
+KCategorizedView::Private::~Private()
+{
+}
+
+const QModelIndexList &KCategorizedView::Private::intersectionSet(const QRect &rect)
+{
+ QModelIndex index;
+ QRect indexVisualRect;
+
+ intersectedIndexes.clear();
+
+ int itemHeight;
+
+ if (listView->gridSize().isEmpty())
+ {
+ itemHeight = biggestItemSize.height();
+ }
+ else
+ {
+ itemHeight = listView->gridSize().height();
+ }
+
+ // Lets find out where we should start
+ int top = proxyModel->rowCount() - 1;
+ int bottom = 0;
+ int middle = (top + bottom) / 2;
+ while (bottom <= top)
+ {
+ middle = (top + bottom) / 2;
+
+ index = proxyModel->index(middle, 0);
+ indexVisualRect = visualRect(index);
+ // We need the whole height (not only the visualRect). This will help us to update
+ // all needed indexes correctly (ereslibre)
+ indexVisualRect.setHeight(indexVisualRect.height() + (itemHeight - indexVisualRect.height()));
+
+ if (qMax(indexVisualRect.topLeft().y(),
+ indexVisualRect.bottomRight().y()) < qMin(rect.topLeft().y(),
+ rect.bottomRight().y()))
+ {
+ bottom = middle + 1;
+ }
+ else
+ {
+ top = middle - 1;
+ }
+ }
+
+ for (int i = middle; i < proxyModel->rowCount(); i++)
+ {
+ index = proxyModel->index(i, 0);
+ indexVisualRect = visualRect(index);
+
+ if (rect.intersects(indexVisualRect))
+ intersectedIndexes.append(index);
+
+ // If we passed next item, stop searching for hits
+ if (qMax(rect.bottomRight().y(), rect.topLeft().y()) <
+ qMin(indexVisualRect.topLeft().y(),
+ indexVisualRect.bottomRight().y()))
+ break;
+ }
+
+ return intersectedIndexes;
+}
+
+QRect KCategorizedView::Private::visualRectInViewport(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return QRect();
+
+ QString curCategory = elementsInfo[index.row()].category;
+
+ QRect retRect;
+ const bool leftToRightFlow = (listView->flow() == QListView::LeftToRight);
+
+ if (leftToRightFlow)
+ {
+ if (listView->layoutDirection() == Qt::LeftToRight)
+ {
+ retRect = QRect(listView->spacing(), listView->spacing() * 2 +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()), 0, 0);
+ }
+ else
+ {
+ retRect = QRect(listView->viewport()->width() - listView->spacing(), listView->spacing() * 2 +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()), 0, 0);
+ }
+ }
+ else
+ {
+ retRect = QRect(listView->spacing(), listView->spacing() * 2 +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()), 0, 0);
+ }
+
+ int viewportWidth = listView->viewport()->width() - listView->spacing();
+
+ int itemHeight;
+ int itemWidth;
+
+ if (listView->gridSize().isEmpty() && leftToRightFlow)
+ {
+ itemHeight = biggestItemSize.height();
+ itemWidth = biggestItemSize.width();
+ }
+ else if (leftToRightFlow)
+ {
+ itemHeight = listView->gridSize().height();
+ itemWidth = listView->gridSize().width();
+ }
+ else if (listView->gridSize().isEmpty() && !leftToRightFlow)
+ {
+ itemHeight = biggestItemSize.height();
+ itemWidth = listView->viewport()->width() - listView->spacing() * 2;
+ }
+ else
+ {
+ itemHeight = listView->gridSize().height();
+ itemWidth = listView->gridSize().width() - listView->spacing() * 2;
+ }
+
+ int itemWidthPlusSeparation = listView->spacing() + itemWidth;
+ if (!itemWidthPlusSeparation)
+ itemWidthPlusSeparation++;
+
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+
+ int column;
+ int row;
+
+ if (leftToRightFlow)
+ {
+ column = elementsInfo[index.row()].relativeOffsetToCategory % elementsPerRow;
+ row = elementsInfo[index.row()].relativeOffsetToCategory / elementsPerRow;
+
+ if (listView->layoutDirection() == Qt::LeftToRight)
+ {
+ retRect.setLeft(retRect.left() + column * listView->spacing() +
+ column * itemWidth);
+ }
+ else
+ {
+ retRect.setLeft(retRect.right() - column * listView->spacing() -
+ column * itemWidth - itemWidth);
+
+ retRect.setRight(retRect.right() - column * listView->spacing() -
+ column * itemWidth);
+ }
+ }
+ else
+ {
+ elementsPerRow = 1;
+ column = elementsInfo[index.row()].relativeOffsetToCategory % elementsPerRow;
+ row = elementsInfo[index.row()].relativeOffsetToCategory / elementsPerRow;
+ }
+
+ foreach (const QString &category, categories)
+ {
+ if (category == curCategory)
+ break;
+
+ float rows = (float) ((float) categoriesIndexes[category].count() /
+ (float) elementsPerRow);
+
+ int rowsInt = categoriesIndexes[category].count() / elementsPerRow;
+
+ if (rows - trunc(rows)) rowsInt++;
+
+ retRect.setTop(retRect.top() +
+ (rowsInt * itemHeight) +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()) +
+ listView->spacing() * 2);
+
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setTop(retRect.top() +
+ (rowsInt * listView->spacing()));
+ }
+ }
+
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setTop(retRect.top() + row * listView->spacing() +
+ (row * itemHeight));
+ }
+ else
+ {
+ retRect.setTop(retRect.top() + (row * itemHeight));
+ }
+
+ retRect.setWidth(itemWidth);
+
+ QModelIndex heightIndex = proxyModel->index(index.row(), 0);
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setHeight(listView->sizeHintForIndex(heightIndex).height());
+ }
+ else
+ {
+ const QSize sizeHint = listView->sizeHintForIndex(heightIndex);
+ if (sizeHint.width() < itemWidth && leftToRightFlow) {
+ retRect.setWidth(sizeHint.width());
+ retRect.moveLeft(retRect.left() + (itemWidth - sizeHint.width()) / 2);
+ }
+ retRect.setHeight(qMin(sizeHint.height(), listView->gridSize().height()));
+ }
+
+ return retRect;
+}
+
+QRect KCategorizedView::Private::visualCategoryRectInViewport(const QString &category) const
+{
+ QRect retRect(listView->spacing(),
+ listView->spacing(),
+ listView->viewport()->width() - listView->spacing() * 2,
+ 0);
+
+ if (!proxyModel || !categoryDrawer || !proxyModel->isCategorizedModel() || !proxyModel->rowCount() || !categories.contains(category))
+ return QRect();
+
+ QModelIndex index = proxyModel->index(0, 0, QModelIndex());
+
+ int viewportWidth = listView->viewport()->width() - listView->spacing();
+
+ int itemHeight;
+ int itemWidth;
+
+ if (listView->gridSize().isEmpty())
+ {
+ itemHeight = biggestItemSize.height();
+ itemWidth = biggestItemSize.width();
+ }
+ else
+ {
+ itemHeight = listView->gridSize().height();
+ itemWidth = listView->gridSize().width();
+ }
+
+ int itemWidthPlusSeparation = listView->spacing() + itemWidth;
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+ if (listView->flow() == QListView::TopToBottom)
+ {
+ elementsPerRow = 1;
+ }
+
+ foreach (const QString &itCategory, categories)
+ {
+ if (itCategory == category)
+ break;
+
+ float rows = (float) ((float) categoriesIndexes[itCategory].count() /
+ (float) elementsPerRow);
+ int rowsInt = categoriesIndexes[itCategory].count() / elementsPerRow;
+
+ if (rows - trunc(rows)) rowsInt++;
+
+ retRect.setTop(retRect.top() +
+ (rowsInt * itemHeight) +
+ categoryDrawer->categoryHeight(index, listView->viewOptions()) +
+ listView->spacing() * 2);
+
+ if (listView->gridSize().isEmpty())
+ {
+ retRect.setTop(retRect.top() +
+ (rowsInt * listView->spacing()));
+ }
+ }
+
+ retRect.setHeight(categoryDrawer->categoryHeight(index, listView->viewOptions()));
+
+ return retRect;
+}
+
+// We're sure elementsPosition doesn't contain index
+const QRect &KCategorizedView::Private::cacheIndex(const QModelIndex &index)
+{
+ QRect rect = visualRectInViewport(index);
+ QHash<int, QRect>::iterator it = elementsPosition.insert(index.row(), rect);
+
+ return *it;
+}
+
+// We're sure categoriesPosition doesn't contain category
+const QRect &KCategorizedView::Private::cacheCategory(const QString &category)
+{
+ QRect rect = visualCategoryRectInViewport(category);
+ QHash<QString, QRect>::iterator it = categoriesPosition.insert(category, rect);
+
+ return *it;
+}
+
+const QRect &KCategorizedView::Private::cachedRectIndex(const QModelIndex &index)
+{
+ QHash<int, QRect>::const_iterator it = elementsPosition.constFind(index.row());
+ if (it != elementsPosition.constEnd()) // If we have it cached
+ { // return it
+ return *it;
+ }
+ else // Otherwise, cache it
+ { // and return it
+ return cacheIndex(index);
+ }
+}
+
+const QRect &KCategorizedView::Private::cachedRectCategory(const QString &category)
+{
+ QHash<QString, QRect>::const_iterator it = categoriesPosition.constFind(category);
+ if (it != categoriesPosition.constEnd()) // If we have it cached
+ { // return it
+ return *it;
+ }
+ else // Otherwise, cache it and
+ { // return it
+ return cacheCategory(category);
+ }
+}
+
+QRect KCategorizedView::Private::visualRect(const QModelIndex &index)
+{
+ QRect retRect = cachedRectIndex(index);
+ int dx = -listView->horizontalOffset();
+ int dy = -listView->verticalOffset();
+ retRect.adjust(dx, dy, dx, dy);
+
+ return retRect;
+}
+
+QRect KCategorizedView::Private::categoryVisualRect(const QString &category)
+{
+ QRect retRect = cachedRectCategory(category);
+ int dx = -listView->horizontalOffset();
+ int dy = -listView->verticalOffset();
+ retRect.adjust(dx, dy, dx, dy);
+
+ return retRect;
+}
+
+void KCategorizedView::Private::drawNewCategory(const QModelIndex &index,
+ int sortRole,
+ const QStyleOption &option,
+ QPainter *painter)
+{
+ if (!index.isValid())
+ {
+ return;
+ }
+
+
+ QStyleOption optionCopy = option;
+ const QString category = proxyModel->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+
+ //optionCopy.state &= ~QStyle::State_Selected;
+
+ if ((listView->selectionMode() != SingleSelection) && (listView->selectionMode() != NoSelection)) {
+ if ((category == hoveredCategory) && !mouseButtonPressed)
+ {
+ optionCopy.state |= QStyle::State_MouseOver;
+ }
+ else if ((category == hoveredCategory) && mouseButtonPressed)
+ {
+ QPoint initialPressPosition = listView->viewport()->mapFromGlobal(QCursor::pos());
+ initialPressPosition.setY(initialPressPosition.y() + listView->verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() + listView->horizontalOffset());
+
+ if (initialPressPosition == this->initialPressPosition)
+ {
+ optionCopy.state |= QStyle::State_Selected;
+ }
+ }
+ }
+
+ categoryDrawer->drawCategory(index,
+ sortRole,
+ optionCopy,
+ painter);
+}
+
+
+void KCategorizedView::Private::updateScrollbars()
+{
+ // find the last index in the last category
+ QModelIndex lastIndex = categoriesIndexes.isEmpty() ? QModelIndex() : categoriesIndexes[categories.last()].last();
+
+ int lastItemBottom = cachedRectIndex(lastIndex).top() +
+ listView->spacing() + (listView->gridSize().isEmpty() ? biggestItemSize.height() : listView->gridSize().height()) - listView->viewport()->height();
+
+ listView->horizontalScrollBar()->setRange(0, 0);
+
+ if (listView->verticalScrollMode() == QAbstractItemView::ScrollPerItem)
+ {
+ listView->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+ }
+
+ if (listView->horizontalScrollMode() == QAbstractItemView::ScrollPerItem)
+ {
+ listView->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
+ }
+
+ listView->verticalScrollBar()->setSingleStep(listView->viewport()->height() / 10);
+ listView->verticalScrollBar()->setPageStep(listView->viewport()->height());
+ listView->verticalScrollBar()->setRange(0, lastItemBottom);
+}
+
+void KCategorizedView::Private::drawDraggedItems(QPainter *painter)
+{
+ QStyleOptionViewItemV4 option = listView->viewOptions();
+ option.state &= ~QStyle::State_MouseOver;
+ foreach (const QModelIndex &index, listView->selectionModel()->selectedIndexes())
+ {
+ const int dx = mousePosition.x() - initialPressPosition.x() + listView->horizontalOffset();
+ const int dy = mousePosition.y() - initialPressPosition.y() + listView->verticalOffset();
+
+ option.rect = visualRect(index);
+ option.rect.adjust(dx, dy, dx, dy);
+
+ if (option.rect.intersects(listView->viewport()->rect()))
+ {
+ listView->itemDelegate(index)->paint(painter, option, index);
+ }
+ }
+}
+
+void KCategorizedView::Private::layoutChanged(bool forceItemReload)
+{
+ if (proxyModel && categoryDrawer && proxyModel->isCategorizedModel() &&
+ ((forceItemReload ||
+ (modelSortRole != proxyModel->sortRole()) ||
+ (modelSortColumn != proxyModel->sortColumn()) ||
+ (modelSortOrder != proxyModel->sortOrder()) ||
+ (modelLastRowCount != proxyModel->rowCount()) ||
+ (modelCategorized != proxyModel->isCategorizedModel()))))
+ {
+ // Force the view to update all elements
+ listView->rowsInsertedArtifficial(QModelIndex(), 0, proxyModel->rowCount() - 1);
+
+ if (!forceItemReload)
+ {
+ modelSortRole = proxyModel->sortRole();
+ modelSortColumn = proxyModel->sortColumn();
+ modelSortOrder = proxyModel->sortOrder();
+ modelLastRowCount = proxyModel->rowCount();
+ modelCategorized = proxyModel->isCategorizedModel();
+ }
+ }
+
+ if (proxyModel && categoryDrawer && proxyModel->isCategorizedModel())
+ {
+ updateScrollbars();
+ }
+}
+
+void KCategorizedView::Private::drawDraggedItems()
+{
+ QRect rectToUpdate;
+ QRect currentRect;
+ foreach (const QModelIndex &index, listView->selectionModel()->selectedIndexes())
+ {
+ int dx = mousePosition.x() - initialPressPosition.x() + listView->horizontalOffset();
+ int dy = mousePosition.y() - initialPressPosition.y() + listView->verticalOffset();
+
+ currentRect = visualRect(index);
+ currentRect.adjust(dx, dy, dx, dy);
+
+ if (currentRect.intersects(listView->viewport()->rect()))
+ {
+ rectToUpdate = rectToUpdate.united(currentRect);
+ }
+ }
+
+ listView->viewport()->update(lastDraggedItemsRect.united(rectToUpdate));
+
+ lastDraggedItemsRect = rectToUpdate;
+}
+
+
+//==============================================================================
+
+
+KCategorizedView::KCategorizedView(QWidget *parent)
+ : QListView(parent)
+ , d(new Private(this))
+{
+}
+
+KCategorizedView::~KCategorizedView()
+{
+ delete d;
+}
+
+void KCategorizedView::setGridSize(const QSize &size)
+{
+ QListView::setGridSize(size);
+
+ d->layoutChanged(true);
+}
+
+void KCategorizedView::setModel(QAbstractItemModel *model)
+{
+ d->lastSelection = QItemSelection();
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ if (d->proxyModel)
+ {
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+ }
+
+ QListView::setModel(model);
+
+ d->proxyModel = dynamic_cast<KCategorizedSortFilterProxyModel*>(model);
+
+ if (d->proxyModel)
+ {
+ d->modelSortRole = d->proxyModel->sortRole();
+ d->modelSortColumn = d->proxyModel->sortColumn();
+ d->modelSortOrder = d->proxyModel->sortOrder();
+ d->modelLastRowCount = d->proxyModel->rowCount();
+ d->modelCategorized = d->proxyModel->isCategorizedModel();
+
+ QObject::connect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::connect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+
+ if (d->proxyModel->rowCount())
+ {
+ d->layoutChanged(true);
+ }
+ }
+ else
+ {
+ d->modelCategorized = false;
+ }
+}
+
+QRect KCategorizedView::visualRect(const QModelIndex &index) const
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return QListView::visualRect(index);
+ }
+
+ if (!qobject_cast<const QSortFilterProxyModel*>(index.model()))
+ {
+ return d->visualRect(d->proxyModel->mapFromSource(index));
+ }
+
+ return d->visualRect(index);
+}
+
+void KCategorizedView::scrollTo (const QModelIndex &index )
+{
+ QRect rect = visualRect( index );
+ int v = verticalScrollBar()->value();
+ int header = categoryDrawer()->categoryHeight(QModelIndex(), viewOptions());
+
+ // upper edge of 1st icon in a group + current position of scrollbar
+ // scroll a bit more up, to show the cat. header, but not too much (over max)
+ int scroll = qMin( rect.top() + v - header, verticalScrollBar()->maximum() );
+ verticalScrollBar()->setValue( scroll );
+}
+
+KCategoryDrawer *KCategorizedView::categoryDrawer() const
+{
+ return d->categoryDrawer;
+}
+
+void KCategorizedView::setCategoryDrawer(KCategoryDrawer *categoryDrawer)
+{
+ d->lastSelection = QItemSelection();
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ if (!categoryDrawer && d->proxyModel)
+ {
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::disconnect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+ }
+ else if (categoryDrawer && d->proxyModel)
+ {
+ QObject::connect(d->proxyModel,
+ SIGNAL(layoutChanged()),
+ this, SLOT(slotLayoutChanged()));
+
+ QObject::connect(d->proxyModel,
+ SIGNAL(rowsRemoved(QModelIndex,int,int)),
+ this, SLOT(rowsRemoved(QModelIndex,int,int)));
+ }
+
+ d->categoryDrawer = categoryDrawer;
+
+ if (categoryDrawer)
+ {
+ if (d->proxyModel)
+ {
+ if (d->proxyModel->rowCount())
+ {
+ d->layoutChanged(true);
+ }
+ }
+ }
+ else
+ {
+ updateGeometries();
+ }
+}
+
+
+
+void KCategorizedView::selectCategory( const QString cat )
+{
+ QRect previous = d->categoryVisualRect( d->selectedCategory );
+ d->selectedCategory = cat;
+ QRect current = d->categoryVisualRect( d->selectedCategory );
+
+ viewport()->update( previous );
+ viewport()->update( current );
+}
+
+QModelIndex KCategorizedView::indexAt(const QPoint &point) const
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return QListView::indexAt(point);
+ }
+
+ QModelIndex index;
+
+ const QModelIndexList item = d->intersectionSet(QRect(point, point));
+
+ if (item.count() == 1)
+ {
+ index = item[0];
+ }
+
+ return index;
+}
+
+void KCategorizedView::reset()
+{
+ QListView::reset();
+
+ d->lastSelection = QItemSelection();
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->biggestItemSize = QSize(0, 0);
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+}
+
+void KCategorizedView::paintEvent(QPaintEvent *event)
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ QListView::paintEvent(event);
+ return;
+ }
+
+ bool alternatingRows = alternatingRowColors();
+
+ QStyleOptionViewItemV4 option = viewOptions();
+ option.widget = this;
+ if (wordWrap())
+ {
+ option.features |= QStyleOptionViewItemV4::WrapText;
+ }
+
+ QPainter painter(viewport());
+ QRect area = event->rect();
+ const bool focus = (hasFocus() || viewport()->hasFocus()) &&
+ currentIndex().isValid();
+ const QStyle::State state = option.state;
+ const bool enabled = (state & QStyle::State_Enabled) != 0;
+
+ painter.save();
+
+ QModelIndexList dirtyIndexes = d->intersectionSet(area);
+ bool alternate = false;
+ if (dirtyIndexes.count())
+ {
+ alternate = dirtyIndexes[0].row() % 2;
+ }
+ foreach (const QModelIndex &index, dirtyIndexes)
+ {
+ if (alternatingRows && alternate)
+ {
+ option.features |= QStyleOptionViewItemV4::Alternate;
+ alternate = false;
+ }
+ else if (alternatingRows)
+ {
+ option.features &= ~QStyleOptionViewItemV4::Alternate;
+ alternate = true;
+ }
+ option.state = state;
+ option.rect = visualRect(index);
+
+ if (selectionModel() && selectionModel()->isSelected(index))
+ {
+ option.state |= QStyle::State_Selected;
+ }
+
+ if (enabled)
+ {
+ QPalette::ColorGroup cg;
+ if ((d->proxyModel->flags(index) & Qt::ItemIsEnabled) == 0)
+ {
+ option.state &= ~QStyle::State_Enabled;
+ cg = QPalette::Disabled;
+ }
+ else
+ {
+ cg = QPalette::Normal;
+ }
+ option.palette.setCurrentColorGroup(cg);
+ }
+
+ if (focus && currentIndex() == index)
+ {
+ option.state |= QStyle::State_HasFocus;
+ if (this->state() == EditingState)
+ option.state |= QStyle::State_Editing;
+ }
+
+ if (index == d->hovered)
+ option.state |= QStyle::State_MouseOver;
+ else
+ option.state &= ~QStyle::State_MouseOver;
+
+ itemDelegate(index)->paint(&painter, option, index);
+ }
+
+ // Redraw categories
+ QStyleOptionViewItemV4 otherOption;
+ bool intersectedInThePast = false;
+ foreach (const QString &category, d->categories)
+ {
+ otherOption = option;
+ otherOption.rect = d->categoryVisualRect(category);
+ otherOption.state &= ~QStyle::State_MouseOver;
+
+ if (category == d->selectedCategory)
+ otherOption.state |= QStyle::State_Selected;
+ else
+ otherOption.state &= ~QStyle::State_Selected;
+
+ if (otherOption.rect.intersects(area))
+ {
+ intersectedInThePast = true;
+
+
+ QModelIndex indexToDraw = d->proxyModel->index(d->categoriesIndexes[category][0].row(), d->proxyModel->sortColumn());
+ d->drawNewCategory(indexToDraw,
+ d->proxyModel->sortRole(), otherOption, &painter);
+ }
+ else if (intersectedInThePast)
+ {
+ break; // the visible area has been finished, we don't need to keep asking, the rest won't intersect
+ // this is doable because we know that categories are correctly ordered on the list
+ }
+ }
+
+ if ((selectionMode() != SingleSelection) && (selectionMode() != NoSelection))
+ {
+ if (d->mouseButtonPressed && !d->isDragging)
+ {
+ QPoint start, end, initialPressPosition;
+
+ initialPressPosition = d->initialPressPosition;
+
+ initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+ if (d->initialPressPosition.x() > d->mousePosition.x() ||
+ d->initialPressPosition.y() > d->mousePosition.y())
+ {
+ start = d->mousePosition;
+ end = initialPressPosition;
+ }
+ else
+ {
+ start = initialPressPosition;
+ end = d->mousePosition;
+ }
+
+ QStyleOptionRubberBand yetAnotherOption;
+ yetAnotherOption.initFrom(this);
+ yetAnotherOption.shape = QRubberBand::Rectangle;
+ yetAnotherOption.opaque = false;
+ yetAnotherOption.rect = QRect(start, end).intersected(viewport()->rect().adjusted(-16, -16, 16, 16));
+ painter.save();
+ style()->drawControl(QStyle::CE_RubberBand, &yetAnotherOption, &painter);
+ painter.restore();
+ }
+ }
+
+ if (d->isDragging && !d->dragLeftViewport)
+ {
+ painter.setOpacity(0.5);
+ d->drawDraggedItems(&painter);
+ }
+
+ painter.restore();
+}
+
+void KCategorizedView::resizeEvent(QResizeEvent *event)
+{
+ QListView::resizeEvent(event);
+
+ // Clear the items positions cache
+ d->elementsPosition.clear();
+ d->categoriesPosition.clear();
+ d->forcedSelectionPosition = 0;
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ d->updateScrollbars();
+}
+
+
+void KCategorizedView::mouseMoveEvent(QMouseEvent *event)
+{
+ QListView::mouseMoveEvent(event);
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ const QModelIndexList item = d->intersectionSet(QRect(event->pos(), event->pos()));
+
+ if (item.count() == 1)
+ {
+ d->hovered = item[0];
+ }
+ else
+ {
+ d->hovered = QModelIndex();
+ }
+
+ const QString previousHoveredCategory = d->hoveredCategory;
+
+ d->mousePosition = event->pos();
+ d->hoveredCategory.clear();
+
+ // Redraw categories
+ foreach (const QString &category, d->categories)
+ {
+ if (d->categoryVisualRect(category).intersects(QRect(event->pos(), event->pos())))
+ {
+ d->hoveredCategory = category;
+ viewport()->update(d->categoryVisualRect(category));
+ }
+ else if ((category == previousHoveredCategory) &&
+ (!d->categoryVisualRect(previousHoveredCategory).intersects(QRect(event->pos(), event->pos()))))
+ {
+ viewport()->update(d->categoryVisualRect(category));
+ }
+ }
+
+ QRect rect;
+ if (d->mouseButtonPressed && !d->isDragging)
+ {
+ QPoint start, end, initialPressPosition;
+
+ initialPressPosition = d->initialPressPosition;
+
+ initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+ if (d->initialPressPosition.x() > d->mousePosition.x() ||
+ d->initialPressPosition.y() > d->mousePosition.y())
+ {
+ start = d->mousePosition;
+ end = initialPressPosition;
+ }
+ else
+ {
+ start = initialPressPosition;
+ end = d->mousePosition;
+ }
+
+ rect = QRect(start, end).adjusted(-16, -16, 16, 16);
+ rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
+
+ viewport()->update(rect);
+ }
+ viewport()->update();
+}
+
+void KCategorizedView::mousePressEvent(QMouseEvent *event)
+{
+ d->dragLeftViewport = false;
+
+ QListView::mousePressEvent(event);
+ if (event->button() == Qt::LeftButton)
+ {
+ d->mouseButtonPressed = true;
+
+ d->initialPressPosition = event->pos();
+ d->initialPressPosition.setY(d->initialPressPosition.y() +
+ verticalOffset());
+ d->initialPressPosition.setX(d->initialPressPosition.x() +
+ horizontalOffset());
+
+ emit leftMouseClick( indexAt( event->pos()));
+ }
+ else if (event->button() == Qt::RightButton)
+ {
+ d->rightMouseButtonPressed = true;
+ }
+
+
+ if (selectionModel())
+ {
+ d->lastSelection = selectionModel()->selection();
+ }
+
+ viewport()->update(d->categoryVisualRect(d->hoveredCategory));
+}
+
+void KCategorizedView::mouseReleaseEvent(QMouseEvent *event)
+{
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ QListView::mouseReleaseEvent(event);
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ QPoint initialPressPosition = viewport()->mapFromGlobal(QCursor::pos());
+ initialPressPosition.setY(initialPressPosition.y() + verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() + horizontalOffset());
+
+ if (/*(selectionMode() != SingleSelection) && (selectionMode() != NoSelection) &&*/
+ (initialPressPosition == d->initialPressPosition))
+ {
+ selectionModel()->select( d->hovered, QItemSelectionModel::SelectCurrent);
+ }
+
+ QRect rect;
+ if (!d->isDragging)
+ {
+ QPoint start, end, initialPressPosition;
+
+ initialPressPosition = d->initialPressPosition;
+
+ initialPressPosition.setY(initialPressPosition.y() - verticalOffset());
+ initialPressPosition.setX(initialPressPosition.x() - horizontalOffset());
+
+ if (d->initialPressPosition.x() > d->mousePosition.x() ||
+ d->initialPressPosition.y() > d->mousePosition.y())
+ {
+ start = d->mousePosition;
+ end = initialPressPosition;
+ }
+ else
+ {
+ start = initialPressPosition;
+ end = d->mousePosition;
+ }
+
+ rect = QRect(start, end).adjusted(-16, -16, 16, 16);
+ rect = rect.united(QRect(start, end).adjusted(16, 16, -16, -16)).intersected(viewport()->rect());
+
+ viewport()->update(rect);
+ }
+
+ if (d->hovered.isValid())
+ viewport()->update(visualRect(d->hovered));
+ else if (!d->hoveredCategory.isEmpty())
+ viewport()->update(d->categoryVisualRect(d->hoveredCategory));
+}
+
+void KCategorizedView::leaveEvent(QEvent *event)
+{
+ d->hovered = QModelIndex();
+ d->hoveredCategory.clear();
+
+ QListView::leaveEvent(event);
+}
+
+void KCategorizedView::startDrag(Qt::DropActions supportedActions)
+{
+ // FIXME: QAbstractItemView does far better here since it sets the
+ // pixmap of selected icons to the dragging cursor, but it sets a non
+ // ARGB window so it is no transparent. Use QAbstractItemView when
+ // this is fixed on Qt.
+ // QAbstractItemView::startDrag(supportedActions);
+#if defined(DOLPHIN_DRAGANDDROP)
+ Q_UNUSED(supportedActions);
+#else
+ QListView::startDrag(supportedActions);
+#endif
+
+ d->isDragging = false;
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ viewport()->update(d->lastDraggedItemsRect);
+}
+
+void KCategorizedView::dragMoveEvent(QDragMoveEvent *event)
+{
+ d->mousePosition = event->pos();
+
+ if (d->mouseButtonPressed)
+ {
+ d->isDragging = true;
+ }
+ else
+ {
+ d->isDragging = false;
+ }
+
+ d->dragLeftViewport = false;
+
+#if defined(DOLPHIN_DRAGANDDROP)
+ QAbstractItemView::dragMoveEvent(event);
+#else
+ QListView::dragMoveEvent(event);
+#endif
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ return;
+ }
+
+ d->hovered = indexAt(event->pos());
+
+#if !defined(DOLPHIN_DRAGANDDROP)
+ d->drawDraggedItems();
+#endif
+}
+
+void KCategorizedView::dragLeaveEvent(QDragLeaveEvent *event)
+{
+ d->dragLeftViewport = true;
+
+#if defined(DOLPHIN_DRAGANDDROP)
+ QAbstractItemView::dragLeaveEvent(event);
+#else
+ QListView::dragLeaveEvent(event);
+#endif
+}
+
+void KCategorizedView::dropEvent(QDropEvent *event)
+{
+#if defined(DOLPHIN_DRAGANDDROP)
+ QAbstractItemView::dropEvent(event);
+#else
+ QListView::dropEvent(event);
+#endif
+}
+
+QModelIndex KCategorizedView::moveCursor(CursorAction cursorAction,
+ Qt::KeyboardModifiers modifiers)
+{
+ if ((viewMode() != KCategorizedView::IconMode) ||
+ !d->proxyModel ||
+ !d->categoryDrawer ||
+ d->categories.isEmpty() ||
+ !d->proxyModel->isCategorizedModel())
+ {
+ return QListView::moveCursor(cursorAction, modifiers);
+ }
+
+ int viewportWidth = viewport()->width() - spacing();
+ int itemWidth;
+
+ if (gridSize().isEmpty())
+ {
+ itemWidth = d->biggestItemSize.width();
+ }
+ else
+ {
+ itemWidth = gridSize().width();
+ }
+
+ int itemWidthPlusSeparation = spacing() + itemWidth;
+ if (!itemWidthPlusSeparation)
+ itemWidthPlusSeparation++;
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+ QModelIndex current = selectionModel() ? selectionModel()->currentIndex()
+ : QModelIndex();
+
+ if (!current.isValid())
+ {
+ if (cursorAction == MoveEnd)
+ {
+ current = model()->index(model()->rowCount() - 1, 0, QModelIndex());
+ d->forcedSelectionPosition = d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow;
+ }
+ else
+ {
+ current = model()->index(0, 0, QModelIndex());
+ d->forcedSelectionPosition = 0;
+ }
+
+ return current;
+ }
+
+ QString lastCategory = d->categories.first();
+ QString theCategory = d->categories.first();
+ QString afterCategory = d->categories.first();
+
+ bool hasToBreak = false;
+ foreach (const QString &category, d->categories)
+ {
+ if (hasToBreak)
+ {
+ afterCategory = category;
+
+ break;
+ }
+
+ if (category == d->elementsInfo[current.row()].category)
+ {
+ theCategory = category;
+
+ hasToBreak = true;
+ }
+
+ if (!hasToBreak)
+ {
+ lastCategory = category;
+ }
+ }
+
+ switch (cursorAction)
+ {
+ case QAbstractItemView::MoveUp: {
+ if (d->elementsInfo[current.row()].relativeOffsetToCategory >= elementsPerRow)
+ {
+ int indexToMove = current.row();
+ indexToMove -= qMin(((d->elementsInfo[current.row()].relativeOffsetToCategory) + d->forcedSelectionPosition), elementsPerRow - d->forcedSelectionPosition + (d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow));
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ else
+ {
+ int lastCategoryLastRow = (d->categoriesIndexes[lastCategory].count() - 1) % elementsPerRow;
+ int indexToMove = current.row() - d->elementsInfo[current.row()].relativeOffsetToCategory;
+
+ if (d->forcedSelectionPosition >= lastCategoryLastRow)
+ {
+ indexToMove -= 1;
+ }
+ else
+ {
+ indexToMove -= qMin((lastCategoryLastRow - d->forcedSelectionPosition + 1), d->forcedSelectionPosition + elementsPerRow + 1);
+ }
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ }
+
+ case QAbstractItemView::MoveDown: {
+ if (d->elementsInfo[current.row()].relativeOffsetToCategory < (d->categoriesIndexes[theCategory].count() - 1 - ((d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow)))
+ {
+ int indexToMove = current.row();
+ indexToMove += qMin(elementsPerRow, d->categoriesIndexes[theCategory].count() - 1 - d->elementsInfo[current.row()].relativeOffsetToCategory);
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ else
+ {
+ int afterCategoryLastRow = qMin(elementsPerRow, d->categoriesIndexes[afterCategory].count());
+ int indexToMove = current.row() + (d->categoriesIndexes[theCategory].count() - d->elementsInfo[current.row()].relativeOffsetToCategory);
+
+ if (d->forcedSelectionPosition >= afterCategoryLastRow)
+ {
+ indexToMove += afterCategoryLastRow - 1;
+ }
+ else
+ {
+ indexToMove += qMin(d->forcedSelectionPosition, elementsPerRow);
+ }
+
+ return d->proxyModel->index(indexToMove, 0);
+ }
+ }
+
+ case QAbstractItemView::MoveLeft:
+ if (layoutDirection() == Qt::RightToLeft)
+ {
+ if (!(d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() + 1, 0);
+ }
+
+ if (!(d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() - 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() - 1, 0);
+
+ case QAbstractItemView::MoveRight:
+ if (layoutDirection() == Qt::RightToLeft)
+ {
+ if (!(d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() - 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() - 1, 0);
+ }
+
+ if (!(d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow))
+ return current;
+
+ d->forcedSelectionPosition = d->elementsInfo[current.row() + 1].relativeOffsetToCategory % elementsPerRow;
+
+#if 0 //follow qt view behavior. lateral movements won't change visual row
+ if (d->forcedSelectionPosition < 0)
+ d->forcedSelectionPosition = (d->categoriesIndexes[theCategory].count() - 1) % elementsPerRow;
+#endif
+
+ return d->proxyModel->index(current.row() + 1, 0);
+
+ default:
+ break;
+ }
+
+ return QListView::moveCursor(cursorAction, modifiers);
+}
+
+void KCategorizedView::rowsInserted(const QModelIndex &parent,
+ int start,
+ int end)
+{
+ QListView::rowsInserted(parent, start, end);
+
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->biggestItemSize = QSize(0, 0);
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ return;
+ }
+
+ rowsInsertedArtifficial(parent, start, end);
+}
+
+void KCategorizedView::rowsInsertedArtifficial(const QModelIndex &parent,
+ int start,
+ int end)
+{
+ Q_UNUSED(parent);
+
+ d->forcedSelectionPosition = 0;
+ d->elementsInfo.clear();
+ d->elementsPosition.clear();
+ d->categoriesIndexes.clear();
+ d->categoriesPosition.clear();
+ d->categories.clear();
+ d->intersectedIndexes.clear();
+ d->modelIndexList.clear();
+ d->hovered = QModelIndex();
+ d->biggestItemSize = QSize(0, 0);
+ d->mouseButtonPressed = false;
+ d->rightMouseButtonPressed = false;
+
+ if (start > end || end < 0 || start < 0 || !d->proxyModel->rowCount())
+ {
+ return;
+ }
+
+ // Add all elements mapped to the source model and explore categories
+ QString prevCategory = d->proxyModel->data(d->proxyModel->index(0, d->proxyModel->sortColumn()), KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+ QString lastCategory = prevCategory;
+ QModelIndexList modelIndexList;
+ struct Private::ElementInfo elementInfo;
+ int offset = -1;
+ for (int k = 0; k < d->proxyModel->rowCount(); ++k)
+ {
+ QModelIndex index = d->proxyModel->index(k, d->proxyModel->sortColumn());
+ QModelIndex indexSize = d->proxyModel->index(k, 0);
+
+ d->biggestItemSize = QSize(qMax(sizeHintForIndex(indexSize).width(),
+ d->biggestItemSize.width()),
+ qMax(sizeHintForIndex(indexSize).height(),
+ d->biggestItemSize.height()));
+
+ d->modelIndexList << index;
+
+ lastCategory = d->proxyModel->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+
+ elementInfo.category = lastCategory;
+
+ if (prevCategory != lastCategory)
+ {
+ offset = 0;
+ d->categoriesIndexes.insert(prevCategory, modelIndexList);
+ d->categories << prevCategory;
+ modelIndexList.clear();
+ }
+ else
+ {
+ offset++;
+ }
+
+ elementInfo.relativeOffsetToCategory = offset;
+
+ modelIndexList << index;
+ prevCategory = lastCategory;
+
+ d->elementsInfo.insert(index.row(), elementInfo);
+ }
+
+ d->categoriesIndexes.insert(prevCategory, modelIndexList);
+ d->categories << prevCategory;
+
+ d->updateScrollbars();
+
+ // FIXME: We need to safely save the last selection. This is on my TODO
+ // list (ereslibre).
+ selectionModel()->clear();
+}
+
+void KCategorizedView::rowsRemoved(const QModelIndex &parent,
+ int start,
+ int end)
+{
+ Q_UNUSED(parent);
+ Q_UNUSED(start);
+ Q_UNUSED(end);
+ if (d->proxyModel && d->categoryDrawer && d->proxyModel->isCategorizedModel())
+ {
+ // Force the view to update all elements
+ rowsInsertedArtifficial(QModelIndex(), 0, d->proxyModel->rowCount() - 1);
+ }
+}
+
+void KCategorizedView::updateGeometries()
+{
+ if (!d->proxyModel || !d->categoryDrawer || !d->proxyModel->isCategorizedModel())
+ {
+ QListView::updateGeometries();
+ return;
+ }
+
+ // Avoid QListView::updateGeometries(), since it will try to set another
+ // range to our scroll bars, what we don't want (ereslibre)
+ QAbstractItemView::updateGeometries();
+}
+
+void KCategorizedView::slotLayoutChanged()
+{
+ d->layoutChanged();
+}
+
+void KCategorizedView::currentChanged(const QModelIndex ¤t,
+ const QModelIndex &previous)
+{
+ // We need to update the forcedSelectionPosition property in order to correctly
+ // navigate after with keyboard using up & down keys
+
+ int viewportWidth = viewport()->width() - spacing();
+
+ int itemHeight;
+ int itemWidth;
+
+ if (gridSize().isEmpty())
+ {
+ itemHeight = d->biggestItemSize.height();
+ itemWidth = d->biggestItemSize.width();
+ }
+ else
+ {
+ itemHeight = gridSize().height();
+ itemWidth = gridSize().width();
+ }
+
+ int itemWidthPlusSeparation = spacing() + itemWidth;
+ if (!itemWidthPlusSeparation)
+ itemWidthPlusSeparation++;
+ int elementsPerRow = viewportWidth / itemWidthPlusSeparation;
+ if (!elementsPerRow)
+ elementsPerRow++;
+
+ if (d->mouseButtonPressed || d->rightMouseButtonPressed)
+ d->forcedSelectionPosition = d->elementsInfo[current.row()].relativeOffsetToCategory % elementsPerRow;
+
+ QListView::currentChanged(current, previous);
+}
+
+void KCategorizedView::dataChanged(const QModelIndex &topLeft,
+ const QModelIndex &bottomRight)
+{
+ if (topLeft == bottomRight)
+ {
+ d->cacheIndex(topLeft);
+ }
+ else
+ {
+ const int columnStart = topLeft.column();
+ const int columnEnd = bottomRight.column();
+ const int rowStart = topLeft.row();
+ const int rowEnd = bottomRight.row();
+
+ for (int row = rowStart; row <= rowEnd; ++row)
+ {
+ for (int column = columnStart; column <= columnEnd; ++column)
+ {
+ d->cacheIndex(d->proxyModel->index(row, column));
+ }
+ }
+ }
+
+ QListView::dataChanged(topLeft, bottomRight);
+ slotLayoutChanged();
+}
+
+#include "kcategorizedview.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview.h Mon May 23 15:58:18 2011
@@ -0,0 +1,128 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDVIEW_H
+#define KCATEGORIZEDVIEW_H
+
+#include <QtGui/QListView>
+
+//#include <kdeui_export.h>
+#define KDEUI_EXPORT
+
+class KCategoryDrawer;
+
+/**
+ * @short Item view for listing items
+ *
+ * KCategorizedView allows you to use it as it were a QListView.
+ * Subclass KCategorizedSortFilterProxyModel to provide category information for items.
+ *
+ * @see KCategorizedSortFilterProxyModel
+ *
+ * @author Rafael Fernández López <ereslibre(a)kde.org>
+ */
+class KDEUI_EXPORT KCategorizedView
+ : public QListView
+{
+ Q_OBJECT
+
+public:
+ KCategorizedView(QWidget *parent = 0);
+
+ ~KCategorizedView();
+
+ virtual void setModel(QAbstractItemModel *model);
+
+ void setGridSize(const QSize &size);
+
+ virtual QRect visualRect(const QModelIndex &index) const;
+
+ void scrollTo (const QModelIndex &index );
+
+ KCategoryDrawer *categoryDrawer() const;
+
+ void setCategoryDrawer(KCategoryDrawer *categoryDrawer);
+
+ void selectCategory ( const QString cat );
+
+ virtual QModelIndex indexAt(const QPoint &point) const;
+
+public Q_SLOTS:
+ virtual void reset();
+
+protected:
+ virtual void paintEvent(QPaintEvent *event);
+
+ virtual void resizeEvent(QResizeEvent *event);
+
+ //virtual void setSelection(const QRect &rect,
+ // QItemSelectionModel::SelectionFlags flags);
+
+ virtual void mouseMoveEvent(QMouseEvent *event);
+
+ virtual void mousePressEvent(QMouseEvent *event);
+
+ virtual void mouseReleaseEvent(QMouseEvent *event);
+
+ virtual void leaveEvent(QEvent *event);
+
+ virtual void startDrag(Qt::DropActions supportedActions);
+
+ virtual void dragMoveEvent(QDragMoveEvent *event);
+
+ virtual void dragLeaveEvent(QDragLeaveEvent *event);
+
+ virtual void dropEvent(QDropEvent *event);
+
+ virtual QModelIndex moveCursor(CursorAction cursorAction,
+ Qt::KeyboardModifiers modifiers);
+
+protected Q_SLOTS:
+ virtual void rowsInserted(const QModelIndex &parent,
+ int start,
+ int end);
+
+ virtual void rowsInsertedArtifficial(const QModelIndex &parent,
+ int start,
+ int end);
+
+ virtual void rowsRemoved(const QModelIndex &parent,
+ int start,
+ int end);
+
+ virtual void updateGeometries();
+
+ virtual void slotLayoutChanged();
+
+ virtual void currentChanged(const QModelIndex ¤t,
+ const QModelIndex &previous);
+
+ virtual void dataChanged(const QModelIndex &topLeft,
+ const QModelIndex &bottomRight);
+
+signals:
+ void leftMouseClick( const QModelIndex &idx );
+
+private:
+ class Private;
+ Private *const d;
+};
+
+#endif // KCATEGORIZEDVIEW_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorizedview_p.h Mon May 23 15:58:18 2011
@@ -0,0 +1,165 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORIZEDVIEW_P_H
+#define KCATEGORIZEDVIEW_P_H
+
+class KCategorizedSortFilterProxyModel;
+class KCategoryDrawer;
+
+/**
+ * @internal
+ */
+class KCategorizedView::Private
+{
+public:
+ Private(KCategorizedView *listView);
+ ~Private();
+
+
+ // Methods
+
+ /**
+ * Returns the list of items that intersects with @p rect
+ */
+ const QModelIndexList &intersectionSet(const QRect &rect);
+
+ /**
+ * Gets the item rect in the viewport for @p index
+ */
+ QRect visualRectInViewport(const QModelIndex &index) const;
+
+ /**
+ * Returns the category rect in the viewport for @p category
+ */
+ QRect visualCategoryRectInViewport(const QString &category) const;
+
+ /**
+ * Caches and returns the rect that corresponds to @p index
+ */
+ const QRect &cacheIndex(const QModelIndex &index);
+
+ /**
+ * Caches and returns the rect that corresponds to @p category
+ */
+ const QRect &cacheCategory(const QString &category);
+
+ /**
+ * Returns the rect that corresponds to @p index
+ * @note If the rect is not cached, it becomes cached
+ */
+ const QRect &cachedRectIndex(const QModelIndex &index);
+
+ /**
+ * Returns the rect that corresponds to @p category
+ * @note If the rect is not cached, it becomes cached
+ */
+ const QRect &cachedRectCategory(const QString &category);
+
+ /**
+ * Returns the visual rect (taking in count x and y offsets) for @p index
+ * @note If the rect is not cached, it becomes cached
+ */
+ QRect visualRect(const QModelIndex &index);
+
+ /**
+ * Returns the visual rect (taking in count x and y offsets) for @p category
+ * @note If the rect is not cached, it becomes cached
+ */
+ QRect categoryVisualRect(const QString &category);
+
+ /**
+ * This method will draw a new category represented by index
+ * @param index on the rect specified by @p option.rect, with
+ * painter @p painter
+ */
+ void drawNewCategory(const QModelIndex &index,
+ int sortRole,
+ const QStyleOption &option,
+ QPainter *painter);
+
+ /**
+ * This method will update scrollbars ranges. Called when our model changes
+ * or when the view is resized
+ */
+ void updateScrollbars();
+
+ /**
+ * This method will draw dragged items in the painting operation
+ */
+ void drawDraggedItems(QPainter *painter);
+
+ /**
+ * This method will determine which rect needs to be updated because of a
+ * dragging operation
+ */
+ void drawDraggedItems();
+
+ void layoutChanged(bool forceItemReload = false);
+
+
+ // Attributes
+
+ struct ElementInfo
+ {
+ QString category;
+ int relativeOffsetToCategory;
+ };
+
+ // Basic data
+ KCategorizedView *listView;
+ KCategoryDrawer *categoryDrawer;
+ QSize biggestItemSize;
+
+ // Behavior data
+ bool mouseButtonPressed;
+ bool rightMouseButtonPressed;
+ bool isDragging;
+ bool dragLeftViewport;
+ QModelIndex hovered;
+ QString hoveredCategory;
+ QString selectedCategory;
+ QPoint initialPressPosition;
+ QPoint mousePosition;
+ int forcedSelectionPosition;
+
+ // Cache data
+ // We cannot merge some of them into structs because it would affect
+ // performance
+ QHash<int, struct ElementInfo> elementsInfo;
+ QHash<int, QRect> elementsPosition;
+ QHash<QString, QModelIndexList> categoriesIndexes;
+ QHash<QString, QRect> categoriesPosition;
+ QStringList categories;
+ QModelIndexList intersectedIndexes;
+ QRect lastDraggedItemsRect;
+ int modelSortRole;
+ int modelSortColumn;
+ int modelLastRowCount;
+ bool modelCategorized;
+ Qt::SortOrder modelSortOrder;
+ QItemSelection lastSelection;
+
+ // Attributes for speed reasons
+ KCategorizedSortFilterProxyModel *proxyModel;
+ QModelIndexList modelIndexList;
+};
+
+#endif // KCATEGORIZEDVIEW_P_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,114 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "kcategorydrawer.h"
+
+#include <QPainter>
+#include <QStyleOption>
+#include <QApplication>
+#include <QDebug>
+
+#define HORIZONTAL_HINT 3
+
+KCategoryDrawer::KCategoryDrawer()
+{
+}
+
+KCategoryDrawer::~KCategoryDrawer()
+{
+}
+
+void KCategoryDrawer::drawCategory(const QModelIndex &index,
+ int /*sortRole*/,
+ const QStyleOption &option,
+ QPainter *painter) const
+{
+ const QString category = index.model()->data(index, KCategorizedSortFilterProxyModel::CategoryDisplayRole).toString();
+
+ QColor color;
+
+ painter->save();
+ painter->setRenderHint(QPainter::Antialiasing);
+
+ if (option.state & QStyle::State_Selected)
+ {
+ color = option.palette.color(QPalette::HighlightedText);
+ QColor bgcolor = option.palette.color(QPalette::Highlight);
+ painter->fillRect(option.rect, linearG( option, bgcolor ));
+ }
+ else
+ {
+ color = option.palette.color(QPalette::Text);
+ }
+
+
+ QStyleOptionViewItemV4 viewOptions;
+ viewOptions.rect = option.rect;
+ viewOptions.palette = option.palette;
+ viewOptions.direction = option.direction;
+ viewOptions.state = option.state;
+ viewOptions.viewItemPosition = QStyleOptionViewItemV4::OnlyOne;
+ QApplication::style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &viewOptions, painter, 0);
+
+ QFont painterFont = painter->font();
+ painterFont.setWeight(QFont::Bold);
+ QFontMetrics metrics(painterFont);
+ painter->setFont(painterFont);
+
+
+ QRect lineRect(option.rect.left(),
+ option.rect.bottom() - 1,
+ option.rect.width(),
+ 1);
+
+
+ painter->fillRect(lineRect, linearG( option, color ));
+
+ painter->setPen(color);
+
+ QRect textRect(option.rect);
+ textRect.setLeft(textRect.left() + HORIZONTAL_HINT);
+ textRect.setRight(textRect.right() - HORIZONTAL_HINT);
+ painter->drawText(textRect, Qt::AlignVCenter | Qt::AlignLeft,
+ metrics.elidedText(category, Qt::ElideRight, option.rect.width()));
+
+ painter->restore();
+}
+
+int KCategoryDrawer::categoryHeight(const QModelIndex &index, const QStyleOption &option) const
+{
+ Q_UNUSED(index);
+
+ return option.fontMetrics.height() + 4 /* 3 separator; 1 gradient */;
+}
+
+QLinearGradient KCategoryDrawer::linearG ( const QStyleOption &option, const QColor col ) const
+{
+
+ QLinearGradient gradient = QLinearGradient(option.rect.topLeft(),
+ option.rect.bottomRight());
+
+ gradient.setColorAt(option.direction == Qt::LeftToRight ? 0
+ : 1, col);
+ gradient.setColorAt(option.direction == Qt::LeftToRight ? 1
+ : 0, Qt::transparent);
+
+ return gradient;
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcategorydrawer.h Mon May 23 15:58:18 2011
@@ -0,0 +1,56 @@
+/**
+ * This file is part of the KDE project
+ * Copyright (C) 2007 Rafael Fernández López <ereslibre(a)kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KCATEGORYDRAWER_H
+#define KCATEGORYDRAWER_H
+
+#include "kcategorizedsortfilterproxymodel.h"
+#define KDEUI_EXPORT
+
+class QPainter;
+class QLinearGradient;
+class QModelIndex;
+class QStyleOption;
+
+class KDEUI_EXPORT KCategoryDrawer
+{
+public:
+ KCategoryDrawer();
+
+ virtual ~KCategoryDrawer();
+
+ /**
+ * This method purpose is to draw a category represented by the given
+ * @param index with the given @param sortRole sorting role
+ *
+ * @note This method will be called one time per category, always with the
+ * first element in that category
+ */
+ virtual void drawCategory(const QModelIndex &index,
+ int sortRole,
+ const QStyleOption &option,
+ QPainter *painter) const;
+
+ virtual int categoryHeight(const QModelIndex &index, const QStyleOption &option) const;
+
+ QLinearGradient linearG( const QStyleOption &option, const QColor col ) const;
+};
+
+#endif // KCATEGORYDRAWER_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,215 @@
+/*
+ Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer(a)kde.org>
+ Copyright (c) 2000 Matthias Elter <elter(a)kde.org>
+ Copyright (c) 2003 Daniel Molkentin <molkentin(a)kde.org>
+ Copyright (c) 2003,2006 Matthias Kretz <kretz(a)kde.org>
+
+ This file is part of the KDE project
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2, as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "kcmoduleinfo.h"
+
+#include <QtCore/QVariant>
+
+//#include <kdesktopfile.h>
+//#include <kdebug.h>
+//#include <kglobal.h>
+//#include <kstandarddirs.h>
+//#include <klocale.h>
+
+#include <iostream>
+
+class KCModuleInfo::Private
+{
+ public:
+ Private();
+// Private( KService::Ptr );
+
+ QStringList keywords;
+ QString name, icon, lib, handle, fileName, doc, comment;
+ bool allLoaded;
+ int weight;
+
+ //KService::Ptr service;
+
+ /**
+ * Reads the service entries specific for KCModule from the desktop file.
+ * The usual desktop entries are read in the Private ctor.
+ */
+ void loadAll();
+};
+
+//KCModuleInfo::Private::Private()
+//{
+//}
+
+//KCModuleInfo::Private::Private( KService::Ptr s )
+KCModuleInfo::Private::Private( )
+ : allLoaded( false )
+// , service( s )
+{
+// if ( !service )
+// {
+// kDebug(712) << "Could not find the service.";
+// return;
+// }
+
+ // set the modules simple attributes
+/* name = service->name();
+ comment = service->comment();
+ icon = service->icon();
+ fileName = service->entryPath();
+ lib = service->library();
+ keywords = service->keywords(); */
+
+ name = "name";
+ comment = "comment";
+ icon = "icon";
+ fileName = "fileName";
+ lib = "lib";
+ keywords = QStringList("keywords");
+
+
+}
+
+KCModuleInfo::KCModuleInfo()
+{
+ d = new Private;
+}
+
+KCModuleInfo::KCModuleInfo(const QString& desktopFile)
+{
+// d = new Private( KService::serviceByStorageId(desktopFile) );
+ d = new Private( );
+}
+
+//KCModuleInfo::KCModuleInfo( KService::Ptr moduleInfo )
+//{
+// d = new Private( moduleInfo );
+//}
+
+KCModuleInfo::KCModuleInfo( const KCModuleInfo &rhs )
+{
+ d = new Private;
+ ( *this ) = rhs;
+}
+
+KCModuleInfo &KCModuleInfo::operator=( const KCModuleInfo &rhs )
+{
+ *d = *(rhs.d);
+ return *this;
+}
+
+bool KCModuleInfo::operator==( const KCModuleInfo & rhs ) const
+{
+ return ( ( d->name == rhs.d->name ) && ( d->lib == rhs.d->lib ) && ( d->fileName == rhs.d->fileName ) );
+}
+
+bool KCModuleInfo::operator!=( const KCModuleInfo & rhs ) const
+{
+ return ! operator==( rhs );
+}
+
+KCModuleInfo::~KCModuleInfo()
+{
+ delete d;
+}
+
+void KCModuleInfo::Private::loadAll()
+{
+ allLoaded = true;
+
+ std::cout << "KCModuleInfo::Private::loadAll" << std::endl;
+
+// if( !service ) /* We have a bogus service. All get functions will return empty/zero values */
+ return;
+
+ // get the documentation path
+// doc = service->property( "X-DocPath", QVariant::String ).toString();
+// if (doc.isEmpty())
+// doc = service->property( "DocPath", QVariant::String ).toString();
+
+ // read weight
+// QVariant tmp = service->property( "X-KDE-Weight", QVariant::Int );
+// weight = tmp.isValid() ? tmp.toInt() : 100;
+
+ // factory handle
+// tmp = service->property("X-KDE-FactoryName", QVariant::String);
+// handle = tmp.isValid() ? tmp.toString() : lib;
+
+}
+
+QString KCModuleInfo::fileName() const
+{
+ return d->fileName;
+}
+
+QStringList KCModuleInfo::keywords() const
+{
+ return d->keywords;
+}
+
+QString KCModuleInfo::moduleName() const
+{
+ return d->name;
+}
+
+//KService::Ptr KCModuleInfo::service() const
+//{
+// return d->service;
+//}
+
+QString KCModuleInfo::comment() const
+{
+ return d->comment;
+}
+
+QString KCModuleInfo::icon() const
+{
+ return d->icon;
+}
+
+QString KCModuleInfo::library() const
+{
+ return d->lib;
+}
+
+QString KCModuleInfo::docPath() const
+{
+ if (!d->allLoaded)
+ d->loadAll();
+
+ return d->doc;
+}
+
+QString KCModuleInfo::handle() const
+{
+ if (!d->allLoaded)
+ d->loadAll();
+
+ return d->handle;
+}
+
+int KCModuleInfo::weight() const
+{
+ if (!d->allLoaded)
+ d->loadAll();
+
+ return d->weight;
+}
+
+// vim: ts=2 sw=2 et
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmoduleinfo.h Mon May 23 15:58:18 2011
@@ -0,0 +1,166 @@
+/*
+ Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer(a)kde.org>
+ Copyright (c) 2000 Matthias Elter <elter(a)kde.org>
+ Copyright (c) 2003 Daniel Molkentin <molkentin(a)kde.org>
+ Copyright (c) 2003,2006 Matthias Kretz <kretz(a)kde.org>
+
+ This file is part of the KDE project
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2, as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KCMODULEINFO_H
+#define KCMODULEINFO_H
+
+//#include <kutils_export.h>
+//#include <kservice.h>
+
+#include <QString>
+#include <QStringList>
+
+class QString;
+class QStringList;
+
+/**
+ * A class that provides information about a KCModule
+ *
+ * KCModuleInfo provides various technical information, such as icon, library
+ * etc. about a KCModule.n
+ * @note Any values set with the set* functions is not
+ * written back with KCModuleInfo it only reads value from the desktop file.
+ *
+ * @internal
+ * @author Matthias Hoelzer-Kluepfel <mhk(a)kde.org>
+ * @author Matthias Elter <elter(a)kde.org>
+ * @author Daniel Molkentin <molkentin(a)kde.org>
+ *
+ */
+class KCModuleInfo // krazy:exclude=dpointer (implicitly shared)
+{
+
+public:
+
+ /**
+ * Constructs a KCModuleInfo.
+ * @note a KCModuleInfo object will have to be manually deleted, it is not
+ * done automatically for you.
+ * @param desktopFile the desktop file representing the module, or
+ * the name of the module.
+ */
+ KCModuleInfo(const QString& desktopFile);
+
+ /**
+ * Same as above but takes a KService::Ptr as argument.
+ *
+ * @note @p moduleInfo must be a valid pointer.
+ *
+ * @param moduleInfo specifies the module
+ */
+// KCModuleInfo( KService::Ptr moduleInfo );
+
+
+ /**
+ * Same as above but takes a KCModuleInfo as argument.
+ *
+ * @param rhs specifies the module
+ */
+ KCModuleInfo( const KCModuleInfo &rhs );
+
+ /**
+ * Same as above but creates an empty KCModuleInfo.
+ * You should not normally call this.
+ */
+ KCModuleInfo();
+
+ /**
+ * Assignment operator
+ */
+ KCModuleInfo &operator=( const KCModuleInfo &rhs );
+
+ /**
+ * Returns true if @p rhs describes the same KCModule as this object.
+ */
+ bool operator==( const KCModuleInfo &rhs ) const;
+
+ /**
+ * @return true if @p rhs is not equal itself
+ */
+ bool operator!=( const KCModuleInfo &rhs ) const;
+
+ /**
+ * Default destructor.
+ */
+ ~KCModuleInfo();
+
+ /**
+ * @return the filename of the .desktop file that describes the KCM
+ */
+ QString fileName() const;
+
+ /**
+ * @return the keywords associated with this KCM.
+ */
+ QStringList keywords() const;
+
+ /**
+ * @return the module\'s (translated) name
+ */
+ QString moduleName() const;
+
+ /**
+ * @return a KSharedPtr to KService created from the modules .desktop file
+ */
+// KService::Ptr service() const;
+
+ /**
+ * @return the module's (translated) comment field
+ */
+ QString comment() const;
+
+ /**
+ * @return the module's icon name
+ */
+ QString icon() const;
+
+ /**
+ * @return the path of the module's documentation
+ */
+ QString docPath() const;
+
+ /**
+ * @return the library name
+ */
+ QString library() const;
+
+ /**
+ * @return a handle (the contents of the X-KDE-FactoryName field if it exists,
+ * else the same as the library name)
+ */
+ QString handle() const;
+
+ /**
+ * @return the weight of the module which determines the order of the pages in
+ * the KCMultiDialog. It's set by the X-KDE-Weight field.
+ */
+ int weight() const;
+
+private:
+ class Private;
+ Private * d;
+};
+
+#endif // KCMODULEINFO_H
+
+// vim: ts=2 sw=2 et
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,245 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "kcmodulemodel.h"
+
+#include <QHash>
+#include <QList>
+#include <QStringList>
+
+#include "kcategorizedsortfilterproxymodel.h"
+#include "menuitem.h"
+#include <iostream>
+
+
+Q_DECLARE_METATYPE(MenuItem *)
+
+SystemSettingsProxyModel::SystemSettingsProxyModel( QObject * parent )
+ : KCategorizedSortFilterProxyModel( parent )
+{
+
+}
+
+SystemSettingsProxyModel::~SystemSettingsProxyModel()
+{}
+
+bool SystemSettingsProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ QVariant leftWeight = left.data( KCModuleModel::WeightRole );
+ QVariant rightWeight = right.data( KCModuleModel::WeightRole );
+
+ if ( !( leftWeight.isValid() && rightWeight.isValid() ) ) {
+ return KCategorizedSortFilterProxyModel::subSortLessThan( left, right );
+ } else {
+ if ( leftWeight.toInt() == rightWeight.toInt() ) {
+ return left.data().toString() < right.data().toString();
+ } else {
+ return leftWeight.toInt() < rightWeight.toInt();
+ }
+ }
+}
+
+
+bool SystemSettingsProxyModel::filterAcceptsRow( int source_row, const QModelIndex & source_parent ) const
+{
+
+std::cout << "SystemSettingsProxyModel::filterAcceptsRow" << std::endl;
+
+ QModelIndex index = sourceModel()->index( source_row, 0, source_parent );
+ MenuItem * mItem = index.data( Qt::UserRole ).value<MenuItem*>();
+ // accept only systemsettings categories that have children
+// if ( mItem->children.isEmpty() && mItem->service->serviceTypes().contains("SystemSettingsCategory" ) ) {
+// return false;
+// } else {
+ return KCategorizedSortFilterProxyModel::filterAcceptsRow( source_row, source_parent );
+// }
+}
+
+/*int weightOfService( const KService::Ptr service )
+{
+ QVariant tmp = service->property( "X-KDE-Weight", QVariant::Int );
+ int weight = tmp.isValid() ? tmp.toInt() : 100;
+ return weight;
+}
+*/
+class KCModuleModelPrivate {
+public:
+ KCModuleModelPrivate(){
+ }
+
+ MenuItem * rootItem;
+};
+
+const int KCModuleModel::UserFilterRole = 0x015D1AE6;
+const int KCModuleModel::WeightRole = 0x03A8CC00;
+
+KCModuleModel::KCModuleModel( MenuItem * menuRoot, QObject * parent )
+ : QAbstractItemModel( parent ), d( new KCModuleModelPrivate )
+{
+ d->rootItem = menuRoot;
+}
+
+KCModuleModel::~KCModuleModel()
+{
+}
+
+int KCModuleModel::rowCount( const QModelIndex & index ) const
+{
+ int count = 0;
+ MenuItem * mi;
+ if ( index.isValid() ) {
+ mi = static_cast<MenuItem *>( index.internalPointer() );
+ } else {
+ mi = d->rootItem;
+ }
+ if ( mi ) {
+ foreach ( MenuItem * i, mi->children ) {
+ count += i->children.count();
+ }
+ }
+ return count;
+}
+
+int KCModuleModel::columnCount( const QModelIndex & /*index*/ ) const
+{
+ return 2; // name and comment
+}
+
+QModelIndex KCModuleModel::index( int row, int column, const QModelIndex & parent ) const
+{
+ if ( !hasIndex( row, column, parent ) ) {
+ return QModelIndex();
+ }
+ MenuItem * parentItem;
+ if ( !parent.isValid() ) {
+ parentItem = d->rootItem;
+ } else {
+ parentItem = static_cast<MenuItem*>( parent.internalPointer() );
+ }
+ MenuItem * foundItem = parentItem->grandChildAt( row );
+ if ( foundItem ) {
+ QModelIndex index = createIndex( row, column, (void*)foundItem );
+ return index;
+ }
+ return QModelIndex();
+}
+
+
+QModelIndex KCModuleModel::parent( const QModelIndex & index ) const
+{
+ if ( !index.isValid() ) {
+ return QModelIndex();
+ }
+
+ MenuItem * parentItem = static_cast<MenuItem*>( index.internalPointer() )->parent;
+ if ( parentItem == d->rootItem ) {
+ return QModelIndex();
+ } else {
+ return createIndex( parentItem->parent->children.indexOf( parentItem ), 0, parentItem );
+ }
+}
+
+QVariant KCModuleModel::data(const QModelIndex &index, int role) const
+{
+
+ std::cout << "KCModuleModel::data" << std::endl;
+
+///TG//////////
+
+ return(QString("data"));
+
+///TG//////////
+
+/*
+
+
+ MenuItem * mi = 0;
+ QVariant theData;
+ if ( !index.isValid() ) {
+ return QVariant();
+ }
+ mi = static_cast<MenuItem *>( index.internalPointer() );
+ QStringList searchKeyWords;
+ switch ( role ) {
+ case Qt::DisplayRole:
+ switch ( index.column() ) {
+ case 0:
+ theData.setValue( mi->service->name());
+
+ break;
+ case 1:
+ // theData.setValue( mi->service->comment());
+ break;
+ default:
+ break;
+ }
+ break;
+ case Qt::DecorationRole:
+ if ( index.column() == 0 )
+ // theData = QVariant( KIcon( mi->service->icon() ) );
+ break;
+ case KCategorizedSortFilterProxyModel::CategorySortRole:
+ if ( mi->parent )
+// theData.setValue( QString("%1%2").arg( QString::number( weightOfService( mi->parent->service) ), 5, '0' ).arg( mi->parent->service->name() ) );
+ break;
+ case KCategorizedSortFilterProxyModel::CategoryDisplayRole:
+ if ( mi->parent )
+// theData.setValue( mi->parent->service->name());
+ break;
+ case Qt::UserRole:
+ theData.setValue( mi );
+ break;
+ case UserFilterRole:
+ foreach ( MenuItem * child, mi->children ) {
+// searchKeyWords << child->item.keywords() << child->service->name();
+ }
+// searchKeyWords << mi->item.keywords() << mi->service->name();
+// theData.setValue( searchKeyWords.join( QString() ) );
+ break;
+ case WeightRole:
+// theData.setValue( weightOfService( mi->service ) );
+ break;
+ default:
+ break;
+ }
+
+ theData.setValue(QString("Test"));
+
+ return theData;
+
+*/
+
+
+}
+
+Qt::ItemFlags KCModuleModel::flags(const QModelIndex &index) const
+{
+ if (!index.isValid())
+ return 0;
+
+ return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
+}
+
+QVariant KCModuleModel::headerData(int section, Qt::Orientation orientation, int role ) const
+{
+ return QAbstractItemModel::headerData( section, orientation, role );
+}
+
+#include "kcmodulemodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kcmodulemodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,66 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef KCMODULEMODEL_H
+#define KCMODULEMODEL_H
+
+#include <QAbstractItemModel>
+#include "kcategorizedsortfilterproxymodel.h"
+
+class MenuItem;
+class KCModuleModelPrivate;
+
+class SystemSettingsProxyModel : public KCategorizedSortFilterProxyModel
+{
+public:
+ SystemSettingsProxyModel(QObject *parent = 0);
+ virtual ~SystemSettingsProxyModel();
+ virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
+ virtual bool filterAcceptsRow( int source_column, const QModelIndex & source_parent ) const;
+};
+
+class KCModuleModel : public QAbstractItemModel
+{
+Q_OBJECT
+public:
+ static const int UserFilterRole, WeightRole;
+ KCModuleModel( MenuItem * menuRoot, QObject * parent = 0 );
+ ~KCModuleModel();
+ // setup method
+ // QAbstractItemModel reimplementations
+ QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex() ) const;
+ QModelIndex parent( const QModelIndex & index ) const;
+ int rowCount( const QModelIndex & index ) const;
+ int columnCount( const QModelIndex & index ) const;
+
+ QVariant data(const QModelIndex &index, int role) const;
+
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+private:
+ KCModuleModelPrivate * d;
+};
+
+class KCModuleSortFilterProxyModel : public KCategorizedSortFilterProxyModel
+{
+public:
+protected:
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,136 @@
+/*
+ kicongrouppage.cpp
+
+ Copyright (c) 2007 Michael D. Stemle, Jr. <manchicken(a)notsosoft.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+*/
+
+#include <QtAlgorithms>
+#include <QStyle>
+#include <iostream>
+
+
+#include "kicongrouppage.h"
+
+/*********** KIconGroupPage **************/
+KIconGroupPage::KIconGroupPage(QWidget* parent) : QFrame(parent) {
+ render();
+}
+
+KIconGroupPage::~KIconGroupPage() {
+ // Delete the rows...
+ qDeleteAll(m_rows.values().begin(), m_rows.values().end());
+ m_rows.clear();
+}
+
+const KIconGroupRow* KIconGroupPage::appendGroup(QString name) {
+ KIconGroupRow* group = new KIconGroupRow(name, parentWidget());
+
+ m_rows.insert(name, group);
+
+ render();
+
+ return group;
+}
+
+const KIconGroupItem* KIconGroupPage::appendIconToGroup(const QString& group,
+ const QIcon& icon,
+ const QString& label) {
+ if (!m_rows.contains(group)) {
+ appendGroup(group);
+ }
+
+ return m_rows[group]->appendIcon(icon, label);
+}
+
+void KIconGroupPage::render() {
+ m_layout = new QBoxLayout(QBoxLayout::TopToBottom, parentWidget());
+}
+
+
+/*********** KIconGroupRow **************/
+KIconGroupRow::KIconGroupRow(QWidget* parent) : QBoxLayout(QBoxLayout::LeftToRight, parent) {
+ render();
+}
+
+KIconGroupRow::KIconGroupRow(QString& name, QWidget* parent) : QBoxLayout(QBoxLayout::LeftToRight, parent) {
+ setGroupName(name);
+ render();
+}
+
+KIconGroupRow::~KIconGroupRow() {
+ // Let's delete our icons
+ qDeleteAll(m_icons.begin(), m_icons.end());
+ m_icons.clear();
+}
+
+const KIconGroupItem* KIconGroupRow::appendIcon( const QIcon& icon, const QString& label ) {
+ KIconGroupItem* item = new KIconGroupItem(parentWidget(),icon,label);
+ item->setParent(parentWidget());
+
+ m_icons.append(item);
+
+ return item;
+}
+
+void KIconGroupRow::render() {
+}
+
+
+/*********** KIconGroupItem **************/
+KIconGroupItem::KIconGroupItem(QWidget* parent,
+ const QIcon& icon,
+ const QString& label) : QLabel(parent) {
+ m_parent = parent;
+ m_icon = icon;
+ m_text = label; // Lets keep our own copy...
+
+ render();
+}
+
+void KIconGroupItem::render() {
+ QStyle *stl = 0;
+
+ // If there's no parent, we've got no style, can't draw an icon.
+ if (!m_parent) {
+ return;
+ }
+
+ setPixmap(static_cast<const QPixmap&>(m_icon.pixmap(m_parent->style()->pixelMetric(QStyle::PM_IconViewIconSize))));
+ setText(m_text);
+}
+
+void KIconGroupItem::setParent(QWidget* parent) {
+ m_parent = parent;
+
+ render();
+}
+
+void KIconGroupItem::setIcon(const QIcon& icon) {
+ m_icon = icon;
+
+ render();
+}
+
+void KIconGroupItem::setLabel(const QString& label) {
+ m_text = label;
+
+ render();
+}
+
+#include "kicongrouppage.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/kicongrouppage.h Mon May 23 15:58:18 2011
@@ -0,0 +1,258 @@
+/*
+ kicongrouppage.h
+
+ Copyright (c) 2007 Michael D. Stemle, Jr. <manchicken(a)notsosoft.net>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+*/
+
+#ifndef KICONGROUPPAGE_H
+
+#define KICONGROUPPAGE_H
+
+#include <QObject>
+#include <QList>
+#include <QMap>
+#include <QBoxLayout>
+#include <QIcon>
+#include <QLabel>
+#include <kicon.h>
+
+class KIconGroupPage;
+class KIconGroupRow;
+class KIconGroupItem;
+
+/* DESIGN
+ VBox contains two rows: title and HBOX (maybe a third for a line?
+ HBOX contains columns of VBOXes
+ Those VBoxes contain two rows: icon and title
+
+ +---------------Box-----------------+
+ | |
+ | +-------------Box---------------+ |
+ | | | |
+ | | +-----------Box-------------+ | |
+ | | | | | |
+ | | | +--QLabel--+ +--QLabel--+ | | |
+ | | | | | | | | | |
+ | | | | ICON | | ICON | | | |
+ | | | | LABEL | | LABEL | | | |
+ | | | | | | | | | |
+ | | | +----------+ +----------+ | | |
+ | | | | | |
+ | | +---------------------------+ | |
+ | | | |
+ | +-------------------------------+ |
+ | |
+ +-----------------------------------+
+
+
+ */
+
+
+/**
+ * A page of group icons
+ **/
+class KIconGroupPage : public QFrame {
+ Q_OBJECT;
+
+ /**
+ * Property for the page name
+ **/
+ Q_PROPERTY(QString m_pageName READ pageName WRITE setPageName);
+
+ public:
+
+ /**
+ * Constructor for KIconGroupPage
+ *
+ * @param parent The parent widget for the page..
+ **/
+ explicit KIconGroupPage(QWidget* parent = 0);
+
+ ~KIconGroupPage();
+
+ /**
+ * Append a group to the page
+ *
+ * @param title The title of the group
+ * @returns A constant pointer to the group that was added.
+ **/
+ void appendGroup(QString name);
+
+ /**
+ * Append an icon to a group
+ *
+ * @param group The group name to append the icon to
+ * @param icon The icon to use
+ * @param label The label to use with the icon
+ * @returns A constant pointer to the item that was added.
+ **/
+ const KIconGroupItem* appendIconToGroup(const QString& name,
+ const QIcon& icon,
+ const QString& label);
+
+ /**
+ * Set the page name
+ *
+ * @param name The name to assign.
+ **/
+ void setPageName(QString name) { m_pageName = name; };
+
+ /**
+ * Get the page name
+ *
+ * @return Returns the page name
+ **/
+ QString pageName() const { return m_pageName; };
+
+ private:
+ void render();
+
+ // Internal values
+ QString m_pageName;
+ QMap<QString, KIconGroupRow*> m_rows;
+ QBoxLayout* m_layout;
+};
+
+
+/**
+ * The row of icon groups
+ **/
+class KIconGroupRow : public QBoxLayout {
+ Q_OBJECT;
+
+ /**
+ * Property for the icon group name
+ **/
+ Q_PROPERTY(QString m_groupName READ groupName WRITE setGroupName);
+
+ public:
+
+ /**
+ * Constructor for KIconGroupRow
+ *
+ * @param parent The parent to stick the KIconGroupRow widget into.
+ **/
+ explicit KIconGroupRow(QWidget* parent = 0);
+
+ /**
+ * Constructor for KIconGroupRow
+ *
+ * @param parent The parent to stick the KIconGroupRow widget into.
+ * @param name The name for the icon group row.
+ **/
+ explicit KIconGroupRow(QString& name, QWidget* parent = 0);
+
+ /**
+ * Deconstructor
+ **/
+ ~KIconGroupRow();
+
+ /**
+ * Append an icon
+ *
+ * @param icon The icon to add
+ * @param label The label to add
+ * @returns A constant pointer to the item that was just added.
+ **/
+ const KIconGroupItem* appendIcon( const QIcon& icon, const QString& label );
+
+ /**
+ * Set the group name
+ *
+ * @param name The name to assign
+ **/
+ void setGroupName(QString name) { m_groupName = name; };
+
+ /**
+ * Get the group name
+ *
+ * @return The group name.
+ **/
+ QString groupName() const { return m_groupName; };
+
+ private:
+ void render();
+
+ QString m_groupName;
+ QList<KIconGroupItem*> m_icons;
+};
+
+
+/**
+ * KIconGroupItem
+ *
+ * @notes This is the low-level icon class for the icon groups.
+ **/
+class KIconGroupItem : public QLabel {
+ Q_OBJECT;
+
+ public:
+
+ /**
+ * A single icon in the group.
+ * @param parent The parent widget
+ * @param icon The icon to display
+ * @param label The label to display for the icon.
+ **/
+ explicit KIconGroupItem(QWidget* parent, const QIcon& icon, const QString& label);
+
+ /**
+ * Set the parent widget
+ *
+ * @param parent The parent widget to set
+ **/
+ void setParent(QWidget* parent);
+
+ /**
+ * Set the icon
+ *
+ * @param icon The icon to add to the group item
+ **/
+ void setIcon(const QIcon& icon);
+
+ /**
+ * Get the icon
+ *
+ * @return Returns the currently set icon object
+ **/
+ const QIcon& icon() { return m_icon; };
+
+ /**
+ * Set the label
+ *
+ * @param label The label to set
+ **/
+ void setLabel(const QString& label);
+
+ /**
+ * Fetch the label
+ **/
+ const QString& label() { return m_text; };
+
+ protected:
+ void render();
+
+ private:
+ Q_DISABLE_COPY(KIconGroupItem);
+ QWidget* m_parent;
+ QIcon m_icon;
+ QString m_text;
+};
+
+#endif // KICONGROUPPAGE_H
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/listview.h Mon May 23 15:58:18 2011
@@ -0,0 +1,13 @@
+#include <QtGui>
+
+class ListView : public QListView
+{
+public:
+ ListView() : QListView() { mySize = QSize(42,42); }
+
+ QSize sizeHint() const { return mySize; }
+ void setSizeHint( QSize s ) { mySize = s; }
+
+private:
+ QSize mySize;
+};
Modified: branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp (original)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/main.cpp Mon May 23 15:58:18 2011
@@ -1,30 +1,7 @@
-/***************************************************************************
- main.cpp - description
- -------------------
- begin : Mit Okt 18 14:21:09 CEST 2000
- copyright : (C) 2000 by SuSE GmbH
- author : lnussel(a)suse.de
- ***************************************************************************/
-
-/*
- Textdomain "control-center"
-*/
-
-#include <qapplication.h>
-#include <qtimer.h>
-#include <qfont.h>
-#include <qstring.h>
-
-#include <unistd.h>
-
-// for MAXHOSTNAMELEN
-#include <rpc/types.h>
-
-// exit
-#include <stdlib.h>
-
-// strcmp
-#include <string.h>
+#include <QApplication>
+#include <QDesktopWidget>
+#include <QRect>
+#include <QTimer>
#include <iostream>
@@ -32,13 +9,8 @@
using std::cerr;
using std::endl;
-#include "myintl.h"
-#include "y2controlcenter.h"
-#include "y2cc_config.h"
-
-
-//global class with config options
-Config config;
+#include "main_window.h"
+#include "i18n.h"
void printhelpandexit()
{
@@ -48,21 +20,19 @@
<< "\nOPTIONS:"
<< "\n"
<< "\n --help -h this message"
- << "\n --root -r also show \"root only\" modules"
<< "\n --fullscreen use full screen"
<< "\n --noborder no window manager border for main window"
<< endl;
exit (0);
}
-int main( int argc, char *argv[] )
+int main(int argc, char **argv)
{
- // cerr << time(0) << " main()" << endl;
- config.textdomain = "control-center";
-
- set_textdomain (config.textdomain);
+ QApplication app(argc, argv);
+ set_textdomain("control-center");
- QApplication app( argc, argv );
+ bool fullscreen = false;
+ bool noborder = false;
for ( int i=0 ;i < argc ;i++ )
{
@@ -73,51 +43,35 @@
if ( opt.startsWith( "--" ) )
opt.remove(0, 1);
- if ( opt == "-h" || opt == "-help" ) printhelpandexit();
- else if ( opt == "-r" || opt == "-root" ) config.isroot = true;
-
- else if ( opt == "-fullscreen" ) config.fullscreen = true;
- else if ( opt == "-noborder" ) config.noBorder = true;
+ if ( opt == "-h" || opt == "-help" )
+ printhelpandexit();
+ else if ( opt == "-fullscreen" )
+ fullscreen = true;
+ else if ( opt == "-noborder" )
+ noborder = true;
}
+
+ Qt::WFlags wflags = Qt::Window;
- // cout << (config.isroot.value()==true?"true":"false") << endl;
-
- Qt::WFlags wflags = Qt::WType_TopLevel;
+ if ( noborder )
+ wflags |= Qt::FramelessWindowHint;
- if ( config.noBorder )
- wflags |= Qt::WStyle_Customize | Qt::WStyle_NoBorder;
+ MainWindow mainWin ( wflags );
- Y2ControlCenter y2cc( wflags );
+ mainWin.setFullScreen ( fullscreen );
+ mainWin.setNoBorder( noborder );
- if ( config.fullscreen )
+ if ( fullscreen )
{
QRect available = app.desktop()->availableGeometry();
- y2cc.resize( available.width(), available.height() );
- y2cc.move( available.topLeft() );
+ mainWin.resize( available.width(), available.height() );
+ mainWin.move( available.topLeft() );
}
- else
- y2cc.resize( 680, 420 );
- app.setMainWidget( &y2cc );
-
-
- QString title = _("YaST2 Control Center");
- char hostname[ MAXHOSTNAMELEN+1 ];
- if ( gethostname( hostname, sizeof( hostname )-1 ) == 0 )
- {
- hostname[ sizeof( hostname ) -1 ] = '\0'; // make sure it's terminated
-
- if ( strlen( hostname ) > 0 && strcmp( hostname, "(none)" ) != 0 )
- {
- title += " @ ";
- title += hostname;
- }
- }
- y2cc.setCaption( title );
- y2cc.show();
-
- QTimer::singleShot( 0, &y2cc, SLOT( configure() ) );
+ mainWin.show();
+ QTimer::singleShot(60, &mainWin, SLOT( initialMsg() ));
+
return app.exec();
-}
+}
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,420 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include "main_window.h"
+#include "i18n.h"
+
+#include <unistd.h>
+#include <rpc/types.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include <QApplication>
+#include <QLayout>
+#include <QLabel>
+#include <QToolBar>
+#include <QLineEdit>
+#include <QDockWidget>
+#include <QListView>
+#include <QDebug>
+#include <QQueue>
+#include <QSettings>
+#include <QStatusBar>
+#include <QTimer>
+#include <QMessageBox>
+
+#include "kcategorizedsortfilterproxymodel.h"
+#include "kcategorizedview.h"
+#include "kcategorydrawer.h"
+#include "yqmodulesproxymodel.h"
+
+#include "yqmodulesmodel.h"
+#include "yqmodulegroupsmodel.h"
+#include "listview.h"
+
+//#include "moduleiconitem.h"
+#define ORG_NAME "YaST2"
+#define APP_NAME "y2controlcenter-qt"
+#define USED_QUEUE_SIZE 5
+
+#define GROUPSIZE QSize(200,350)
+
+
+/*
+ Textdomain "control-center"
+*/
+
+class MainWindow::Private
+{
+public:
+ Private()
+ : modmodel(0L)
+ , groupview(0L)
+ , modview(0L)
+ , kcsfpm(0L)
+ , gcsfpm(0L)
+ , lastCallTime(0)
+ , minwait(5)
+ {
+ }
+ ~Private()
+ {
+ }
+
+ YQModulesModel *modmodel;
+ ListView *groupview;
+ KCategorizedView * modview;
+ // category proxy model
+ KCategorizedSortFilterProxyModel * kcsfpm;
+ QSortFilterProxyModel *gcsfpm;
+
+ QLineEdit *searchField;
+
+ QQueue <QString> recentlyUsed;
+
+ QModelIndex lastCalledIndex;
+ time_t lastCallTime;
+ time_t minwait;
+
+ bool noBorder;
+ bool fullScreen;
+
+};
+
+MainWindow::MainWindow( Qt::WindowFlags wflags )
+ : QMainWindow( 0, wflags )
+ , d(new Private)
+{
+ qDebug();
+
+ // Central widget
+ QWidget *centralWidget = new QWidget(this);
+ setCentralWidget(centralWidget);
+ QHBoxLayout *layout = new QHBoxLayout;
+ centralWidget->setLayout(layout);
+
+ // setup central widget
+ d->modview = new KCategorizedView( this );
+ KCategoryDrawer * drawer = new KCategoryDrawer;
+
+ layout->addWidget(d->modview);
+
+ d->modview->setSelectionMode(QAbstractItemView::SingleSelection);
+// tv->setSpacing(KDialog::spacingHint());
+ d->modview->setCategoryDrawer( drawer );
+ d->modview->setViewMode( QListView::IconMode );
+ d->modview->setItemDelegate( new ModuleIconItemDelegate( this , d->modview->style() ) );
+ d->modview->setMouseTracking( true );
+ d->modview->viewport()->setAttribute( Qt::WA_Hover );
+
+ // init the models
+ d->modmodel = new YQModulesModel(this);
+ d->kcsfpm = new YQModulesProxyModel( this );
+ d->kcsfpm->setCategorizedModel( true );
+ d->kcsfpm->setSourceModel( d->modmodel) ;
+
+ //kcsfpm->setFilterRole( KCModuleModel::UserFilterRole );
+ //kcsfpm->setFilterCaseSensitivity( Qt::CaseInsensitive );
+ d->kcsfpm->sort( 0 );
+ d->modview->setModel( d->kcsfpm );
+
+ // Setup Dock Widget with groups and search field
+ QDockWidget *groupdock = new QDockWidget(this);
+ groupdock->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ QWidget *leftPanel = new QWidget( this );
+ QVBoxLayout *leftPanelLayout = new QVBoxLayout( leftPanel );
+
+ QHBoxLayout *searchLayout = new QHBoxLayout();
+ QLabel *searchLabel = new QLabel();
+ d->searchField = new QLineEdit();
+ searchLabel->setText( _("&Search") );
+ searchLabel->setBuddy( d->searchField );
+ searchLayout->addWidget(searchLabel);
+ searchLayout->addWidget(d->searchField);
+
+ leftPanelLayout->addLayout( searchLayout );
+
+ d->gcsfpm = new QSortFilterProxyModel( this );
+ d->gcsfpm->setSourceModel( d->modmodel->groupsModel() );
+ d->gcsfpm->setFilterKeyColumn( 2 );
+ d->gcsfpm->setFilterRole( Qt::UserRole );
+
+ d->groupview = new ListView( );
+
+ d->groupview->setModel(d->gcsfpm);
+ d->groupview->setIconSize( QSize(32,32) );
+ d->groupview->setSizeHint( readGroupViewSize() );
+
+ //now pre-select something
+ d->groupview->setSelectionMode( QAbstractItemView::SingleSelection );
+ QModelIndex selection = d->groupview->model()->index(0,0);
+ d->groupview->setCurrentIndex( selection );
+ d->modview->selectCategory( d->modmodel->groupsModel()->data(selection).toString() );
+
+ leftPanelLayout->addWidget( d->groupview );
+
+ groupdock->setWidget( leftPanel );
+
+ addDockWidget(Qt::LeftDockWidgetArea, groupdock);
+
+ readSettings();
+
+ initActions();
+ addAction( shutdown );
+ addAction( saveLogs );
+ //d->modview->addAction( addToF );
+ //d->modview->setContextMenuPolicy( Qt::ActionsContextMenu );
+
+ logSaver = new YQSaveLogs();
+
+ setWinTitle();
+ statusBar()->showMessage( _("Ready") );
+
+ connect( d->groupview, SIGNAL( pressed( const QModelIndex & ) ),
+ SLOT( slotGroupPressed( const QModelIndex & ) ) );
+
+ connect( d->modview, SIGNAL( leftMouseClick ( const QModelIndex &) ),
+ SLOT( slotLaunchModule( const QModelIndex & ) ) );
+
+ connect( d->modview, SIGNAL( activated( const QModelIndex & ) ),
+ SLOT( slotLaunchModule( const QModelIndex & ) ) );
+
+ connect( d->searchField, SIGNAL( textChanged( const QString &)),
+ SLOT( slotFilterChanged() ));
+
+ connect( shutdown, SIGNAL( activated()), qApp, SLOT( quit()));
+
+ connect( saveLogs, SIGNAL( activated()), logSaver, SLOT( save() ));
+
+ connect( logSaver, SIGNAL( statusMsg( const QString &)), statusBar(),
+ SLOT( showMessage( const QString &) ));
+
+
+// d->groupview->setSizeHint(500,500);
+}
+
+void MainWindow::setFullScreen( bool fs )
+{
+ d->fullScreen = fs;
+}
+
+void MainWindow::setNoBorder( bool nb )
+{
+ d->noBorder = nb ;
+}
+
+void MainWindow::initActions()
+{
+ //addToF = new QAction( "Add to Favourites", this );
+ shutdown = new QAction( this );
+ shutdown->setShortcut( Qt::CTRL + Qt::Key_Q );
+
+ saveLogs = new QAction( this );
+ saveLogs->setShortcut( Qt::SHIFT + Qt::Key_F8);
+}
+
+void MainWindow::slotGroupPressed( const QModelIndex &index )
+{
+ qDebug() << "Group Click";
+ // scroll to the category in the main view
+ QModelIndex modidx = d->modmodel->firstModuleInGroup(index);
+ qDebug() << "Scroll to :" << d->modmodel->groupsModel()->data(index).toString();
+ qDebug() << " 1st item :" << d->modmodel->data(modidx).toString();
+ if ( modidx.isValid() )
+ {
+ d->modview->selectCategory( d->modmodel->groupsModel()->data(index).toString() );
+ d->modview->scrollTo(d->kcsfpm->mapFromSource(modidx));
+ }
+}
+
+void MainWindow::slotModulePressed( const QModelIndex &index )
+{
+ // map the categorized index to the modules model index
+ QModelIndex srcidx = d->kcsfpm->mapToSource(index);
+ if ( ! srcidx.isValid() )
+ return;
+
+ qDebug() << "Module Click:" << d->modmodel->data(srcidx).toString();
+ qDebug() << "-> " << srcidx.row() << " : " << d->modmodel->propertyValue(srcidx, "GenericName").toString();
+}
+
+void MainWindow::slotLaunchModule( const QModelIndex &index)
+{
+ if ( index == d->lastCalledIndex )
+ {
+ time_t now = time( NULL );
+
+ // ignore accidential double clicks
+
+ if ( now >= d->lastCallTime && // make sure we not going backward in time
+ // (system time or time zone changed by
+ // some YaST2 module - see bug #71816)
+ now - d->lastCallTime < d->minwait ) // elapsed time too short?
+ {
+ qDebug() << "Ignoring 2nd click, clicking too fast" ;
+ return; // ignore this click
+ }
+ }
+
+ d->lastCallTime = time( NULL );
+ d->lastCalledIndex = index;
+
+ QModelIndex i1 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Call );
+ QModelIndex i2 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Argument );
+ QModelIndex i3 = d->modmodel->index( d->kcsfpm->mapToSource( index ).row(), YQDesktopFilesModel::Name );
+
+ if ( !i1.isValid() || !i2.isValid())
+ return;
+
+ QString client = d->modmodel->data( i1, Qt::UserRole ).toString();
+ QString argument = d->modmodel->data( i2, Qt::UserRole ).toString();
+ QString name = d->modmodel->data( i3, Qt::UserRole ).toString();
+
+ QString cmd = QString("/sbin/yast2 ");
+ cmd += client;
+
+ if ( d->noBorder )
+ cmd += " --noborder ";
+ if ( d->fullScreen )
+ cmd += " --fullscreen ";
+
+ if (!argument.isEmpty() )
+ {
+ cmd +=" '";
+ cmd += argument;
+ cmd +="'";
+ }
+ cmd += " &";
+
+ //FIXME: use something more intelligent (unique) to remember used modules, names suck
+ d->recentlyUsed.enqueue( name );
+ if( d->recentlyUsed.size() == USED_QUEUE_SIZE )
+ {
+ d->recentlyUsed.dequeue();
+ }
+
+ QApplication::setOverrideCursor(Qt::WaitCursor);
+
+ qDebug() << "Run command: " << cmd.toAscii();
+ //Translators: module name comes here (%1) e.g. HTTP server, Scanner,...
+ QString msg = _("Starting configuration module \"%1\"...").arg( name );
+ statusBar()->showMessage( msg, 2000 );
+
+ system( cmd.toAscii() );
+
+ QTimer::singleShot( 3*1000, this, SLOT( slotRestoreCursor() ) );
+}
+
+void MainWindow::slotFilterChanged()
+{
+ QString stext = d->searchField->text();
+ d->kcsfpm->customFilterFunction( stext );
+
+ QString gr_filter = d->kcsfpm->matchingGroupFilterRegexp();
+ d->gcsfpm->setFilterRegExp ( gr_filter );
+}
+
+void MainWindow::initialMsg()
+{
+ if ( !d->modmodel->isRoot() )
+ QMessageBox::information(this, _("YaST Control Center"),
+ _("YaST Control Center is not running as root.\n"
+ "You will only see modules which do not require root privileges."));
+}
+
+void MainWindow::slotRestoreCursor()
+{
+ QApplication::restoreOverrideCursor();
+}
+
+void MainWindow::readSettings()
+{
+ QSettings settings(ORG_NAME, APP_NAME);
+
+ settings.beginGroup("MainWindow");
+ resize(settings.value("Size", QSize(680,420)).toSize());
+ move(settings.value("Position", QPoint(200,200)).toPoint());
+ settings.endGroup();
+
+ settings.beginGroup("PersonalItems");
+ QString used = settings.value("RecentlyUsed").toString();
+ QStringList used_list = used.split(",", QString::SkipEmptyParts);
+ foreach( QString f, used_list )
+ {
+ d->recentlyUsed.enqueue( f );
+ }
+ settings.endGroup();
+
+}
+
+QSize MainWindow::readGroupViewSize()
+{
+ QSettings settings(ORG_NAME, APP_NAME);
+ QSize size;
+
+ settings.beginGroup("GroupView");
+ size = settings.value("Size", GROUPSIZE).toSize();
+ settings.endGroup();
+
+ return size;
+}
+
+
+void MainWindow::writeSettings()
+{
+ QSettings settings(ORG_NAME, APP_NAME);
+
+ settings.beginGroup("MainWindow");
+ settings.setValue("Size", size());
+ settings.setValue("Position", pos());
+ settings.endGroup();
+
+ settings.beginGroup( "PersonalItems" );
+ QStringList used_list( d->recentlyUsed );
+ settings.setValue( "RecentlyUsed", used_list.join(",") );
+ settings.endGroup();
+
+ settings.beginGroup("GroupView");
+ settings.setValue("Size", d->groupview->size());
+ settings.endGroup();
+
+}
+
+void MainWindow::setWinTitle()
+{
+ QString title = _("YaST Control Center");
+ char hostname[ MAXHOSTNAMELEN+1 ];
+ if ( gethostname( hostname, sizeof( hostname )-1 ) == 0 )
+ {
+ hostname[ sizeof( hostname ) -1 ] = '\0'; // make sure it's terminated
+
+ if ( strlen( hostname ) > 0 && strcmp( hostname, "(none)" ) != 0 )
+ {
+ title += " @ ";
+ title += hostname;
+ }
+ }
+ setWindowTitle( title );
+}
+
+void MainWindow::closeEvent (QCloseEvent *event)
+{
+ writeSettings();
+ event->accept();
+}
+
+MainWindow::~MainWindow()
+{
+ delete d;
+ delete logSaver;
+}
+
+#include "main_window.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/main_window.h Mon May 23 15:58:18 2011
@@ -0,0 +1,71 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include "kcategorizedview.h"
+#include "kcategorydrawer.h"
+#include "moduleiconitem.h"
+#include "yqsavelogs.h"
+
+
+#include <QMainWindow>
+#include <QAction>
+#include <QCloseEvent>
+
+/**
+ * Main window of the control center
+ *
+ * @author Thomas Goettlicher <tgoettlicher(a)suse.de>
+ */
+class MainWindow : public QMainWindow
+{
+Q_OBJECT
+
+public:
+ MainWindow( Qt::WindowFlags wflags = Qt::Window );
+ ~MainWindow();
+
+ void setFullScreen( bool fs);
+ void setNoBorder( bool nb );
+
+protected slots:
+ void slotGroupPressed( const QModelIndex &index );
+ void slotModulePressed( const QModelIndex &index );
+ void slotLaunchModule( const QModelIndex &index );
+ void slotFilterChanged();
+ void initialMsg();
+ void slotRestoreCursor();
+
+protected:
+ void initActions();
+ void closeEvent( QCloseEvent *event);
+private:
+ class Private;
+ Private *const d;
+
+ QAction *addToF;
+ QAction *shutdown;
+ QAction *saveLogs;
+
+ YQSaveLogs *logSaver;
+
+ void writeSettings();
+ void readSettings();
+ void setWinTitle();
+ QSize readGroupViewSize();
+
+ QDockWidget *groupdock;
+
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,61 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "menuitem.h"
+#include <iostream>
+
+
+MenuItem::MenuItem( bool isMenu, MenuItem * itsParent )
+ : parent( itsParent ),
+ menu( isMenu ),
+ name( QString() ),
+ caption( QString() )
+
+{
+ if ( parent ) {
+ std::cout << "parent->children.append" << std::endl;
+ parent->children.append( this );
+ }
+}
+
+MenuItem::~MenuItem()
+{
+ qDeleteAll( children );
+}
+
+MenuItem * MenuItem::grandChildAt( int index )
+{
+ int count = 0;
+ MenuItem * foundItem = 0;
+ foreach ( MenuItem * child, children ) {
+ foreach ( MenuItem * grandChild, child->children ) {
+ if ( count == index ) {
+ foundItem = grandChild;
+ break;
+ }
+ count++;
+ }
+ if ( foundItem ) {
+ break;
+ }
+ }
+ return foundItem;
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/menuitem.h Mon May 23 15:58:18 2011
@@ -0,0 +1,41 @@
+/* This file is part of the KDE project
+ Copyright 2007 Will Stephenson <wstephenson(a)kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License or (at your option) version 3 or any later version
+ accepted by the membership of KDE e.V. (or its successor approved
+ by the membership of KDE e.V.), which shall act as a proxy
+ defined in Section 14 of version 3 of the license.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef KCMENUITEM_H
+#define KCMENUITEM_H
+
+#include <QList>
+#include <QString>
+
+/**
+ * A menu consists of menu items. An item is either another menu or a module.
+ */
+class MenuItem {
+public:
+ MenuItem( bool isMenu, MenuItem * parent );
+ ~MenuItem();
+ MenuItem * grandChildAt( int index );
+ MenuItem * parent;
+ QList< MenuItem * > children;
+ bool menu;
+ QString name;
+ QString caption;
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/models_test.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,35 @@
+#include <QApplication>
+#include <QListView>
+
+#include "yqdesktopfilesmodel.h"
+#include "yqmodulesmodel.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ QListView window;
+ YQDesktopFilesModel model(&window);
+ model.addIconPath("/usr/share/YaST2/theme/current/icons/32x32/apps");
+ model.addDesktopFilesPath("/usr/share/applications/YaST2/groups");
+
+ window.setModel(&model);
+ window.show();
+
+ //QListView window2;
+ //YQDesktopFilesModel model2("/usr/share/applications/YaST2", &window2);
+ //model2.addIconPath("/usr/share/YaST2/theme/current/icons/32x32/apps");
+ //model2.addIconPath("/usr/share/icons/hicolor/32x32/apps");
+
+ //window2.setModel(&model2);
+ //window2.show();
+
+ QListView window3;
+ YQModulesModel model3(&window3);
+
+ window3.setModel(&model3);
+ window3.show();
+
+
+ return app.exec();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,135 @@
+/**
+ * This file is part of the System Settings package
+ * Copyright (C) 2005 Benjamin C Meyer
+* <ben+systempreferences at meyerhome dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "moduleiconitem.h"
+#include "kcmoduleinfo.h"
+
+#include <climits>
+
+#include <qapplication.h>
+#include <qpainter.h>
+#include <iostream>
+
+#include <QDebug>
+
+
+#define IMAGE_SIZE 32
+#define ICON_WIDTH 100
+
+ModuleIconItemDelegate::ModuleIconItemDelegate(QObject *parent, const QStyle *style) :
+ QItemDelegate(parent)
+ , lviewstyle( style )
+{
+}
+
+void ModuleIconItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ painter->save();
+ painter->setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
+
+ QStyle *style;
+ bool selected = option.state & QStyle::State_Selected || option.state & QStyle::State_HasFocus;
+ bool mouseover = option.state & QStyle::State_MouseOver;
+ const QSize &decorationSize = option.decorationSize;
+
+ if (const QStyleOptionViewItemV3 *v3 = qstyleoption_cast<const QStyleOptionViewItemV3 *>(&option)) {
+ style = v3->widget->style();
+ if (!v3->widget->hasFocus()) selected = false;
+ } else {
+ style = QApplication::style();
+ }
+
+ QFont f = painter->font();
+ if (selected || mouseover)
+ {
+ if (selected)
+ {
+ painter->fillPath(roundedRectangle(option.rect, 10), option.palette.brush(QPalette::Highlight));
+ painter->setPen(option.palette.color(QPalette::HighlightedText));
+ }
+ else
+ {
+ QColor hover = option.palette.color(QPalette::Highlight);
+ hover.setAlpha(88);
+ painter->fillPath(roundedRectangle(option.rect, 10), hover);
+ painter->setPen( option.palette.color( QPalette::WindowText ) );
+ }
+ QFont newFont = option.font;
+ newFont.setPointSize( option.font.pointSize() - 2);
+ QFontMetrics newFm = QFontMetrics( newFont );
+
+ QString descr = newFm.elidedText( index.data( YQModulesModel::GenericNameRole ).toString(), Qt::ElideRight, option.rect.width() );
+ QRect tr = option.rect;
+ tr.setTop( tr.top() + decorationSize.height() + 2*style->pixelMetric( QStyle::PM_FocusFrameVMargin) );
+ tr.setLeft( tr.left() + 2*style->pixelMetric( QStyle::PM_FocusFrameHMargin ));
+
+ painter->setFont( newFont);
+ painter->drawText( tr, Qt::AlignLeft | Qt::TextSingleLine, descr );
+
+ }
+ painter->setFont( f );
+
+ QIcon::Mode iconMode = QIcon::Normal;
+ if (selected) iconMode = QIcon::Selected;
+ const QPixmap &pixmap = qvariant_cast<QIcon>(index.data(Qt::DecorationRole)).pixmap(option.decorationSize, iconMode);
+ int iconX = option.rect.left() + style->pixelMetric( QStyle::PM_FocusFrameHMargin );
+ int iconY = option.rect.top() + style->pixelMetric( QStyle::PM_FocusFrameVMargin );
+ painter->drawPixmap(iconX, iconY, decorationSize.width(), decorationSize.height(), pixmap);
+
+ QRect textRectangle = option.rect;
+ textRectangle.setLeft (textRectangle.left() + decorationSize.width() + 2*style->pixelMetric(QStyle::PM_FocusFrameHMargin));
+ textRectangle.setHeight( decorationSize.height() + 2*style->pixelMetric(QStyle::PM_FocusFrameVMargin));
+ painter->drawText(textRectangle, Qt::AlignLeft | Qt::AlignVCenter | Qt::TextWordWrap, index.data(Qt::DisplayRole).toString());
+ painter->restore();
+}
+
+QSize ModuleIconItemDelegate::sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const
+{
+ QString text = index.data( Qt::DisplayRole).toString();
+ QVariant v = index.data(Qt::FontRole);
+ QFont f = qvariant_cast<QFont>(v);
+ QFontMetrics fm( f );
+
+ QSize s = QItemDelegate::sizeHint( option, index );
+ int w = 2*lviewstyle->pixelMetric( QStyle::PM_FocusFrameHMargin ) + 2*lviewstyle->pixelMetric( QStyle::PM_ListViewIconSize ) + 8 + fm.boundingRect( text ).width();
+
+ return QSize( w, s.height());
+}
+
+// Method taken from KFileItemDelegate. Check whether it has been moved to
+// kdefx/kdrawutil.cpp as the comment says on Fredrik's code. If so, remove
+// this code (duplication), and use the library one.
+QPainterPath ModuleIconItemDelegate::roundedRectangle(const QRectF &rect, qreal radius) const
+{
+ QPainterPath path(QPointF(rect.left(), rect.top() + radius));
+ path.quadTo(rect.left(), rect.top(), rect.left() + radius, rect.top()); // Top left corner
+ path.lineTo(rect.right() - radius, rect.top()); // Top side
+ path.quadTo(rect.right(), rect.top(), rect.right(), rect.top() + radius); // Top right corner
+ path.lineTo(rect.right(), rect.bottom() - radius); // Right side
+ path.quadTo(rect.right(), rect.bottom(), rect.right() - radius, rect.bottom()); // Bottom right corner
+ path.lineTo(rect.left() + radius, rect.bottom()); // Bottom side
+ path.quadTo(rect.left(), rect.bottom(), rect.left(), rect.bottom() - radius); // Bottom left corner
+ path.closeSubpath();
+
+ return path;
+}
+
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/moduleiconitem.h Mon May 23 15:58:18 2011
@@ -0,0 +1,79 @@
+/**
+ * This file is part of the System Settings package
+ * Copyright (C) 2005 Benjamin C Meyer
+ * <ben+systempreferences at meyerhome dot net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef MODULEICONITEM_H
+#define MODULEICONITEM_H
+
+#include <QItemDelegate>
+#include <QListWidgetItem>
+#include <QList>
+#include <QPainterPath>
+#include <QRectF>
+
+#include "yqmodulesmodel.h"
+
+class KCModuleInfo;
+
+class ModuleIconItemDelegate : public QItemDelegate
+{
+ public:
+ ModuleIconItemDelegate(QObject *parent, const QStyle *style);
+
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ virtual QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;
+
+ private:
+ const QStyle *lviewstyle;
+
+ // Method taken from KFileItemDelegate. Check whether it has been moved to
+ // kdefx/kdrawutil.cpp as the comment says on Fredrik's code. If so, remove
+ // this code (duplication), and use the library one.
+ QPainterPath roundedRectangle(const QRectF &rect, qreal radius) const;
+};
+
+/**
+ * Stores information about what modules goes with this item.
+ * Also provides means of loading the enabled/disabled image (see kcmsearch).
+ */
+class ModuleIconItem : public QListWidgetItem
+{
+
+public:
+ ModuleIconItem( QListWidget *parent, const KCModuleInfo& module );
+
+ ModuleIconItem( QListWidget *parent, const QString &text, const QString &imageName );
+
+ /**
+ * Update the icon to either be enabled or not.
+ */
+ void loadIcon( bool enabled = true );
+
+ // The modules that go with this item
+ QList<KCModuleInfo> modules;
+
+private:
+ void setSize();
+
+ QString imageName;
+};
+
+#endif // MODULEICONITEM_H
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,84 @@
+
+#include <QTemporaryFile>
+#include <QProcess>
+#include <QDebug>
+
+#include "yccmoduleinfoprovider.h"
+
+YCCModuleInfoProvider::YCCModuleInfoProvider()
+{
+}
+
+YCCModuleInfoProvider::~YCCModuleInfoProvider()
+{
+}
+
+//if defined $X-SuSE-YaST-AutoInst && $X-SuSE-YaST-AutoInst != none
+// X-SuSE-YaST-AutoInst=all
+QString YCCModuleInfoProvider::provideInfo( const YQModulesModel *model, const QModelIndex &module ) const
+{
+///sbin/yast2 get_status foo_auto /tmp/status
+ QString ret;
+
+ QString autoinst = model->propertyValue( module, "X-SuSE-YaST-AutoInst" ).toString();
+ if ( ! autoinst.isEmpty() && ( autoinst != "none" ) )
+ {
+ //QTemporaryFile file;
+
+ //if ( ! file.open() )
+ //{
+ // qDebug() << "Can't create temporary file";
+ // return QString();
+ //}
+
+ QStringList arguments;
+ QString modcall = model->propertyValue( module, "X-SuSE-YaST-Call" ).toString();
+ if ( ! modcall.isEmpty() )
+ {
+ QProcess yast2;
+ QString autoinstclient = model->propertyValue( module, "X-SuSE-YaST-AutoInstClient" ).toString();
+ if ( autoinstclient.isEmpty() )
+ {
+ autoinstclient = modcall + "_auto";
+ }
+
+ QStringList args;
+ //args << (autoinstclient) << file.fileName();
+ args << "get_status" << (autoinstclient) << "/tmp/ycc_status";
+ qDebug() << "Executing yast2 " << args;
+
+ yast2.start("/sbin/yast2", args );
+
+ if ( ! yast2.waitForFinished() )
+ {
+ qDebug() << "bad yast2 exit";
+ return QString();
+ }
+
+ //QFile data(file.fileName());
+ QFile data("/tmp/ycc_status");
+ if ( data.open( QIODevice::ReadOnly ) )
+ {
+ QTextStream in(&data);
+ while (!in.atEnd())
+ {
+ QString line = in.readLine();
+ ret += line;
+ }
+ }
+ else
+ qDebug() << "can't read from temporary file" << ret;
+ }
+ else
+ {
+ qDebug() << "no info to call";
+ }
+
+ }
+ else
+ {
+ qDebug() << "no info to call";
+ }
+ return ret;
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yccmoduleinfoprovider.h Mon May 23 15:58:18 2011
@@ -0,0 +1,18 @@
+
+#ifndef YCCModuleInfoProvider_H
+#define YCCModuleInfoProvider_H
+
+#include "yqmodulesmodel.h"
+
+class YCCModuleInfoProvider
+{
+public:
+ YCCModuleInfoProvider();
+ ~YCCModuleInfoProvider();
+
+ QString provideInfo( const YQModulesModel *model, const QModelIndex &module ) const;
+
+private:
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,377 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include <QSettings>
+#include <QDir>
+#include <QIcon>
+#include <QMap>
+#include <libintl.h>
+
+#include "yqdesktopfilesmodel.h"
+
+#define DESKTOP_TRANSLATIONS "desktop_translations"
+
+YQDesktopFilesModel::YQDesktopFilesModel( QObject * parent )
+ : QAbstractItemModel(parent)
+ , d(new Private)
+{
+ connect(&d->watcher, SIGNAL(directoryChanged(const QString &)),
+ SLOT(slotDesktopFilesDirectoryChanged( const QString & ) ) );
+
+ bindtextdomain( DESKTOP_TRANSLATIONS, DESKTOP_TRANSLATIONS_DIR );
+ bind_textdomain_codeset( DESKTOP_TRANSLATIONS, "utf8" );
+
+}
+
+YQDesktopFilesModel::~YQDesktopFilesModel()
+{
+ delete d;
+}
+
+QModelIndex YQDesktopFilesModel::indexForValue( const QString &key, const QVariant &value ) const
+{
+ PropertyMapCacheIterator it(d->cache);
+ //qDebug() << "cache has "<< cache.size() << " entries";
+
+ while ( it.hasNext() )
+ {
+ it.next();
+ // filename is the key of the iterator
+ //QString filename = it.key();
+ PropertyMap data(it.value());
+ if ( data.contains(key) && ( data.value(key) == value ) )
+ {
+ // we found a match, lets figure out the position of
+ // the file in the list
+ int pos = d->desktop_files.indexOf(it.key());
+ if ( pos != -1 )
+ return index(pos, 0);
+ }
+ }
+
+// qWarning() << "No index for key: " << key << " value: " << value.toString();
+ return QModelIndex();
+}
+
+void YQDesktopFilesModel::addDesktopFilesPath( const QString &dir )
+{
+ d->desktop_dirs << dir;
+ d->watcher.addPath(dir);
+ readDesktopFilesDirectories();
+ readDesktopFiles();
+}
+
+void YQDesktopFilesModel::addIconPath( const QString &dir )
+{
+ d->icon_dirs << dir;
+}
+
+void YQDesktopFilesModel::slotDesktopFilesDirectoryChanged( const QString &path )
+{
+ //emit dataChanged();
+ //reset();
+}
+
+/**
+ * read a YaST group .desktop file
+ */
+PropertyMap YQDesktopFilesModel::readDesktopFile( const QString &filename )
+{
+ // desktop file data
+ PropertyMap data;
+
+ QSettings desktopFile( filename, QSettings::IniFormat );
+
+ // check if parsing was correct
+ if ( desktopFile.status() != QSettings::NoError )
+ {
+ qWarning() << "Error reading desktop file " << filename;
+ return data;
+ }
+
+ desktopFile.beginGroup( "Desktop Entry" );
+
+ QStringList keys(desktopFile.allKeys());
+ QStringListIterator keyit(keys);
+ while (keyit.hasNext())
+ {
+ QString key(keyit.next());
+ data.insert(key, desktopFile.value(key));
+ }
+
+ qDebug() << filename << " read with " << data.size() << " keys";
+
+ return data;
+}
+
+void YQDesktopFilesModel::readDesktopFiles()
+{
+ //local copy
+ QStringList desktop_files = d->desktop_files;
+ d->cache.clear();
+
+ QStringListIterator it(desktop_files);
+
+ int count = 0;
+ int success = 0;
+
+ while ( it.hasNext() )
+ {
+ QString filename = it.next();
+ // first lookup in cache
+ PropertyMap data;
+
+ data = readDesktopFile(filename);
+ if ( ! data.empty() )
+ {
+ d->cache.insert(filename, data);
+ qDebug() << filename << " has index " << count;
+ success++;
+ }
+ // readDesktopFiles returned empty map - skip those
+ else
+ {
+ qDebug() << "Skipping " << filename << ", read returned no reasonable data";
+ d->desktop_files.removeAll( filename );
+ }
+ count++;
+ }
+ qDebug() << success << " desktop files read";
+}
+
+void YQDesktopFilesModel::readDesktopFilesDirectories()
+{
+ //d->desktop_dirs.clear();
+ d->desktop_files.clear();
+
+ QStringListIterator dirs(d->desktop_dirs);
+
+ while ( dirs.hasNext() )
+ {
+ // read group desktop files
+ QDir dir( dirs.next() + "/", "*.desktop" );
+
+ if ( ! dir.exists() )
+ {
+ qWarning() << "Directory " << dir.absolutePath() << " does not exist";
+ }
+ else
+ {
+ QStringListIterator desktop_files(dir.entryList());
+ while ( desktop_files.hasNext() )
+ {
+ QString desktop_file = desktop_files.next();
+ d->desktop_files << ( dir.absolutePath() + "/" + desktop_file );
+ }
+
+ }
+ qDebug() << d->desktop_files.size() << " desktop files in total";
+ }
+}
+
+int YQDesktopFilesModel::columnCount( const QModelIndex & parent ) const
+{
+ return 1;
+}
+
+int YQDesktopFilesModel::rowCount( const QModelIndex & parent ) const
+{
+ return d->desktop_files.size();
+}
+
+bool YQDesktopFilesModel::removeRow(int row )
+{
+
+ QString key = d->desktop_files.value( row );
+ qDebug() << "removing empty " << key;
+ d->desktop_files.removeAt( row );
+
+ d->cache.remove( key );
+
+ return true;
+
+}
+
+QModelIndex YQDesktopFilesModel::index( int row, int column, const QModelIndex & parent ) const
+{
+ return createIndex(row, column);
+}
+
+QVariant YQDesktopFilesModel::propertyValue( const QModelIndex &index, const QString &key ) const
+{
+ // first lookup in cache
+ if ( index.row() > d->desktop_files.size() - 1 )
+ return QVariant();
+
+ // get file at position
+ QString filename = d->desktop_files.at(index.row());
+
+ PropertyMap data;
+ if ( d->cache.contains(filename) )
+ {
+ data = d->cache.value(filename);
+ if ( data.contains(key) )
+ return data.value(key);
+ }
+ return QVariant();
+}
+
+QVariant YQDesktopFilesModel::translatedPropertyValue( const QModelIndex &index, const QString &key ) const
+{
+ QString fname = d->desktop_files.value( index.row() );
+ QFileInfo fi(fname);
+ QVariant value = propertyValue(index, key);
+ QString valueAsString = "";
+
+ // We can get QString, as well as QStringList if the .desktop key is csv
+ // (Qt's being too smart here and converts csv automatically to QStringList
+ // unless it's quoted). I'm not really happy about this solution, would be
+ // better to enforce quoting csv, but .desktop standard does not enforce
+ // quoting either (bnc#550085)
+ switch( value.type())
+ {
+ case QVariant::String: {
+ valueAsString = value.toString();
+ break;
+ }
+ case QVariant::StringList: {
+ valueAsString = value.toStringList().join(", ");
+ break;
+ }
+ default:
+ break;
+ }
+
+
+ QString msgid = QString( "%1(%2)" ).arg( key, fi.fileName() );
+ msgid += ": ";
+ msgid += valueAsString;
+
+ QString msgstr = QString::fromUtf8( dgettext ( DESKTOP_TRANSLATIONS, msgid.toAscii()) );
+
+ if( msgid == msgstr)
+ return valueAsString;
+ else
+ return msgstr;
+
+}
+
+QVariant YQDesktopFilesModel::findIcon( QString &icon ) const
+{
+ QRegExp extension( "\\.(png|jpg)$", Qt::CaseInsensitive );
+ if ( icon.indexOf( extension ) < 0 ) // no .png or .jpg extension?
+ icon += ".png"; // assume .png
+ QStringListIterator it(d->icon_dirs);
+ while (it.hasNext())
+ {
+ QString icondir(it.next());
+ if ( QFile::exists(icondir + "/" + icon) )
+ {
+ return QIcon(icondir + "/" + icon);
+ }
+ }
+ return QVariant();
+
+}
+
+void YQDesktopFilesModel::sort( int, Qt::SortOrder order )
+{
+ emit layoutAboutToBeChanged();
+ if (order == Qt::AscendingOrder)
+ qSort(d->desktop_files.begin(), d->desktop_files.end(), qLess<QString>());
+ else
+ qSort(d->desktop_files.begin(), d->desktop_files.end(), qGreater<QString>());
+ emit layoutChanged();
+ return;
+}
+
+QVariant YQDesktopFilesModel::data( const QModelIndex &index, int role ) const
+{
+ QStringListIterator it(d->desktop_files);
+
+ // check the role and column
+ if ( role == Qt::DisplayRole )
+ {
+ return translatedPropertyValue( index, "Name");
+ }
+ else if ( role == Qt::DecorationRole )
+ {
+ QString icon = propertyValue( index, "Icon" ).toString();
+ return findIcon( icon );
+ }
+ else if ( role == Qt::UserRole )
+ {
+
+ // user role has app specific data
+ switch ( index.column() )
+ {
+ case Name:
+ return propertyValue( index, "Name" );
+ case GenericName:
+ return propertyValue ( index, "GenericName" );
+ case Group:
+ return propertyValue( index, "X-SuSE-YaST-Group" );
+ case Icon:
+ return propertyValue( index, "Icon" );
+ case SortKey:
+ return propertyValue( index, "X-SuSE-YaST-SortKey" );
+ case Call:
+ return propertyValue ( index, "X-SuSE-YaST-Call" );
+ case Argument:
+ return propertyValue ( index, "X-SuSE-YaST-Argument" );
+ default:
+ return QVariant();
+ }
+ }
+ else
+ {
+ return QVariant();
+ }
+ return QVariant();
+}
+
+QModelIndex YQDesktopFilesModel::parent( const QModelIndex & index ) const
+{
+ return QModelIndex();
+}
+
+void YQDesktopFilesModel::addDesktopFile( QString &fname )
+{
+ d->desktop_files.push_front( fname );
+}
+
+void YQDesktopFilesModel::addDesktopFiles( QStringList &flist )
+{
+ QStringListIterator it( flist );
+ while (it.hasNext())
+ {
+ QString one_string(it.next());
+ addDesktopFile( one_string);
+ }
+}
+
+void YQDesktopFilesModel::addPropertyToDesktopFile( QString &fname, const QString &key, QString &value)
+{
+ if (d->cache.find( fname ) != d->cache.end())
+ {
+ d->cache[ fname ].insert( key, value );
+ }
+ else
+ {
+ PropertyMap pm;
+ pm[key] = value;
+
+ d->cache[ fname ] = pm;
+ }
+}
+
+
+#include "yqdesktopfilesmodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqdesktopfilesmodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,131 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQDESKTOPFILESMODEL_H
+#define YQDESKTOPFILESMODEL_H
+
+#include <QAbstractItemModel>
+#include <QDebug>
+#include <QStringList>
+#include <QFileSystemWatcher>
+
+/**
+ * this class represents a directory with .desktop files
+ * Each row is a desktop file, and each column, its
+ * attributes.
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+
+typedef QMap<QString, QVariant> PropertyMap;
+typedef QMapIterator<QString, QVariant> PropertyMapIterator;
+// desktop file -> properties
+typedef QMap<QString, PropertyMap > PropertyMapCache;
+typedef QMapIterator<QString, PropertyMap> PropertyMapCacheIterator;
+
+class cmp;
+
+class YQDesktopFilesModel : public QAbstractItemModel
+{
+Q_OBJECT
+
+public:
+ enum Columns
+ {
+ Name,
+ GenericName,
+ Group,
+ Icon,
+ SortKey,
+ ColumnCount,
+ Call,
+ Argument,
+ };
+
+ YQDesktopFilesModel( QObject * parent = 0 );
+ ~YQDesktopFilesModel();
+
+ /**
+ * Add a directory where Desktop files will be searched
+ */
+ void addDesktopFilesPath( const QString & dir );
+
+ /**
+ * Add a directory where to look for icons
+ */
+ void addIconPath( const QString &dir );
+
+ // reimplemented methods from QAbstractItemModel
+
+ virtual int columnCount( const QModelIndex & parent ) const;
+ virtual int rowCount( const QModelIndex & parent ) const;
+ virtual bool removeRow ( int row );
+
+ virtual QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex() ) const;
+
+ /**
+ * returns the index of the first item for which the key has
+ * the provided value
+ */
+ QModelIndex indexForValue( const QString &key, const QVariant &value ) const;
+
+ /**
+ * returns the desktop file property for the given key
+ */
+ QVariant propertyValue( const QModelIndex &index, const QString &key ) const;
+ QVariant translatedPropertyValue( const QModelIndex &index, const QString &key ) const;
+ QVariant findIcon ( QString &icon ) const;
+
+ virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+
+ virtual void sort( int column, Qt::SortOrder order = Qt::AscendingOrder );
+
+ virtual QModelIndex parent( const QModelIndex & index ) const;
+
+ void addDesktopFile( QString &fname);
+ void addDesktopFiles( QStringList &flist);
+ void addPropertyToDesktopFile( QString &fname, const QString &key, QString &value );
+
+protected:
+ void readDesktopFilesDirectories();
+ void readDesktopFiles();
+ virtual PropertyMap readDesktopFile( const QString &path );
+
+ class Private {
+ public:
+
+ Private() {}
+
+ ~Private() { /*qWarning() << "Destroy!";*/ }
+
+ // directories to read
+ QStringList desktop_dirs;
+
+ QStringList icon_dirs;
+
+ // list of .desktop files read from disk
+ QStringList desktop_files;
+
+ // already read data
+ // row -> ( key -> data )
+ PropertyMapCache cache;
+
+ QFileSystemWatcher watcher;
+ };
+
+ Private *const d;
+
+protected slots:
+ void slotDesktopFilesDirectoryChanged( const QString &path );
+
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,162 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include <QDebug>
+#include <QFont>
+#include <QFontMetrics>
+#include <QSettings>
+#include <QDir>
+#include <QIcon>
+#include <QHash>
+
+#include "yqmodulegroupsmodel.h"
+
+#define DEFAULT_GROUP_ICON "yast-default-group.png"
+
+bool paircmp( QPair<int, QString> p1, QPair<int, QString> p2)
+{
+ if ( p1.first != p2.first )
+ return p1.first < p2.first ;
+ else
+ return p1.second < p2.second;
+};
+
+YQModuleGroupsModel::YQModuleGroupsModel( QObject * parent )
+ : YQDesktopFilesModel(parent)
+{
+
+ QString default_dir( GROUPS_DESKTOP_DIR );
+ QString alt_dir = QString( getenv( "YAST2_DESKTOP_DIR") );
+
+ addDesktopFilesPath( alt_dir.isEmpty() ? default_dir : alt_dir + "/groups/");
+ addIconPath( ICON_DIR );
+ addIconPath( FALLBACK_ICON_DIR );
+ reindex();
+ //addPersonalStuff();
+}
+
+YQModuleGroupsModel::~YQModuleGroupsModel()
+{
+}
+
+QModelIndex YQModuleGroupsModel::indexForGroupId( const QString &groupid ) const
+{
+ return indexForValue( "X-SuSE-YaST-Group", groupid );
+}
+
+QString YQModuleGroupsModel::groupId( const QModelIndex &idx ) const
+{
+ QModelIndex grpid = index( idx.row(), Group);
+ // retrieve the groupid
+ QString groupid = data( grpid, Qt::UserRole ).toString();
+ return groupid;
+}
+
+QVariant YQModuleGroupsModel::valueFromFile ( QString &fname, int key )
+{
+ int pos = d->desktop_files.indexOf( fname );
+
+ if ( pos == -1 )
+ return QVariant();
+
+ QModelIndex idx = index( pos, key );
+ return data( idx, Qt::UserRole);
+
+}
+
+void YQModuleGroupsModel::addPersonalStuff()
+{
+ QList < QPair <QString, QString> > fake;
+
+ fake << QPair<QString, QString> ( "Personal.desktop", "Personal")
+ << QPair<QString, QString> ( "Favourites.desktop", "Favourites")
+ << QPair<QString, QString> ( "Recent.desktop", "Recently Used")
+ << QPair<QString, QString> ( "Modules.desktop", "Modules");
+
+ QPair <QString, QString> p;
+
+ foreach( p, fake )
+ {
+ addDesktopFile( p.first );
+ addPropertyToDesktopFile( p.first, "Name", p.second );
+ addPropertyToDesktopFile( p.first, "X-SuSE-YaST-Group", p.second );
+ }
+
+ typeMap["Personal"] = Headline;
+ typeMap["Modules"] = Headline;
+ typeMap["Favourites"] = Special;
+ typeMap["Recently Used"] = Special;
+
+}
+
+void YQModuleGroupsModel::reindex()
+{
+ // pairs, because sort keys don't have to be unique :(
+ QList< QPair< int, QString> > sortKeys;
+ QMap < QString, QString > groupNames;
+
+ QStringListIterator it( d->desktop_files );
+
+ while (it.hasNext())
+ {
+ QString dfile(it.next());
+ int sortKey = valueFromFile( dfile, YQDesktopFilesModel::SortKey).toInt();
+ QString name = valueFromFile( dfile, YQDesktopFilesModel::Name).toString();
+ sortKeys.append( qMakePair( sortKey, name) );
+ groupNames.insert( name, dfile );
+ }
+
+ qSort(sortKeys.begin(), sortKeys.end(), paircmp);
+
+ d->desktop_files.clear();
+ QPair<int,QString> p;
+ foreach( p, sortKeys )
+ {
+ d->desktop_files << groupNames[p.second];
+ }
+
+}
+
+QVariant YQModuleGroupsModel::data( const QModelIndex &index, int role ) const
+{
+ if (role == Qt::FontRole )
+ {
+ QString name = propertyValue( index, "Name" ).toString();
+ QFont f;
+
+ if( typeMap[name] == Headline)
+ {
+ f.setBold(true);
+ QFontMetrics fm(f);
+ f.setPixelSize( (int) (fm.height() * 1.05) );
+ QVariant myData = QVariant(f);
+ return myData;
+ }
+ else
+ return QVariant();
+ }
+ else if ( role == Qt::DecorationRole )
+ {
+ QVariant icon = YQDesktopFilesModel::data( index, role );
+ QString fallback_icon = "yast-default-group";
+
+ if ( icon.isValid() )
+ return icon;
+ else
+ {
+ return findIcon( fallback_icon );
+ }
+ }
+ else
+ return YQDesktopFilesModel::data(index, role);
+}
+
+#include "yqmodulegroupsmodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulegroupsmodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,64 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQMODULEGROUPSMODEL_H
+#define YQMODULEGROUPSMODEL_H
+
+#include <QStringList>
+#include "yqdesktopfilesmodel.h"
+
+/**
+ * this class represents YaST module groups
+ * so they can be used in any GUI item
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+
+class YQModuleGroupsModel : public YQDesktopFilesModel
+{
+Q_OBJECT
+public:
+
+ enum Type
+ {
+ Regular,
+ Headline,
+ Special
+ };
+
+ YQModuleGroupsModel( QObject * parent = 0 );
+ ~YQModuleGroupsModel();
+
+ virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+
+ /**
+ * Returns the model index from an id (like "Virtualization")
+ *
+ * Useful if you need to get data, and you don't know the index but only
+ * the group id, which you may had obtain in the modules model for example.
+ */
+ QModelIndex indexForGroupId( const QString &groupid ) const;
+
+ QVariant valueFromFile( QString &fname, int key );
+
+ /**
+ * Returns the group id for a given group
+ */
+ QString groupId( const QModelIndex &idx ) const;
+
+private:
+ QMap <QString, Type> typeMap;
+
+ void reindex();
+ void addPersonalStuff();
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,234 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#include <QDebug>
+#include <QSettings>
+
+#include "yqmodulesmodel.h"
+#include "yqmodulesproxymodel.h"
+
+#include "yqmodulegroupsmodel.h"
+#include "yccmoduleinfoprovider.h"
+
+#include <unistd.h>
+#include <sys/types.h>
+
+class YQModulesModel::Private
+{
+public:
+ Private()
+ : groupsModel(new YQModuleGroupsModel)
+ {
+ userIsRoot = ( getuid() == 0 );
+ }
+
+ ~Private()
+ {
+ delete groupsModel;
+ }
+
+ YQModuleGroupsModel *groupsModel;
+ QMap<QModelIndex, QModelIndex> groupCache;
+ QMap<QString, QString> groupStringCache;
+ YCCModuleInfoProvider infoProvider;
+
+ bool userIsRoot;
+
+};
+
+
+
+YQModulesModel::YQModulesModel( QObject * parent )
+ : YQDesktopFilesModel(parent)
+ , priv(new Private)
+{
+ QString default_dir( MODULES_DESKTOP_DIR );
+ QString alt_dir = QString( getenv( "YAST2_DESKTOP_DIR") );
+
+ addDesktopFilesPath( alt_dir.isEmpty() ? default_dir : alt_dir );
+ addIconPath( ICON_DIR );
+ addIconPath( FALLBACK_ICON_DIR );
+ removeEmptyGroups();
+}
+
+YQModulesModel::~YQModulesModel()
+{
+}
+
+YQModuleGroupsModel * YQModulesModel::groupsModel() const
+{
+ return priv->groupsModel;
+}
+
+PropertyMap YQModulesModel::readDesktopFile( const QString &path )
+{
+ PropertyMap data;
+ const QString rootOnly = "X-SuSE-YaST-RootOnly";
+ const QString group = "X-SuSE-YaST-Group";
+ const QString name = "Name";
+
+ QSettings desktopFile( path, QSettings::IniFormat );
+
+ // check if parsing was correct
+ if ( desktopFile.status() != QSettings::NoError )
+ {
+ qWarning() << "Error reading desktop file " << path;
+ return data;
+ }
+
+ desktopFile.beginGroup( "Desktop Entry" );
+
+ QStringList keys(desktopFile.allKeys());
+ QStringListIterator keyit(keys);
+
+ // X-SuSE-YaST-RootOnly = true
+ // do not show those to normal user
+ if ( !priv->userIsRoot && keys.contains( rootOnly ) &&
+ desktopFile.value(rootOnly).toBool() )
+ return data;
+
+ QString oneGroup;
+ QString oneName;
+ while (keyit.hasNext())
+ {
+ QString key(keyit.next());
+ data.insert(key, desktopFile.value(key));
+
+ // cache <groupname : modname> pairs to quickly look up
+ // what's the first module in the group
+ oneGroup = desktopFile.value(group).toString();
+ oneName = desktopFile.value(name).toString();
+
+ if ( priv->groupStringCache.find(oneGroup) != priv->groupStringCache.end() )
+ {
+ if ( oneName < priv->groupStringCache[oneGroup])
+ priv->groupStringCache[oneGroup] = oneName;
+ }
+ else
+ priv->groupStringCache.insert(oneGroup, oneName);
+ }
+
+ qDebug() << path << " read with " << data.size() << " keys";
+
+ return data;
+
+}
+
+QModelIndex YQModulesModel::firstModuleInGroup( const QModelIndex &index ) const
+{
+ // what is the name of that group?
+ QString grpid = groupsModel()->groupId(index);
+
+ if ( grpid.isEmpty() )
+ return QModelIndex();
+
+ qDebug() << "Look up 1st module in group " << grpid;
+
+ QString firstMod = priv->groupStringCache[grpid];
+ return indexForValue("Name", firstMod );
+}
+
+Qt::ItemFlags YQModulesModel::flags ( const QModelIndex & index ) const
+{
+ //qDebug() << "requesting flags for module";
+ return Qt::ItemIsEnabled;
+}
+
+QModelIndex YQModulesModel::groupForModule( const QModelIndex &idx) const
+{
+ if ( priv->groupCache.contains(idx) )
+ return priv->groupCache[idx];
+
+ // create an index for the module group's string id
+ QModelIndex modgrpid = index( idx.row(), Group);
+ // retrieve the groupid
+ QString groupid = data( modgrpid, Qt::UserRole ).toString();
+
+ QModelIndex groupindex = groupsModel()->indexForGroupId( groupid );
+
+ priv->groupCache[idx] = groupindex;
+
+ return groupindex;
+}
+
+QVariant YQModulesModel::data( const QModelIndex &index, int role ) const
+{
+ // this 2 roles are required if the model is expected to work
+ // with the categorized view
+ if ( role == KCategorizedSortFilterProxyModel::CategoryDisplayRole )
+ {
+ return groupsModel()->data( groupForModule(index) );
+ }
+ else if ( role == KCategorizedSortFilterProxyModel::CategorySortRole )
+ {
+ QModelIndex grp_idx = groupForModule( index );
+ QModelIndex idx = createIndex( grp_idx.row(), YQDesktopFilesModel::SortKey );
+
+ return groupsModel()->data( idx, Qt::UserRole);
+ }
+ else if ( role == KCategorizedSortFilterProxyModel::KeywordsRole )
+ {
+ //FIXME: use translatedPropertyValue
+ return propertyValue( index, "X-SuSE-YaST-Keywords" );
+ }
+ else if ( role == GenericNameRole )
+ {
+ //QString tooltip = d->infoProvider.provideInfo( this, index );
+ QString tooltip = translatedPropertyValue(index, "GenericName").toString();
+ return tooltip;
+ }
+ else if ( role == Qt::DecorationRole )
+ {
+ QVariant icon = YQDesktopFilesModel::data( index, role );
+
+ if ( icon.isValid() )
+ return icon;
+ else
+ {
+ return groupsModel()->data( groupForModule( index ), role );
+ }
+ }
+ else // otherwise just use the parent class
+ {
+ return YQDesktopFilesModel::data(index, role);
+ }
+}
+
+bool YQModulesModel::isRoot()
+{
+ return priv->userIsRoot;
+}
+
+void YQModulesModel::removeEmptyGroups()
+{
+ QStringList groups;
+ for (int i = 0; i < groupsModel()->rowCount( QModelIndex() ); i++)
+ {
+ QModelIndex idx = createIndex( i, 0 );
+ groups << groupsModel()->groupId( idx );
+ }
+
+ QStringListIterator git(groups);
+ while (git.hasNext())
+ {
+ QModelIndex groupidx = groupsModel()->indexForGroupId( git.next() );
+ QModelIndex modidx = firstModuleInGroup( groupidx );
+
+ if (!modidx.isValid())
+ {
+ groupsModel()->removeRow( groupidx.row() );
+ qDebug() << "Empty group " << groupsModel()->data( groupidx ).toString();
+ }
+ }
+
+}
+
+#include "yqmodulesmodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesmodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQMODULESMODEL_H
+#define YQMODULESMODEL_H
+
+#include <QStringList>
+#include "yqdesktopfilesmodel.h"
+
+class YQModuleGroupsModel;
+
+/**
+ * this class represents YaST module groups
+ * so they can be used in any GUI item
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+class YQModulesModel : public YQDesktopFilesModel
+{
+Q_OBJECT
+public:
+
+ enum UserRoleData
+ {
+ GenericNameRole = 0x1BA81D0E
+ };
+
+ YQModulesModel( QObject * parent = 0 );
+ ~YQModulesModel();
+
+ virtual PropertyMap readDesktopFile( const QString &path );
+
+ /**
+ * reimplemented from YQDesktopFilesModel
+ */
+ virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+
+ /**
+ * reimplement flags to make items non selectable and enabled
+ * depending if they are installed
+ */
+ virtual Qt::ItemFlags flags ( const QModelIndex & index ) const;
+
+ /**
+ * group index for a given model
+ */
+ QModelIndex groupForModule( const QModelIndex &index) const;
+
+ /**
+ * returns the group name for item with index
+ */
+ //QString groupNameForIndex( const QModelIndex &index ) const;
+
+ QModelIndex firstModuleInGroup( const QModelIndex &index ) const;
+
+ /**
+ * the groups model this modules model is using
+ */
+ YQModuleGroupsModel * groupsModel() const;
+
+ bool isRoot();
+
+private:
+ class Private;
+ Private *const priv;
+
+ void removeEmptyGroups();
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,34 @@
+
+#include "yqmodulesproxymodel.h"
+
+YQModulesProxyModel::YQModulesProxyModel( QObject * parent )
+ : KCategorizedSortFilterProxyModel(parent)
+{
+}
+
+YQModulesProxyModel::~YQModulesProxyModel()
+{
+}
+
+bool YQModulesProxyModel::subSortLessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+ return KCategorizedSortFilterProxyModel::subSortLessThan(left, right);
+}
+
+int YQModulesProxyModel::compareCategories(const QModelIndex &left, const QModelIndex &right) const
+{
+ return KCategorizedSortFilterProxyModel::compareCategories(left, right);
+}
+
+
+
+// QVariant YQModulesProxyModel::data( const QModelIndex &index, int role ) const
+// {
+// if ( role == CategoryDisplayRole )
+// {
+// }
+
+// return YQDesktopFilesModel::data(index, role);
+// }
+
+#include "yqmodulesproxymodel.moc"
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqmodulesproxymodel.h Mon May 23 15:58:18 2011
@@ -0,0 +1,55 @@
+/*---------------------------------------------------------------------\
+| |
+| __ __ _____ _____ |
+| \ \ / / / ___|_ _| |
+| \ V /__ _\ `--. | | |
+| \ // _` |`--. \ | | |
+| | | (_| /\__/ / | | |
+| \_/\__,_\____/ \_/ |
+| |
+\---------------------------------------------------------------------*/
+
+#ifndef YQMODULESPROXYMODEL_H
+#define YQMODULESPROXYMODEL_H
+
+#include <QStringList>
+#include "kcategorizedsortfilterproxymodel.h"
+
+/**
+ * Proxy Model to sort by categories
+ *
+ * @author Duncan Mac-Vicar P. <dmacvicar(a)suse.de>
+ */
+class YQModulesProxyModel : public KCategorizedSortFilterProxyModel
+{
+Q_OBJECT
+public:
+
+ YQModulesProxyModel( QObject * parent = 0 );
+ ~YQModulesProxyModel();
+
+ /**
+ * This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
+ * It is used for sorting items that are in the same category.
+ *
+ * @return Returns true if the item @p left is less than the item @p right when sorting.
+ */
+ virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const;
+
+ /**
+ * This method compares the category of the @p left index with the category
+ * of the @p right index.
+ *
+ * Internally and if not reimplemented, this method will ask for @p left and
+ * @p right models for role CategorySortRole. In order to correctly sort
+ * categories, the data() metod of the model should return a qlonglong (or numeric) value, or
+ * a QString object. QString objects will be sorted with QString::localeAwareCompare if
+ * sortCategoriesByNaturalComparison() is true.
+ *
+ */
+ virtual int compareCategories(const QModelIndex &left, const QModelIndex &right) const;
+
+ //virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
+};
+
+#endif
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.cpp Mon May 23 15:58:18 2011
@@ -0,0 +1,178 @@
+/***************************************************************************
+ yqsavelogs.cpp - Save YaST Logs
+ author : tgoettlicher(a)suse.de
+ ***************************************************************************/
+
+/*
+ Textdomain "control-center"
+*/
+
+#include "yqsavelogs.h"
+
+#include <QFileDialog>
+#include <QMessageBox>
+
+
+YQSaveLogs::YQSaveLogs()
+{
+ lock = false;
+ proc = 0;
+}
+
+YQSaveLogs::~YQSaveLogs()
+{
+}
+
+void YQSaveLogs::save()
+{
+
+ if (lock)
+ {
+ QMessageBox::warning( 0, // parent
+ "Warning", // caption
+ QString("Logs are written at the moment. Please try again later."),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+ return;
+ }
+
+ SaveLogs();
+
+}
+
+
+void YQSaveLogs::saveProcessExited( int exitCode, QProcess::ExitStatus exitStatus )
+{
+ if ( exitStatus == QProcess::NormalExit )
+ {
+ emit statusMsg( _("Log files written successfully.") );
+ }
+ else
+ {
+ emit statusMsg( _("Couldn't save y2logs.") );
+ QMessageBox::warning( 0, // parent
+ "Error", // caption
+ QString( "Couldn't save y2logs - "
+ "exit code %1").arg( exitStatus ),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+ }
+
+
+ delete proc;
+
+ lock=false;
+
+}
+
+
+void YQSaveLogs::SaveLogs()
+{
+ QString fileName = askForSaveFileName( "/tmp/y2logs.tgz", // startWith
+ "*.tgz *.tar.gz", // filter
+ "Save y2logs to..." ); // headline
+
+ if ( ! fileName.isEmpty() )
+ {
+ QString saveLogsCommand = "/sbin/save_y2logs";
+ QStringList args = QStringList() << fileName;
+
+ if ( access( saveLogsCommand.toAscii(), X_OK ) == 0 )
+ {
+ lock = true;
+
+ proc = new QProcess( this );
+
+ connect ( proc, SIGNAL(finished( int, QProcess::ExitStatus )), this,
+ SLOT(saveProcessExited( int, QProcess::ExitStatus )));
+
+ proc->start( saveLogsCommand, args );
+ int result = proc->exitCode();
+
+ if ( result != 0 )
+ {
+ // unable to start command (errors while running command are handled by saveProcessExited)
+
+ QMessageBox::warning( 0, // parent
+ "Error", // caption
+ QString( "Couldn't save y2logs to %1 - "
+ "exit code %2" ).arg( fileName ).arg( result ),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+
+ delete proc;
+
+ lock = false;
+ }
+ else
+ {
+ emit statusMsg( _("Writing log files ...") );
+ }
+ }
+ else
+ {
+ QMessageBox::warning( 0, // parent
+ "Error", // caption
+ QString( "Couldn't save y2logs to %1:\n"
+ "Command %2 not found" ).arg( fileName ).arg( saveLogsCommand ),
+ QMessageBox::Ok | QMessageBox::Default, // button0
+ QMessageBox::NoButton, // button1
+ QMessageBox::NoButton ); // button2
+ }
+ }
+}
+
+QString YQSaveLogs::askForSaveFileName( const QString & startWith,
+ const QString & filter,
+ const QString & headline )
+{
+ QString file_name;
+ bool try_again = false;
+
+ do
+ {
+ // Leave the mouse cursor alone - this function might be called from
+ // some other widget, not only from AskForSaveFileName().
+
+ file_name = QFileDialog::getSaveFileName( 0, // parent
+ headline, // caption
+ startWith, // initial dir
+ filter );
+
+ if ( file_name.isEmpty() ) // this includes file_name.isNull()
+ return QString::null;
+
+
+ if ( access( file_name.toAscii(), F_OK ) == 0 ) // file exists?
+ {
+ QString msg;
+
+ if ( access( file_name.toAscii(), W_OK ) == 0 )
+ {
+ // Confirm if the user wishes to overwrite an existing file
+ msg = ( _( "%1 exists! Really overwrite?" ) ).arg( file_name );
+ }
+ else
+ {
+ // Confirm if the user wishes to overwrite a write-protected file %1
+ msg = ( _( "%1 exists and is write-protected!\nReally overwrite?" ) ).arg( file_name );
+ }
+
+ int button_no = QMessageBox::information( 0,
+ // Window title for confirmation dialog
+ _( "Confirm" ),
+ msg,
+ _( "C&ontinue" ),
+ _( "&Cancel" ) );
+ try_again = ( button_no != 0 );
+ }
+
+ } while ( try_again );
+
+ return file_name;
+}
+
+#include <yqsavelogs.moc>
Added: branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/contr…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h (added)
+++ branches/SuSE-Code-11-SP1-Branch/control-center/src/yqsavelogs.h Mon May 23 15:58:18 2011
@@ -0,0 +1,51 @@
+/***************************************************************************
+ yqsavelogs.h - Save YaST Logs
+ author : tgoettlicher(a)suse.de
+ ***************************************************************************/
+
+#ifndef YQSAVELOGS_H
+#define YQSAVELOGS_H
+
+// include files for QT
+#include <QString>
+#include <QProcess>
+
+
+// application specific includes
+#include "i18n.h"
+
+/**
+ * This Class asks for a filename and saves YaST logfies
+ */
+class YQSaveLogs : public QObject
+{
+ Q_OBJECT
+
+public:
+
+ YQSaveLogs();
+ ~YQSaveLogs();
+
+public slots:
+ void saveProcessExited( int exitCode, QProcess::ExitStatus exitStatus );
+ void save();
+
+
+protected:
+
+signals:
+ void statusMsg( const QString& msg );
+
+private:
+
+ bool lock;
+ QProcess * proc;
+
+ void SaveLogs();
+ QString askForSaveFileName( const QString & startWith,
+ const QString & filter,
+ const QString & headline );
+
+};
+#endif
+
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0

[yast-commit] r64087 - in /branches/SuSE-Code-11-SP1-Branch/libyui: ./ package/ src/
by tgoettlicher@svn2.opensuse.org 23 May '11
by tgoettlicher@svn2.opensuse.org 23 May '11
23 May '11
Author: tgoettlicher
Date: Mon May 23 15:44:12 2011
New Revision: 64087
URL: http://svn.opensuse.org/viewcvs/yast?rev=64087&view=rev
Log:
backported trunk to sp2
Modified:
branches/SuSE-Code-11-SP1-Branch/libyui/VERSION
branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes
branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am
branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc
branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h
branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/VERSION (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/VERSION Mon May 23 15:44:12 2011
@@ -1 +1 @@
-2.18.8
+2.21.1
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/package/yast2-libyui.changes Mon May 23 15:44:12 2011
@@ -1,4 +1,57 @@
-------------------------------------------------------------------
+Tue Apr 19 12:09:27 CEST 2011 - tgoettlicher(a)suse.de
+
+- Don't allow recursive selection for non-multiselection widgets
+- V 2.21.1
+
+-------------------------------------------------------------------
+Fri Apr 15 16:14:13 CEST 2011 - tgoettlicher(a)suse.de
+
+- Added support for recursive selection in tree widgets
+- V 2.20.3
+
+-------------------------------------------------------------------
+Fri Feb 11 11:41:53 CET 2011 - tgoettlicher(a)suse.de
+
+- Fixed segfault for currentItem on tree widget
+- V 2.20.2
+
+-------------------------------------------------------------------
+Tue Feb 8 12:16:30 CET 2011 - tgoettlicher(a)suse.de
+
+- Added support for currentItem to tree widget
+- V 2.20.1
+
+-------------------------------------------------------------------
+Thu Feb 3 15:05:30 CET 2011 - tgoettlicher(a)suse.de
+
+- V 2.20.0
+
+-------------------------------------------------------------------
+Mon Dec 20 16:44:56 CET 2010 - tgoettlicher(a)suse.de
+
+- Added support for check boxes in tree widgets
+- V 2.19.2
+
+-------------------------------------------------------------------
+Fri Apr 9 17:29:14 CEST 2010 - tgoettlicher(a)suse.de
+
+- Fixed endless loop in layout algorithm (bnc #558699)
+- V 2.19.1
+
+-------------------------------------------------------------------
+Tue Mar 2 12:38:32 UTC 2010 - coolo(a)novell.com
+
+- Fixing undefined behaviour that triggers a crash with
+ gcc 4.5 (bnc#582088)
+- V 2.19.0
+
+-------------------------------------------------------------------
+Tue Feb 9 17:32:06 CET 2010 - tgoettlicher(a)suse.de
+
+- added license headers
+
+-------------------------------------------------------------------
Tue Jul 28 17:22:58 CEST 2009 - kmachalkova(a)suse.cz
- Search for icons in several possible directories (using
@@ -269,3 +322,4 @@
- Package split off from yast2-core
- V 2.16.37
+-------------------------------------------------------------------
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/FSize.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/ImplPtr.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/Makefile.am Mon May 23 15:44:12 2011
@@ -14,7 +14,7 @@
lib_LTLIBRARIES = libyui.la
-libyui_la_LDFLAGS = -version-info 3:0:0 -Wl,--no-undefined
+libyui_la_LDFLAGS = -version-info 4:0:0 -Wl,--no-undefined
libyui_la_LIBADD = -lpthread -ldl
libyui_la_SOURCES = \
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/TreeItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -233,8 +254,8 @@
YBothDim<int> newChildSize;
YBothDim<int> newChildPos;
-
- for ( YUIDimension dim = YD_HORIZ; dim <= YD_VERT; dim = (YUIDimension) (dim+1) )
+ YUIDimension dim = YD_HORIZ;
+ while ( true ) // only toggle
{
int childPreferredSize = firstChild()->preferredSize( dim );
int preferredSize = childPreferredSize + totalMargin[ dim ];
@@ -296,6 +317,12 @@
}
newChildPos[ dim ] += offset[ dim ];
+
+ // we need to get out of this loop after the second run
+ if (dim == YD_HORIZ)
+ dim = YD_VERT;
+ else
+ break;
}
firstChild()->setSize( newChildSize.hor, newChildSize.vert );
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YAlignment.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YApplication.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBarGraph.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBothDim.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBuiltinCaller.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YBusyIndicator.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YButtonBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCheckBoxFrame.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YChildrenManager.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YColor.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YComboBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YCommandLine.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YContextMenu.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDateField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialog.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -134,7 +155,7 @@
YAlignment * minSize = fac->createMinSize( vbox, TREE_WIDTH, TREE_HEIGHT );
minSize->setWeight( YD_VERT, TREE_VWEIGHT );
- priv->widgetTree = fac->createTree( minSize, "Widget &Tree" );
+ priv->widgetTree = fac->createTree( minSize, "Widget &Tree", false );
priv->widgetTree->setNotify( true );
YWidgetTreeItem * rootItem = new YWidgetTreeItem( targetDialog, true );
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDialogSpy.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDownloadProgress.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YDumbTab.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEmpty.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEnvVar.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEvent.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YEventFilter.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YFrame.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraph.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YGraphPlugin.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
#define YUILogComponent "ui"
#include "YUILog.h"
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIconLoader.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
#ifndef YIconLoader_H
#define YIconLoader_H
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YImage.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YInputField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YIntField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLabel.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -602,6 +623,8 @@
// Distribute loss
+ int oldTooSmall = tooSmall;
+ int oldLoserCount = loserCount;
while ( tooSmall > 0 && loserCount > 0 )
{
if ( debugLayout() )
@@ -654,6 +677,16 @@
<< endl;
}
}
+
+ if ( oldTooSmall == tooSmall &&
+ oldLoserCount == loserCount )
+ {
+ yuiWarning() << "Preventing endless loop while layout space distribution. Break." << endl;
+ break;
+ }
+
+ oldTooSmall = tooSmall;
+ oldLoserCount = loserCount;
}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLayoutBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YLogView.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacro.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroPlayer.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMacroRecorder.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuButton.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMenuItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiLineEdit.h Mon May 23 15:44:12 2011
@@ -1,3 +1,23 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiProgressMeter.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YMultiSelectionBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YOptionalWidgetFactory.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelector.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPackageSelectorPlugin.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPartitionSplitter.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProgressBar.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YProperty.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YPushButton.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButton.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRadioButtonGroup.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YReplacePoint.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRichText.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YRpmGroupsTree.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionBox.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -29,13 +50,16 @@
struct YSelectionWidgetPrivate
{
YSelectionWidgetPrivate( const string & label,
- bool enforceSingleSelection )
+ bool enforceSingleSelection,
+ bool recursiveSelection )
: label( label )
, enforceSingleSelection( enforceSingleSelection )
+ , recursiveSelection ( recursiveSelection )
{}
string label;
bool enforceSingleSelection;
+ bool recursiveSelection;
string iconBasePath;
YItemCollection itemCollection;
};
@@ -45,11 +69,16 @@
YSelectionWidget::YSelectionWidget( YWidget * parent,
const string & label,
- bool enforceSingleSelection )
+ bool enforceSingleSelection ,
+ bool recursiveSelection )
: YWidget( parent )
- , priv( new YSelectionWidgetPrivate( label, enforceSingleSelection ) )
+ , priv( new YSelectionWidgetPrivate( label, enforceSingleSelection, recursiveSelection ) )
{
YUI_CHECK_NEW( priv );
+
+ if ( enforceSingleSelection && recursiveSelection )
+ YUI_THROW( YUIException( "recursiveSelection is only available for multiSelection Widgets."));
+
}
@@ -95,6 +124,12 @@
return priv->enforceSingleSelection;
}
+bool YSelectionWidget::recursiveSelection() const
+{
+ return priv->recursiveSelection;
+}
+
+
void YSelectionWidget::setEnforceSingleSelection( bool enforceSingleSelection )
{
@@ -382,6 +417,17 @@
oldSelectedItem->setSelected( false );
}
+
+ if ( recursiveSelection() && item->hasChildren() )
+ {
+ for ( YItemIterator it = item->childrenBegin(); it != item->childrenEnd(); ++it )
+ {
+ YItem * item = *it;
+ selectItem(item, selected );
+ item->setSelected( selected );
+ }
+ }
+
item->setSelected( selected );
}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSelectionWidget.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -48,7 +69,8 @@
**/
YSelectionWidget( YWidget * parent,
const string & label,
- bool enforceSingleSelection );
+ bool enforceSingleSelection,
+ bool recurisveSelection = false );
public:
/**
@@ -280,6 +302,11 @@
bool enforceSingleSelection() const;
/**
+ * Return 'true' if this base class should select children recursively.
+ **/
+ bool recursiveSelection() const;
+
+ /**
* Recursively try to find the first selected item between iterators
* 'begin' and 'end'. Return that item or 0 if there is none.
**/
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcut.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YShortcutManager.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleEventHandler.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSimpleInputField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSingleChildContainerWidget.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSlider.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSpacing.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YSquash.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YStringTree.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTable.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableHeader.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTableItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimeField.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTimezoneSelector.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTransText.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -35,11 +57,10 @@
};
-
-
-YTree::YTree( YWidget * parent, const string & label )
+YTree::YTree( YWidget * parent, const string & label, bool multiSelection, bool recursiveSelection )
: YSelectionWidget( parent, label,
- true ) // enforceSingleSelection
+ ! multiSelection,
+ recursiveSelection )
, priv( new YTreePrivate() )
{
YUI_CHECK_NEW( priv );
@@ -95,6 +116,7 @@
* @property map<ItemID> OpenItems Map of IDs of all open items - can only be queried, not set
* @property string Label Caption above the tree
* @property string IconPath Base path for icons
+ * @property bool MultiSelection Flag: User can select multiple items (read-only)
*/
propSet.add( YProperty( YUIProperty_Value, YOtherProperty ) );
propSet.add( YProperty( YUIProperty_CurrentItem, YOtherProperty ) );
@@ -103,7 +125,10 @@
propSet.add( YProperty( YUIProperty_OpenItems, YOtherProperty ) );
propSet.add( YProperty( YUIProperty_Label, YStringProperty ) );
propSet.add( YProperty( YUIProperty_IconPath, YStringProperty ) );
+ propSet.add( YProperty( YUIProperty_SelectedItems, YOtherProperty ) );
+ propSet.add( YProperty( YUIProperty_MultiSelection, YBoolProperty, true ) ); // read-only
propSet.add( YWidget::propertySet() );
+
}
return propSet;
@@ -120,8 +145,10 @@
else if ( propertyName == YUIProperty_CurrentBranch ) return false; // Needs special handling
else if ( propertyName == YUIProperty_Items ) return false; // Needs special handling
else if ( propertyName == YUIProperty_OpenItems ) return false; // Needs special handling
+ else if ( propertyName == YUIProperty_SelectedItems ) return false; // Needs special handling
else if ( propertyName == YUIProperty_Label ) setLabel( val.stringVal() );
else if ( propertyName == YUIProperty_IconPath ) setIconBasePath( val.stringVal() );
+
else
{
return YWidget::setProperty( propertyName, val );
@@ -143,9 +170,16 @@
else if ( propertyName == YUIProperty_OpenItems ) return YPropertyValue( YOtherProperty );
else if ( propertyName == YUIProperty_Label ) return YPropertyValue( label() );
else if ( propertyName == YUIProperty_IconPath ) return YPropertyValue( iconBasePath() );
+ else if ( propertyName == YUIProperty_SelectedItems ) return YPropertyValue( YOtherProperty );
else
{
return YWidget::getProperty( propertyName );
}
}
+bool
+YTree::hasMultiSelection() const
+{
+ return ! YSelectionWidget::enforceSingleSelection();
+}
+
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTree.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -41,14 +62,19 @@
* (*) Not all UIs (in particular not text-based UIs) support displaying icons,
* so an icon should never be an exclusive means to display any kind of
* information.
+
+ * 'multiSelection' indicates whether or not the user can select multiple
+ * items at the same time. This can only be set in the constructor.
**/
+
+
class YTree : public YSelectionWidget
{
protected:
/**
* Constructor.
**/
- YTree( YWidget * parent, const string & label );
+ YTree( YWidget * parent, const string & label, bool multiSelection, bool recursiveSelection);
public:
/**
@@ -144,6 +170,24 @@
**/
const char * userInputProperty() { return YUIProperty_CurrentItem; }
+
+ /**
+ * Return 'true' if the user can select multiple items at the same time
+ **/
+ bool hasMultiSelection() const;
+
+ /**
+ * Return the the item that currently has the keyboard focus
+ * or 0 if no item currently has the keyboard focus.
+ *
+ * Notice that for a MultiSelectionBox the current item is not necessarily
+ * selected, i.e., its check box may or may not be checked.
+ *
+ * Derived classes are required to implement this function.
+ **/
+ virtual YTreeItem * currentItem() = 0;
+
+
private:
ImplPtr<YTreePrivate> priv;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTreeItem.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -96,7 +117,7 @@
* automatically add themselves to their parent, so applications will
* normally not have to call this function.
**/
- virtual void addChild( YItem * child );
+ virtual void addChild( YItem * item_disown );
/**
* Delete all child items.
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YTypes.h Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUI.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIException.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -17,8 +38,10 @@
/-*/
#include <stdlib.h> // getenv()
-#include <unistd.h> // isatty()
+#include <unistd.h> // isatty()a
+#include <sys/stat.h>
+#include "YCommandLine.h"
#include "YUILoader.h"
#include "YUIPlugin.h"
#include "YUIException.h"
@@ -28,25 +51,38 @@
{
const char * envDisplay = getenv( "DISPLAY" );
- if ( envDisplay )
+ YCommandLine cmdline;
+
+ bool wantNcurses = cmdline.find("--ncurses") != -1;
+ bool wantQt = cmdline.find("--qt") != -1;
+ bool wantGtk = cmdline.find("--gtk") != -1;
+
+ bool haveQt = pluginExists( YUIPlugin_Qt );
+ bool haveGtk = pluginExists( YUIPlugin_Gtk );
+
+ if ( envDisplay && !wantNcurses )
{
- //
- // Qt UI
- //
-
+ string wantedGUI;
+
+ if ( haveQt && !wantGtk)
+ wantedGUI = YUIPlugin_Qt;
+ else if ( haveGtk && !wantQt )
+ wantedGUI = YUIPlugin_Gtk;
+
try
{
- loadPlugin( YUIPlugin_Qt, withThreads );
+ loadPlugin( wantedGUI, withThreads );
return;
}
catch ( YUIException & ex)
{
YUI_CAUGHT( ex );
}
+
}
if ( isatty( STDOUT_FILENO ) )
- {
+ {
//
// NCurses UI
//
@@ -88,3 +124,17 @@
YUI_THROW( YUIPluginException( name ) );
}
+
+bool YUILoader::pluginExists( const string & pluginBaseName )
+{
+ struct stat fileinfo;
+ string fullPath;
+
+ fullPath.append( PLUGINDIR "/" ); // from -DPLUGINDIR in Makefile.am
+ fullPath.append( PLUGIN_PREFIX );
+ fullPath.append( pluginBaseName );
+ fullPath.append( PLUGIN_SUFFIX );
+
+ return stat( fullPath.c_str(), &fileinfo) == 0;
+
+}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILoader.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -53,6 +74,8 @@
**/
static void loadPlugin( const string & name, bool withThreads = false );
+ static bool pluginExists( const string & pluginBaseName );
+
private:
YUILoader() {}
~YUILoader() {}
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUILog.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -24,11 +45,6 @@
#include "YUIPlugin.h"
-
-#define PLUGIN_PREFIX "libpy2"
-#define PLUGIN_SUFFIX ".so.2"
-
-
using std::string;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUIPlugin.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -20,6 +41,9 @@
#ifndef YUIPlugin_h
#define YUIPlugin_h
+#define PLUGIN_PREFIX "libpy2"
+#define PLUGIN_SUFFIX ".so.2"
+
#include <string>
using std::string;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YUISymbols.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -244,6 +265,7 @@
#define YUIOpt_youMode "youMode"
#define YUIOpt_zeroHeight "zeroHeight"
#define YUIOpt_zeroWidth "zeroWidth"
+#define YUIOpt_recursiveSelection "recursiveSelection"
#define YUIOpt_key_F1 "key_F1"
#define YUIOpt_key_F2 "key_F2"
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetFactory.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
@@ -101,7 +122,7 @@
virtual YRadioButton * createRadioButton ( YWidget * parent, const string & label, bool isChecked = false ) = 0;
virtual YComboBox * createComboBox ( YWidget * parent, const string & label, bool editable = false ) = 0;
virtual YSelectionBox * createSelectionBox ( YWidget * parent, const string & label ) = 0;
- virtual YTree * createTree ( YWidget * parent, const string & label ) = 0;
+ virtual YTree * createTree ( YWidget * parent, const string & label, bool multiselection = false, bool recursiveselection = false ) = 0;
virtual YTable * createTable ( YWidget * parent, YTableHeader * header_disown, bool multiSelection = false ) = 0;
virtual YProgressBar * createProgressBar ( YWidget * parent, const string & label, int maxValue = 100 ) = 0;
virtual YRichText * createRichText ( YWidget * parent, const string & text = string(), bool plainTextMode = false ) = 0;
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidgetID.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWidget_OptimizeChanges.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.cc Mon May 23 15:44:12 2011
@@ -1,3 +1,25 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/src/YWizard.h Mon May 23 15:44:12 2011
@@ -1,3 +1,24 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
/*---------------------------------------------------------------------\
| |
| __ __ ____ _____ ____ |
Modified: branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/libyu…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in (original)
+++ branches/SuSE-Code-11-SP1-Branch/libyui/yast2-libyui.spec.in Mon May 23 15:44:12 2011
@@ -19,7 +19,7 @@
BuildRequires: boost-devel
Summary: YaST2 - User Interface Engine
-Provides: %{_libdir}/libyui.so.3.0.0
+Provides: %{_libdir}/libyui.so.4.0.0
%description
This is the YaST2 user interface engine that provides the abstraction
--
To unsubscribe, e-mail: yast-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: yast-commit+help(a)opensuse.org
1
0

[yast-commit] r64086 - in /branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings: ./ examples/ package/ src/
by tgoettlicher@svn2.opensuse.org 23 May '11
by tgoettlicher@svn2.opensuse.org 23 May '11
23 May '11
Author: tgoettlicher
Date: Mon May 23 15:18:39 2011
New Revision: 64086
URL: http://svn.opensuse.org/viewcvs/yast?rev=64086&view=rev
Log:
backported from trunk to sp2
Added:
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/flash-player-license.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph1.gv
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph2.gv
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/graph3.gv
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-dos.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/html-text-unix.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-dos.txt.orig
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long-dos.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license-long.txt
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/license.txt.orig
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/t.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/y2signal.log
Modified:
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/package/yast2-ycp-ui-bindings.changes
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPBuiltinCaller.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPDialogParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPErrorDialog.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPEvent.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroPlayer.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMacroRecorder.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPMenuItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPPropertyHandler.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTableItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItem.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPTreeItemWriter.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPValueWidgetID.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCPWizardCommandParser.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_UI_Exception.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YCP_util.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponent.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUIComponentCreator.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.cc
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YUINamespace.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/src/YWidgetOpt.h
branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/yast2-ycp-ui-bindings.spec.in
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/COPYING Mon May 23 15:18:39 2011
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/VERSION Mon May 23 15:18:39 2011
@@ -1 +1 @@
-2.18.5
+2.21.1
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/ContextMenu.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,85 @@
+{
+ string formatEvent( map<string, any> event )
+ {
+ string html = "<h3>Event:</h3><p>";
+ y2milestone ("formatEvent(%1)", event);
+ foreach (string key, any value, event, ``{
+ html = html + "<font color=blue>" + key + "</font>: " + tostring (value) + "<br>";
+ });
+ html = html + "</p>";
+ return html;
+ };
+
+
+ string event_display = "<i>No event yet - click something (or wait for timeout)</i>";
+
+
+ if ( ! UI::HasSpecialWidget(`Slider) )
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("ContextMenu not supported!"),
+ `PushButton(`opt(`default), "&Oops!")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+ return;
+ }
+
+
+
+
+
+ UI::OpenDialog(
+ `VBox(
+ `SelectionBox( `id(`sport), `opt(`notify,`immediate, `notifyContextMenu),
+ "Select your sport:",
+ [
+ "Swimming",
+ "Cycling",
+ "Running"
+ ] ),
+ `RichText(`id(`event_display), event_display ),
+ `PushButton(`id(`close), "&OK")
+ ) );
+
+ //
+ // Event loop
+ //
+
+ map <string, any> event = $[];
+
+
+ repeat
+ {
+ event = UI::WaitForEvent( 100000 );
+ if ( event != nil )
+ {
+ UI::ChangeWidget(`event_display, `Value, formatEvent( event ) );
+ }
+
+ if ( event != nil && event["EventReason"]:"" == "ContextMenuActivated" )
+ {
+/* UI::OpenContextMenu( `menu(
+ [ `item(`id(`folder), "&Folder"),
+ `item(`id(`text), "&Text File" ),
+ `item(`id(`image), "&Image" )
+ ])); */
+
+
+UI::OpenContextMenu( `menu(
+ [ `item(`id(`instruct), "Instruc&tions" ),
+ `menu( "&Execute",
+ [ `item(`id(`training),
+ "&Training" ),
+ `item(`id(`race),
+ "&Race" ) ]) ] ));
+
+
+ }
+ } until ( event["ID"]:nil == `close );
+
+
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph1.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,33 @@
+// Graph1.ycp
+{
+ if (!UI::HasSpecialWidget(`Graph))
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("Error: This UI doesn't support the Graph widget!"),
+ `PushButton(`opt(`default), "&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+ return;
+ }
+
+ UI::OpenDialog(
+ `VBox(
+ `HSpacing(60),
+ `Graph(`id(`graph), "graph1.gv", "dot"),
+ `PushButton(`id(`close), `opt(`default), "&Close")
+ )
+ );
+
+ while (true)
+ {
+ symbol widget = (symbol) UI::UserInput();
+
+ if (widget == `close || widget == `cancel)
+ break;
+ }
+
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Graph2.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,53 @@
+// Graph2.ycp
+{
+ if (!UI::HasSpecialWidget(`Graph))
+ {
+ UI::OpenDialog(
+ `VBox(
+ `Label("Error: This UI doesn't support the Graph widget!"),
+ `PushButton(`opt(`default), "&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+ return;
+ }
+
+ UI::OpenDialog(
+ `VBox(
+ `HSpacing(60),
+ `Graph(`id(`graph), "graph1.gv", "dot"),
+ `HBox(
+ `PushButton(`id(`load1), `opt(`default), "Load 1"),
+ `PushButton(`id(`load2), `opt(`default), "Load 2"),
+ `PushButton(`id(`load3), `opt(`default), "Load 3"),
+ `PushButton(`id(`close), `opt(`default), "&Close")
+ )
+ )
+ );
+
+ while (true)
+ {
+ symbol widget = (symbol) UI::UserInput();
+
+ switch (widget)
+ {
+ case `load1:
+ UI::ChangeWidget(`id(`graph), `Filename, "graph1.gv");
+ break;
+
+ case `load2:
+ UI::ChangeWidget(`id(`graph), `Filename, "graph2.gv");
+ break;
+
+ case `load3:
+ UI::ChangeWidget(`id(`graph), `Filename, "graph3.gv");
+ break;
+ }
+
+ if (widget == `close || widget == `cancel)
+ break;
+ }
+
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/IntField3.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,14 @@
+{
+ // `IntField in combination with `HWeight
+ // (test case for ncurses bug #488757)
+ UI::OpenDialog(
+ `HBox(
+ `HWeight(1,
+ `IntField( "short", 0, 10000, 50)),
+ `HWeight(1,
+ `PushButton(`opt(`default), "long label"))
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/LICENSE.mp3.txt Mon May 23 15:18:39 2011
@@ -0,0 +1,175 @@
+FLUENDO MP3 PLUG-IN FOR GSTREAMER COMMERCIAL LICENSE
+AGREEMENT BY FLUENDO, S.A. (âFLUENDOâ)
+
+IMPORTANT â READ CAREFULLY
+THE FOLLOWING LICENSE AGREEMENT AS AMENDED FROM TIME TO TIME AND
+AVAILABLE WITH THIS PACKAGE (THE âLICENSE AGREEMENTâ)GOVERNS THE
+DOWNLOADING, INSTALLATION AND/OR USE OF FLUENDOâS PROPRIETARY SOFTWARE
+âMP3 PLUG-IN FOR GSTREAMERâ, INCLUDING ANY COMPONENTS,
+COPIES, UPDATES,ENHANCEMENTS, UPGRADES OR SUBSEQUENT VERSIONS THEREOF
+THAT MAY BE RELEASED BY FLUENDO (COLLECTIVELY, THE âSOFTWAREâ) AND ANY
+ACCOMPANYING MANUALS, HELP FILES AND DOCUMENTATION (THE "DOCUMENTATION").
+PLEASE READ THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT AS BY
+DOWNLOADING, USING AND/OR INSTALLING THE SOFTWARE YOU (THE âLICENSEEâ)
+CONSENT AND AGREE TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THIS
+LICENSE AGREEMENT. YOU MAY DOWNLOAD, INSTALL AND/OR USE THE SOFTWARE
+SUBJECT TO THOSE TERMS AND CONDITIONS AND TO ANY APPLICABLE LAW, BEING
+SOLELY LIABLE FOR ANY BREACH THEREOF. IF YOU DO NOT AGREE TO THIS
+LICENSE AGREEMENT, FLUENDO DOES NOT GRANT ANY LICENSE TO YOU FOR THE
+SOFTWARE AND YOU MAY NOT DOWNLOAD, INSTALL OR USE THE SOFTWARE.
+
+GRANT OF LICENSE AND RESTRICTIONS
+1. Subject to the Licenseeâs acceptance and continued compliance with
+ this License Agreement, Fluendo hereby grants the
+ Licensee a non-exclusive, non-transferable limited license to install,
+ use or otherwise benefit from the functionality of the Software in the
+ manner and for the purposes described in the Documentation, on a per
+ computer basis.
+
+2. Except as expressly authorized by Fluendo in writing, it is forbidden to:
+ (i) decompile, reverse engineer, disassemble or decode the Software
+ or any copy, adaptation, transcription or merged portion of the
+ Software;
+ (ii) attempt to ascertain the source code of the Software or any of its
+ components by any means, nor modify, adapt, translate or create
+ derivative works based on the Software;
+ (iii) tamper or interfere with the functionality, delivery or operation
+ of the Software while using or installing it;
+ (iv) sell, resell, rent, lease, distribute, transfer, assign, sublicense
+ or otherwise deal with the Software, its components, the Documentation
+ or any of the rights granted under this License Agreement;
+ (v) duplicate, reproduce or copy (except for reasonable backup purposes)
+ the Software or the Documentation; or
+ (vi) export or re-export the Software, directly or indirectly, into any
+ country prohibited by law.
+
+3. It is prohibited to modify, remove, suppress, or in any other way make
+ inconspicuous the copyright, digital fingerprints, watermarks,
+ identification labels, legal notices contained within the Software or
+ other technical protection devices or data identifying Fluendoâs or its
+ licensors rights in the Software, its files or its components.
+
+4. No right is granted herein to any third party to use the Software, to
+ the Licensee to use the Software for any third party, or to the Licensee
+ to utilize the Software for any purpose whatsoever not described herein.
+
+OWNERSHIP
+5. Save for the right to use the Software and the Documentation
+ expressly provided for in this License Agreement, the Licensee agrees
+ and acknowledges that all title to and rights in the Software, its
+ components, structure, databases, source code or design, and in the
+ Documentation, including without limitation all copyright trademarks,
+ trade secrets, patents, and all other intellectual or industrial
+ property rights and other confidential or proprietary information
+ contained therein remain the property of Fluendo or its licensors.
+
+LIABILITY
+6. TO THE MAXIMUM EXTENT PERMITTED BY LAW, AND PROVIDED THAT LIABILITY
+ SHALL NOT BE EXCLUDED OR LIMITED IN RESPECT OF MALICIOUS INTENT OR GROSS
+ NEGLIGENCE, FLUENDO HEREBY EXCLUDES ALL LIABILITY IN RESPECT OF:
+
+a) ANY LOSS, DAMAGES, CLAIMS OR COSTS WHATSOEVER INCLUDING ANY
+ CONSEQUENTIAL, INDIRECT OR INCIDENTAL DAMAGES, ANY LOST PROFITS OR LOST
+ SAVINGS, ANY DAMAGES RESULTING FROM BUSINESS INTERRUPTION, OR CLAIMS BY
+ A THIRD PARTY, EVEN IF A FLUENDO REPRESENTATIVE HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS.
+b) DAMAGES, CLAIMS OR LIABILITIES ARISING OUT OF ANY OF THE FOLLOWING:
+ (i) THE CONTENT (INCLUDING WITHOUT LIMITATION ITS NATURE OR ANY
+ INTELLECTUAL PROPERTY RIGHTS THEREIN) AND/OR ANY OTHER DATA, IMAGES,
+ VIDEOS OR SOUNDS WHATSOEVER THAT THE LICENSEE MAY ACCESS OR TRANSMIT
+ USING THE SOFTWARE;
+ (ii) LIABILITY TO ANY EMPLOYER, PRINCIPAL, CLIENT, LESSOR OR PROVIDER OF
+ COMPUTER EQUIPMENT OR FACILITIES, ARISING OUT OF THE INSTALLATION OF OR
+ USE OF THE SOFTWARE;
+ (iii) ANY CHARGES WHICH THE LICENSEE MAY INCUR TO ANY TELECOMMUNICATIONS
+ SERVICE OR NETWORK.
+
+7. FLUENDO EXPRESSLY EXCLUDES ALL LIABILITY IN CONNECTION WITH ANY THIRD
+ PARTY APPLICATIONS OR THIRD PARTY COMPONENTS THAT MAY BE INCLUDED WITHIN
+ THE SOFTWARE, OR YOUR USE THEREOF.
+
+8. TO THE MAXIMUM EXTENT PERMITTED BY LAW, FLUENDOâS AGGREGATE LIABILITY
+ AND THAT OF ITS AFFILIATES AND SUPPLIERS UNDER OR IN CONNECTION WITH
+ THIS LICENSE AGREEMENT WILL BE LIMITED IN ANY CASE TO THE AMOUNT PAID
+ FOR THE SOFTWARE, IF ANY, OR, IF HIGHER, TO THE MINIMUM AMOUNT
+ STIPULATED BY A COMPULSORY LAW.
+
+INDEMNITY
+9. BY DOWNLOADING, INSTALLING, USING OR UNINSTALLING THE SOFTWARE, THE
+ LICENSEE HEREBY AGREES TO, AT ITS OWN EXPENSE, INDEMNIFY, DEFEND AND
+ HOLD HARMLESS FLUENDO, ITS PARENTS, SUBSIDIARIES AND AFFILIATES, ITS
+ BUSINESS PARTNERS, AND ITS AND THEIR RESPECTIVE DIRECTORS, OFFICERS,
+ EMPLOYEES AND AGENTS FROM AND AGAINST ANY AND ALL LOSSES, DAMAGES,
+ INJURIES, CAUSES OF ACTION, CLAIMS, DEMANDS AND EXPENSES, INCLUDING
+ LEGAL FEES AND EXPENSES, OF WHATEVER KIND OR NATURE ARISING OUT OF,
+ RELATING TO OR RESULTING FROM ANY CLAIM ARISING FROM OR RELATING TO (I)
+ ANY BREACH BY THE LICENSEE OF THIS LICENSE AGREEMENT; OR (II) THE
+ LICENSEEâS DOWNLOAD, INSTALLATION, USE OR UNINSTALLATION OF THE
+ SOFTWARE.
+
+TERMINATION
+10. This grant of license begins upon acceptance by the Licensee, either
+ expressly or through use or possession of the Software, and shall
+ continue until terminated as provided in this License Agreement.
+
+11. The Licensee may terminate this License Agreement at any time by
+ uninstalling the Software and destroying all copies of the Software.
+ Upon any termination, the Licensee agrees to uninstall the Software and
+ return or destroy all copies of the Software, the Documentation, and all
+ other associated materials.
+
+12. The Licenseeâs failure to comply with any of the terms and conditions
+ of this License Agreement terminates the Licenseeâs right to use the
+ Software and/or the Documentation, and the Licensee will not receive a
+ refund.
+
+CONFIDENTIALITY
+13. The Software, the Documentation, the terms of this License Agreement
+ and any other related material or data disclosed by Fluendo to the
+ Licensee will be confidential (âConfidential Informationâ) and the
+ Licensee will not disclose such Confidential Information in any form to
+ any third party without the express written consent of Fluendo, except
+ to the extent that such information: (a) is previously known to the
+ Licensee; (b) becomes publicly known or independently generated through
+ no breach of this obligation; (c) is acquired by the Licensee from a
+ third party which was not under an obligation to Fluendo not to disclose
+ such information; or (d) is required to be disclosed by a court or
+ regulatory or legislative order or provision.
+
+14. The Licensee will keep the Software and the Documentation in
+ confidence in perpetuity, will take all measures necessary to protect
+ and maintain the confidential and proprietary character of the Software
+ and the Documentation, and will indemnify Fluendo from all losses and
+ damages resulting from unauthorized or improper disclosure,
+ dissemination or use of the Software or the Documentation, as a result,
+ in whole or in part, of the Licenseeâs action or inaction.
+
+GENERAL
+15. This License Agreement contains the entire agreement between the
+ Licensee and Fluendo with respect to the subject matter hereof and
+ supersedes all prior agreements, negotiations, representations of any
+ kind and proposals, written and oral, relating to its subject matter.
+
+16. If any provision of this License Agreement is declared by a court of
+ competent jurisdiction to be invalid, illegal or unenforceable, such
+ provision shall be severed from this License Agreement and the other
+ provisions shall remain in full force and effect.
+
+17. All notices given by either party to the other pursuant to this
+ License Agreement shall be in writing and delivered at its principal
+ place of business by fax or delivery service (in either case with
+ acknowledgement of receipt).
+
+18. The waiver or failure of Fluendo to exercise in any respect any
+ rights provided for in this License Agreement shall not be deemed a
+ waiver of any actual or further right under this License Agreement.
+
+19. This License Agreement shall be governed by and construed in
+ accordance with the laws of Spain, and the parties submit to the
+ exclusive jurisdiction of the Courts and Tribunals of Barcelona in
+ connection with all matters arising under this License Agreement.
+
+FLUENDO, S.A.
+C.I.F.: A-64001217
+World Trade Center Edificio Norte, 2 pl.
+08039 Barcelona
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile Mon May 23 15:18:39 2011
@@ -0,0 +1,664 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# examples/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Makefile.am for core/libyui/doc/examples
+
+
+pkgdatadir = $(datadir)/yast2-ycp-ui-bindings
+pkgincludedir = $(includedir)/yast2-ycp-ui-bindings
+pkglibdir = $(libdir)/yast2-ycp-ui-bindings
+pkglibexecdir = $(libexecdir)/yast2-ycp-ui-bindings
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-suse-linux-gnu
+host_triplet = x86_64-suse-linux-gnu
+target_triplet = x86_64-suse-linux-gnu
+subdir = examples
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/libtool.m4 \
+ $(top_srcdir)/ltoptions.m4 $(top_srcdir)/ltsugar.m4 \
+ $(top_srcdir)/ltversion.m4 $(top_srcdir)/lt~obsolete.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(examplesdir)"
+DATA = $(examples_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run aclocal-1.11
+AGENT_LIBADD = -L$(libdir) -lscr
+ALLOCA =
+AMTAR = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run tar
+AM_DEFAULT_VERBOSITY = 0
+AR = ar
+AUTOCONF = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run autoconf
+AUTOHEADER = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run autoheader
+AUTOMAKE = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run automake-1.11
+AWK = gawk
+CAT_ENTRY_END = -->
+CAT_ENTRY_START = <!--
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2 -std=gnu++0x -DHAVE_CXX0X -Wall -Wformat=2 -Wmissing-prototypes
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2 -std=gnu++0x -DHAVE_CXX0X -Wall -Wformat=2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOCBOOK_ROOT = /usr/share/xml/docbook/stylesheet/nwalsh/current
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /usr/bin/grep -E
+EXEEXT =
+FGREP = /usr/bin/grep -F
+GREP = /usr/bin/grep
+INSTALL = /usr/bin/install -c -p
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LD = /usr/x86_64-suse-linux/bin/ld -m elf_x86_64
+LDFLAGS =
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LTLIBOBJS =
+MAINTAINER = Thomas Goettlicher <tgoettlicher(a)suse.de>
+MAKEINFO = ${SHELL} /data/yast_trunk/ycp-ui-bindings/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+NM = /usr/bin/nm -B
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = yast2-ycp-ui-bindings
+PACKAGE_BUGREPORT = http://bugs.opensuse.org/
+PACKAGE_NAME = yast2-ycp-ui-bindings
+PACKAGE_STRING = yast2-ycp-ui-bindings 2.21.1
+PACKAGE_TARNAME = yast2-ycp-ui-bindings
+PACKAGE_URL =
+PACKAGE_VERSION = 2.21.1
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_PATH =
+RANLIB = ranlib
+RPMNAME = yast2-ycp-ui-bindings
+SED = /usr/bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = strip
+STYLESHEET_CSS = /usr/share/YaST2/data/docbook/css/yast2docs.css
+STYLESHEET_HTML = /usr/share/YaST2/data/docbook/stylesheets/customize-html.xsl
+STYLESHEET_PDF = /usr/share/YaST2/data/docbook/stylesheets/customize-fo.xsl
+STYLESHEET_YCPDOC = /usr/share/YaST2/data/docbook/stylesheets/ycpdoc.xsl
+STYLESHEET_YDOC = /usr/share/YaST2/data/docbook/stylesheets/ydoc.xsl
+VERSION = 2.21.1
+XGETTEXT = /usr/bin/xgettext
+XML_CATALOG = /etc/xml/catalog
+XSLTPROC = /usr/bin/xsltproc
+XSLTPROC_FLAGS = --nonet
+Y2CORE_CFLAGS = -std=gnu++0x -DHAVE_CXX0X
+Y2CORE_LIBS =
+Y2DEVTOOLS_PREFIX = /usr
+YDOXYGEN = /usr/lib/YaST2/bin/ydoxygen
+abs_builddir = /data/yast_trunk/ycp-ui-bindings/examples
+abs_srcdir = /data/yast_trunk/ycp-ui-bindings/examples
+abs_top_builddir = /data/yast_trunk/ycp-ui-bindings
+abs_top_srcdir = /data/yast_trunk/ycp-ui-bindings
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+agentdir = ${prefix}/lib/YaST2/servers_non_y2
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = tar --format=ustar -chf - "$$tardir"
+am__untar = tar -xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-suse-linux-gnu
+build_alias =
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = suse
+builddir = .
+clientdir = ${prefix}/share/YaST2/clients
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+desktopdir = ${prefix}/share/applications/YaST2
+docdir = ${prefix}/share/doc/packages/yast2-ycp-ui-bindings
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+execcompdir = ${prefix}/lib/YaST2
+fillupdir = /var/adm/fillup-templates
+host = x86_64-suse-linux-gnu
+host_alias =
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = suse
+htmldir = ${docdir}
+imagedir = ${prefix}/share/YaST2/images
+includedir = ${prefix}/include/YaST2
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /data/yast_trunk/ycp-ui-bindings/install-sh
+libdir = /usr/lib64
+libexecdir = ${exec_prefix}/libexec
+localedir = ${prefix}/share/YaST2/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${prefix}/share/man
+mkdir_p = /bin/mkdir -p
+moduledir = ${prefix}/share/YaST2/modules
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgconfigdatadir = ${datadir}/pkgconfig
+pkgconfigdir = ${libdir}/pkgconfig
+plugindir = ${libdir}/YaST2/plugin
+potdir = ${docdir}/pot
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+schemadir = ${prefix}/share/YaST2/schema
+scrconfdir = ${prefix}/share/YaST2/scrconf
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target = x86_64-suse-linux-gnu
+target_alias =
+target_cpu = x86_64
+target_os = linux-gnu
+target_vendor = suse
+themedir = ${prefix}/share/YaST2/theme
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+yast2dir = ${prefix}/share/YaST2
+ybindir = ${prefix}/lib/YaST2/bin
+ydatadir = ${prefix}/share/YaST2/data
+yncludedir = ${prefix}/share/YaST2/include
+ystartupdir = ${prefix}/lib/YaST2
+examplesdir = $(docdir)/examples
+SUBDIRS = screenshots
+examples_DATA = $(wildcard *.ycp)
+EXTRA_DIST = $(examples_DATA)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu examples/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-examplesDATA: $(examples_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \
+ done
+
+uninstall-examplesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(examplesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-examplesDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-examplesDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am \
+ install-examplesDATA install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-examplesDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Makefile.in Mon May 23 15:18:39 2011
@@ -0,0 +1,664 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Makefile.am for core/libyui/doc/examples
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = examples
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/libtool.m4 \
+ $(top_srcdir)/ltoptions.m4 $(top_srcdir)/ltsugar.m4 \
+ $(top_srcdir)/ltversion.m4 $(top_srcdir)/lt~obsolete.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(examplesdir)"
+DATA = $(examples_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AGENT_LIBADD = @AGENT_LIBADD@
+ALLOCA = @ALLOCA@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAT_ENTRY_END = @CAT_ENTRY_END@
+CAT_ENTRY_START = @CAT_ENTRY_START@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCBOOK_ROOT = @DOCBOOK_ROOT@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINTAINER = @MAINTAINER@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+RANLIB = @RANLIB@
+RPMNAME = @RPMNAME@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+STYLESHEET_CSS = @STYLESHEET_CSS@
+STYLESHEET_HTML = @STYLESHEET_HTML@
+STYLESHEET_PDF = @STYLESHEET_PDF@
+STYLESHEET_YCPDOC = @STYLESHEET_YCPDOC@
+STYLESHEET_YDOC = @STYLESHEET_YDOC@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XML_CATALOG = @XML_CATALOG@
+XSLTPROC = @XSLTPROC@
+XSLTPROC_FLAGS = @XSLTPROC_FLAGS@
+Y2CORE_CFLAGS = @Y2CORE_CFLAGS@
+Y2CORE_LIBS = @Y2CORE_LIBS@
+Y2DEVTOOLS_PREFIX = @Y2DEVTOOLS_PREFIX@
+YDOXYGEN = @YDOXYGEN@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+agentdir = @agentdir@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+clientdir = @clientdir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+desktopdir = @desktopdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+execcompdir = @execcompdir@
+fillupdir = @fillupdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+imagedir = @imagedir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+moduledir = @moduledir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgconfigdatadir = @pkgconfigdatadir@
+pkgconfigdir = @pkgconfigdir@
+plugindir = @plugindir@
+potdir = @potdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+schemadir = @schemadir@
+scrconfdir = @scrconfdir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+themedir = @themedir@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+yast2dir = @yast2dir@
+ybindir = @ybindir@
+ydatadir = @ydatadir@
+yncludedir = @yncludedir@
+ystartupdir = @ystartupdir@
+examplesdir = $(docdir)/examples
+SUBDIRS = screenshots
+examples_DATA = $(wildcard *.ycp)
+EXTRA_DIST = $(examples_DATA)
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu examples/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-examplesDATA: $(examples_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)"
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \
+ done
+
+uninstall-examplesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(examples_DATA)'; test -n "$(examplesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(examplesdir)" && rm -f $$files
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(examplesdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-examplesDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-examplesDATA
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am \
+ install-examplesDATA install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-examplesDATA
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiLineEdit4.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,62 @@
+// Build dialog with MuliLineEdit widget,
+// a character counter for the MuliLineEdit's contents as they are typed
+// and an OK button.
+{
+ UI::OpenDialog(
+ `VBox(
+ `MultiLineEdit(`id(`problem),
+ `opt(`notify), // make UI::UserInput() return on every keystroke
+ "Problem &description:" ),
+ `HBox(
+ `Label("Number of characters entered:"),
+ `Label(`id(`char_count), "0 ")
+ ),
+ `PushButton(`id(`ok), "&OK")
+ )
+ );
+
+ UI::ChangeWidget(`id(`problem), `Value,
+ "My first input is already\nhere" );
+
+ any ret = nil;
+
+ do
+ {
+ // Wait for user input.
+ //
+ // Since the MultiLineEdit is in "notify" mode, it, too, will cause
+ // UI::UserInput() to return upon any single character entered.
+ ret = UI::UserInput();
+
+ if ( ret == `problem ) // User typed some text
+ {
+ // Set the `char_count label to the number of characters entered
+ // into the MultiLineEdit widget.
+
+ UI::ChangeWidget(`id(`char_count), `Value,
+ sformat( "%1", size( (string) UI::QueryWidget(`id(`problem), `Value) ) ) );
+ }
+ } while ( ret != `ok );
+
+ // Get the input from the MultiLineEdit.
+ //
+ // Notice: The return value of UI::UserInput() does NOT return this value!
+ // Rather, it returns the ID of the widget (normally the PushButton)
+ // that caused UI::UserInput() to return.
+ string input = (string) UI::QueryWidget(`id(`problem), `Value);
+
+ // Close the dialog.
+ // Remember to read values from the dialog's widgets BEFORE closing it!
+ UI::CloseDialog();
+
+ // Pop up a new dialog to echo the input.
+ UI::OpenDialog(
+ `VBox(
+ `Label("You entered:"),
+ `Label(input),
+ `PushButton("&OK")
+ )
+ );
+ UI::UserInput();
+ UI::CloseDialog();
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/MultiSelectionBox4.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,47 @@
+{
+ import "Label";
+
+ list items = [
+ `item (`id ("a"), "a"),
+ `item (`id ("x"), "x"),
+ `item (`id ("y"), "y"),
+ `item (`id ("z"), "z")
+ ];
+
+ term contents = `HBox (`VSpacing (20), `VBox (`HSpacing(70),
+ `VSpacing (0.2),
+ `MultiSelectionBox (`id(`multisel), `opt(`notify), "Multiselection", items),
+ `HBox (
+ `PushButton (`id (`ok), `opt (`default), Label::OKButton()),
+ `PushButton(`id (`cancel), `opt (`key_F9), Label::CancelButton())
+ ),
+ `VSpacing (0.2)
+ ));
+
+ UI::OpenDialog (`opt (`decorated), contents);
+ UI::ChangeWidget (`multisel, `CurrentItem, nil);
+
+ UI::ChangeWidget(`multisel, `SelectedItems, ["a", "x" ] );
+ UI::ChangeWidget(`multisel, `SelectedItems, ["y", "z" ] );
+
+ list selected_items = (list) UI::QueryWidget( `id(`multisel), `SelectedItems );
+ y2milestone( "Selected items: %1", selected_items );
+ y2milestone( "Current item: %1", (string) UI::QueryWidget (`id(`multisel),`CurrentItem));
+ while (true)
+ {
+ map event = UI::WaitForEvent ();
+ any ret = event["ID"]:nil;
+ if (ret == `multisel)
+ {
+ string current = (string) UI::QueryWidget (`id(`multisel),`CurrentItem);
+ y2internal ("current: %1", current);
+ }
+
+ if (ret == `ok || ret == `cancel)
+ break;
+ }
+ string current = (string) UI::QueryWidget (`id(`multisel),`CurrentItem);
+ y2internal ("current before leaving: %1", current );
+ UI::CloseDialog ();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText-license.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,50 @@
+// Example for a RichText widget
+{
+ import "String";
+
+ UI::OpenDialog( `opt(`defaultsize),
+ `VBox(
+ `Label( "HTML text or text in <pre>...</pre> tags" ),
+ `RichText (`id(`text), "" ),
+ `Label( "Plain text (`opt(`plainText))" ),
+ `RichText (`id(`plaintext), `opt(`plainText), "" ),
+ `HBox(
+ `PushButton( `id(`load), "&Load File" ),
+ `PushButton( `id(`close), "&Close" )
+ )
+ )
+ );
+ any button = nil;
+ string name = "";
+ string text = "";
+
+ repeat
+ {
+ button = UI::UserInput();
+
+ if ( button == `load )
+ {
+ name = UI::AskForExistingFile( ".", "*.txt *orig", "Select text file" );
+ string text = (string) SCR::Read(.target.string, name );
+
+ if ( text == nil)
+ {
+ text = "";
+ }
+
+ if ( regexpmatch( text, "</.*>" ) )
+ // HTML text (or RichText)
+ UI::ChangeWidget( `id(`text), `Value,
+ text );
+ else
+ // plain text
+ UI::ChangeWidget( `id(`text), `Value,
+ "<pre>" + String::EscapeTags(text) + "</pre>");
+
+ UI::ChangeWidget( `id(`plaintext), `Value, text);
+ }
+ }
+ until ( button == `close );
+
+ UI::CloseDialog();
+}
Modified: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp (original)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/RichText3.ycp Mon May 23 15:18:39 2011
@@ -7,27 +7,24 @@
+ "<p>It's very much like <i>HTML</i>, but not quite as powerful.</p>"
+ "<p>Text in <b>pre</b> tags preserves newlines and spaces.</p>"
+ "<pre>"
- + "\n"
+ " host ip adress host ip adress\n"
+ " sturm 10.10.0.159 sturm 10.10.0.159\n\n"
+ "Lines are not wrapped; in text mode HTML tags are <b>not</b> removed if the pre tag is used, "
+ "but entities like product: &product; are filtered and shown correctly.\n"
- + "\n"
+ "</pre>"
+ "<p>After <b>/pre</b> the text is <i>HTML</i> text like before.</p>"
+ "<p>Much much more text .............. continous"
+ " much much more text .... follows "
+ " much much more text .................</p>"
- + "<p>"
- + "<pre>another pre t t </pre>"
- + "and much more text after pre is closed, now <b>HTML</b> text "
+ + "<pre><small>another pre t t </small></pre>"
+ + "<p>and more text after pre is closed, now <b>HTML</b> text "
+ "</p>"
- + "<pre>"
+ + "<pre>Another text in pre preserving spaces and newlines\n"
+ " host ip adress host ip adress\n"
+ " sturm 10.10.0.159 sturm 10.10.0.159\n"
+ "Lines are not wrapped; in text mode HTML tags are <b>not</b> removed if the pre tag is used.\n"
+ "</pre>"
- + "<p>and even much more text but now not wrapped at old place but with new layout of the pad widget which is underlying the richtext widget</p>"
+ + "<p>And after closing pre tag much more text - <b>long</b> long long long long lines are now wrapped again, this is a very very very very long long long long long long line <i>Even</i> longer and longer</p>"
+ "<p><pre>And another short pre</pre></p>"
),
`PushButton(`opt(`default), "&OK")
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,34 @@
+// Tree with icons
+{
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "YaST2 Mini Control Center" ),
+ `Tree(`id(`mod), `opt(`multiSelection ),
+ "Modules",
+ [
+ `item(`id( "country" ), `icon( "yast-yast-language.png" ), "Localization", true,
+ [
+ `item(`id( "keyboard" ), `icon( "yast-keyboard.png" ), "Keyboard" ),
+ `item(`id( "timezone" ), `icon( "yast-timezone.png" ), "Time zone" )
+ ]
+ ),
+ `item(`id( "mouse" ), `icon( "yast-mouse.png" ), "Mouse" ),
+ `item(`id( "lan" ), `icon( "yast-lan.png" ), "Network" ),
+ `item(`id( `xmas ), `icon( "yast-software.png" ), "Merry X-Mas" ),
+ `item(`id( `newyear ), `icon( "yast-software.png" ), "Happy New Year" )
+ ] ),
+ `PushButton(`id(`ok), `opt(`default), "&OK")
+ )
+ );
+
+ UI::ChangeWidget(`mod, `SelectedItems, [`xmas, `newyear ] );
+
+ any id = nil;
+
+ repeat
+ {
+ id = UI::TimeoutUserInput(300);
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2warning( "Selected items: %1", selected_items );
+ } until (id == `ok);
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox2.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,38 @@
+// Tree with icons
+{
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "YaST2 Mini Control Center" ),
+ `Tree(`id(`mod), `opt(`notify, `multiSelection, `immediate ),
+ "Modules",
+ [
+ `item(`id( "country" ), `icon( "yast-yast-language.png" ), "Localization", false,
+ [
+ `item(`id( "keyboard" ), `icon( "yast-keyboard.png" ), "Keyboard" ),
+ `item(`id( "timezone" ), `icon( "yast-timezone.png" ), "Time zone" )
+ ]
+ ),
+ `item(`id( "mouse" ), `icon( "yast-mouse.png" ), "Mouse" ),
+ `item(`id( "lan" ), `icon( "yast-lan.png" ), "Network" ),
+ `item(`id( "xmas" ), `icon( "yast-software.png" ), "Merry X-Mas" ),
+ `item(`id( "newyear" ), `icon( "yast-software.png" ), "Happy New Year" )
+ ] ),
+ `HBox(`PushButton(`id(`ok), `opt(`default), "&OK"),
+ `PushButton(`id(`deselect), "&Log selected" )
+ )
+ )
+ );
+
+ UI::ChangeWidget(`mod, `SelectedItems, ["keyboard", "xmas", "newyear" ] );
+ any id = nil;
+ string current = (string) UI::QueryWidget( `id(`mod), `CurrentItem );
+ y2milestone( "Current item: %1", current );
+ repeat
+ {
+ id = UI::UserInput();
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2milestone( "Selected items: %1", selected_items );
+ current = (string) UI::QueryWidget( `id(`mod), `CurrentItem );
+ y2milestone( "Current item: %1", current );
+ } until (id == `ok);
+}
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox3.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,44 @@
+{
+ import "Label";
+
+ list items = [
+ `item (`id ("a"), "a", false, []),
+ `item (`id ("x"), "x", true, [
+ `item (`id ("y"), "y", false, []),
+ `item (`id ("z"), "z", false, []),
+ ]),
+ ];
+
+ term contents = `HBox (`VSpacing (20), `VBox (`HSpacing(70),
+ `VSpacing (0.2),
+ //`Tree (`id(`tree), `opt(`notify, `immediate, `multiSelection), "tree", items),
+ `Tree (`id(`tree), `opt(`notify, `multiSelection), "tree", items),
+ //`Tree (`id(`tree), `opt(`notify), "tree", items),
+ `HBox (
+ `PushButton (`id (`ok), `opt (`default), Label::OKButton()),
+ `PushButton(`id (`cancel), `opt (`key_F9), Label::CancelButton())
+ ),
+ `VSpacing (0.2)
+ ));
+
+ UI::OpenDialog (`opt (`decorated), contents);
+ UI::ChangeWidget (`tree, `CurrentItem, nil);
+ while (true)
+ {
+ map event = UI::WaitForEvent ();
+ any ret = event["ID"]:nil;
+ if (ret == `tree)
+ {
+ string current = (string) UI::QueryWidget (`id(`tree),`CurrentItem);
+ y2internal ("current: %1", current);
+ }
+
+ if (ret == `ok || ret == `cancel)
+ break;
+ }
+ string current = (string) UI::QueryWidget (`id(`tree),`CurrentItem);
+ y2internal ("current before leaving: %1", current);
+
+ UI::CloseDialog ();
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-Checkbox4.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,84 @@
+// Tree with recursive multi selection
+{
+
+ string formatEvent( map<string, any> event )
+ {
+ string html = "Event:";
+ foreach (string key, any value, event, ``{
+ html = html + " " + key + ": " + tostring (value) + "";
+ });
+
+ return html;
+ };
+
+
+
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "YaST2 Mini Control Center" ),
+ `Tree(`id(`mod), `opt(`multiSelection, `notify, `immediate, `recursiveSelection),
+ "Modules",
+ [
+
+ `item(`id( "unselected" ), "Unseleted" ),
+ `item(`id( "country" ), "Localization", true,
+ [
+ `item(`id( "keyboard" ), "Keyboard" ),
+ `item(`id( "timezone" ), "Time zone", true,
+ [ `item(`id( `europe ), "Europe" ),
+ `item(`id( `asia ), "Asia" )
+ ] )
+ ]
+ ),
+ `item(`id( `mouse ), "Mouse" ),
+ `item(`id( `lan ), "Network" ),
+ `item(`id( `xmas ), "Merry X-Mas" ),
+ `item(`id( `newyear ), "Happy New Year" )
+ ] ),
+ `PushButton(`id(`ok), `opt(`default), "&OK")
+ )
+ );
+
+ UI::ChangeWidget(`mod, `SelectedItems, [`lan, `mouse ] );
+ UI::ChangeWidget(`mod, `SelectedItems, [`xmas, `newyear ] );
+
+ list selected_items = (list) UI::QueryWidget( `id(`mod), `SelectedItems );
+ y2warning( "Selected items: %1", selected_items );
+
+
+ any id = nil;
+
+ map <string, any> event = $[];
+
+
+ repeat
+ {
+ event = UI::WaitForEvent( 1000 * 100 );
+
+ if( event["EventReason"]:nil == "SelectionChanged" )
+ {
+ y2error( "Selection Changed Event" );
+ }
+
+ if( event["EventReason"]:nil == "ValueChanged" )
+ {
+ y2error( "Value Changed Event" );
+ }
+
+ if ( event["EventType"]:nil == "TimeoutEvent" )
+ {
+
+ y2error( "Timeout Event" );
+ }
+
+ if ( event != nil )
+ {
+ y2error( formatEvent( event ) );
+ }
+
+ id = event["ID"]:nil ;
+ y2milestone("Selected items: %1", (list)UI::QueryWidget(`id(`mod), `SelectedItems ));
+
+ } until (id == `ok);
+}
+
Added: branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ycp-u…
==============================================================================
--- branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp (added)
+++ branches/SuSE-Code-11-SP1-Branch/ycp-ui-bindings/examples/Tree-recursive-large.ycp Mon May 23 15:18:39 2011
@@ -0,0 +1,10050 @@
+// Tree with icons
+{
+ UI::OpenDialog(
+ `VBox(
+ `Heading( "TreeWidget Example" ),
+ `Tree(`id(`mod), `opt(`notify, `multiSelection, `immediate, `recursiveSelection ),
+ "Modules",
+ [
+ `item(`id( "dog" ), `icon( "yast-yast-language.png" ), "dog", false,
+ [
+ `item(`id( "cat" ), `icon( "yast-keyboard.png" ), "cat" ),
+ `item(`id( "mouse" ), `icon( "yast-timezone.png" ), "mouse" , false,
+ [
+ `item(`id( "bird" ), `icon( "yast-keyboard.png" ), "bird" ),
+ `item(`id( "donkey" ), `icon( "yast-timezone.png" ), "donkey" ),
+ `item(`id( "bee" ), `icon( "yast-timezone.png" ), "bee" , false,
+ [
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+ `item(`id( "ant" ), `icon( "yast-keyboard.png" ), "ant" ),
+