Author: kmachalkova
Date: Wed Jul 23 14:22:40 2008
New Revision: 49347
URL: http://svn.opensuse.org/viewcvs/yast?rev=49347&view=rev
Log:
Additional refinement of pkg search (using PoolQuery)
Modified:
trunk/ncurses-pkg/src/NCPkgFilterSearch.cc
trunk/ncurses-pkg/src/NCPkgFilterSearch.h
Modified: trunk/ncurses-pkg/src/NCPkgFilterSearch.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgFilterSearch.cc?rev=49347&r1=49346&r2=49347&view=diff
==============================================================================
--- trunk/ncurses-pkg/src/NCPkgFilterSearch.cc (original)
+++ trunk/ncurses-pkg/src/NCPkgFilterSearch.cc Wed Jul 23 14:22:40 2008
@@ -17,6 +17,7 @@
/-*/
#define YUILogComponent "ncurses-pkg"
#include
+#include <string>
#include <sstream>
#include
@@ -85,25 +86,35 @@
// add the input field (a editable combo box)
NCLayoutBox * vSplit = new NCLayoutBox ( frame0, YD_VERT);
- new NCSpacing( vSplit, YD_VERT, true, 0.5 );
+ //new NCSpacing( vSplit, YD_VERT, true, 0.5 );
searchExpr = new NCInputField( vSplit, NCPkgStrings::SearchPhrase() );
searchExpr->setStretchable( YD_HORIZ, true );
searchExpr->setReturnOnReturn( true );
packager->setSearchField( searchExpr );
- new NCSpacing( vSplit, YD_VERT, false, 0.5 );
+ //new NCSpacing( vSplit, YD_VERT, false, 0.5 );
if ( !packager->isYouMode() )
{
// add the checkBox ignore case
- NCAlignment *left = new NCAlignment( vSplit, YAlignBegin, YAlignUnchanged );
+ NCAlignment *left1 = new NCAlignment( vSplit, YAlignBegin, YAlignUnchanged );
- ignoreCase = new NCCheckBox( left, _( "&Ignore Case" ), true );
+ ignoreCase = new NCCheckBox( left1, _( "&Ignore Case" ), true );
new NCSpacing( vSplit, YD_VERT, true, 0.5 );
}
-
+
+ NCAlignment *left2 = new NCAlignment( vSplit, YAlignBegin, YAlignUnchanged );
+ searchMode = new NCComboBox (left2, _("Search &Mode"), false);
+
+ searchMode->addItem( _("Contains"), false);
+ searchMode->addItem( _("Begins with"), false);
+ searchMode->addItem( _("Exact Match"), false);
+ searchMode->addItem( _("Use Wildcards"), false);
+ searchMode->addItem( _("Use RegExp"), false);
+
+ new NCSpacing( vSplit, YD_VERT, true, 0.5 );
}
@@ -147,7 +158,7 @@
}
-bool NCPkgFilterSearch::fillSearchList( const string & expr,
+bool NCPkgFilterSearch::fillSearchList( string & expr,
bool ignoreCase,
bool checkName,
bool checkSummary,
@@ -166,6 +177,26 @@
packageList->itemsCleared ();
zypp::PoolQuery q;
+
+ switch ( searchMode->getCurrentItem() )
+ {
+ case Contains:
+ q.setMatchSubstring();
+ break;
+ case BeginsWith:
+ expr = '^' + expr;
+ q.setMatchRegex();
+ break;
+ case ExactMatch:
+ break;
+ case UseWildcard:
+ q.setMatchGlob();
+ break;
+ case UseRegexp:
+ q.setMatchRegex();
+ break;
+ }
+
q.addString( expr );
q.addKind( zypp::ResKind::package );
//no clue what this means, but it segfaults if it's not here :)
Modified: trunk/ncurses-pkg/src/NCPkgFilterSearch.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ncurses-pkg/src/NCPkgFilterSearch.h?rev=49347&r1=49346&r2=49347&view=diff
==============================================================================
--- trunk/ncurses-pkg/src/NCPkgFilterSearch.h (original)
+++ trunk/ncurses-pkg/src/NCPkgFilterSearch.h Wed Jul 23 14:22:40 2008
@@ -32,6 +32,7 @@
#include "NCLayoutBox.h"
#include "NCRichText.h"
#include "NCCheckBox.h"
+#include "NCComboBox.h"
#include "NCPushButton.h"
class NCPackageSelector;
@@ -49,8 +50,17 @@
private:
+ enum SearchMode {
+ Contains = 0,
+ BeginsWith,
+ ExactMatch,
+ UseWildcard,
+ UseRegexp
+ };
+
NCInputField * searchExpr;
NCCheckBox * ignoreCase;
+ NCComboBox * searchMode;
NCPackageSelector * packager; // connection to the package selector
@@ -70,7 +80,7 @@
virtual bool showSearchResultPackages();
bool match ( string s1, string s2, bool ignoreCase );
- bool fillSearchList( const string & expr,
+ bool fillSearchList( string & expr,
bool ignoreCase,
bool checkName,
bool checkSummary,
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org