[Kstars-devel] branches/kstars/unfrozen/kstars/kstars

Jason Harris kstars at 30doradus.org
Tue Jul 8 07:18:00 CEST 2008


SVN commit 829313 by harris:

Committing patch from Prakash to make the Find dialog more flexible.  You can now 
omit spaces when searching for M/NGC/IC objects.  
i.e., "m51" will match to "M 51".

Thanks for the patch, Prakash!

CCMAIL: kstars-devel at kde.org



 M  +10 -11    finddialog.cpp  
 M  +1 -1      finddialog.h  


--- branches/kstars/unfrozen/kstars/kstars/finddialog.cpp #829312:829313
@@ -78,8 +78,7 @@
     listFiltered = false;
 }
 
-FindDialog::~FindDialog() {
-}
+FindDialog::~FindDialog() { }
 
 void FindDialog::init() {
     ui->SearchBox->clear();
@@ -197,13 +196,15 @@
 }
 
 void FindDialog::filterList() {  
-    sortModel->setFilterFixedString( ui->SearchBox->text() );
+	QString SearchText;
+	SearchText = processSearchText();
+    sortModel->setFilterFixedString( SearchText );
     filterByType();
     initSelection();
 
     //Select the first item in the list that begins with the filter string
-    if ( ! ui->SearchBox->text().isEmpty() ) {
-        QStringList mItems = fModel->stringList().filter( QRegExp( '^'+ui->SearchBox->text(), Qt::CaseInsensitive ) );
+    if ( !SearchText.isEmpty() ) {
+        QStringList mItems = fModel->stringList().filter( QRegExp( '^'+SearchText, Qt::CaseInsensitive ) );
         mItems.sort();
     
         if ( mItems.size() ) {
@@ -247,8 +248,9 @@
 }
 
 // Process the search box text to replace equivalent names like "m93" with "m 93"
-void FindDialog::processSearchText() {
+QString FindDialog::processSearchText() {
     QRegExp re;
+    QString searchtext = ui->SearchBox->text();
 
     // NOTE: The following function has been DEPRECATED. What should I use instead?
     re.setCaseSensitive( false ); 
@@ -256,30 +258,27 @@
     // If it is an NGC/IC/M catalog number, as in "M 76" or "NGC 5139", check for absence of the space
     re.setPattern("^(m|ngc|ic)\\s*\\d*$");
     if(ui->SearchBox->text().contains(re)) {
-        QString searchtext = ui->SearchBox->text();
         re.setPattern("\\s*(\\d+)");
         searchtext.replace( re, " \\1" );
         re.setPattern("\\s*$");
         searchtext.replace(re, "");
         re.setPattern("^\\s*");
         searchtext.replace(re, "");
-        ui->SearchBox->setText(searchtext);
-        return;
     }
 
     // TODO after KDE 4.1 release:
     // If it is a IAU standard three letter abbreviation for a constellation, then go to that constellation
     // Check for genetive names of stars. Example: alp CMa must go to alpha Canis Majoris
+
+    return searchtext;
 }
 
 void FindDialog::slotOk() {
     //If no valid object selected, show a sorry-box.  Otherwise, emit accept()
     if(!listFiltered) {
-        processSearchText();
         filterList();
     }
     if(!selectedObject()) {
-        processSearchText();
         filterList();
     }
     if ( selectedObject() == 0 ) {
--- branches/kstars/unfrozen/kstars/kstars/finddialog.h #829312:829313
@@ -112,7 +112,7 @@
      *
      * This could include replacing text like "m93" with "m 93"
      */
-    void processSearchText();
+     QString processSearchText();
 
     /**
      *@short pre-filter the list of objects according to 


More information about the Kstars-devel mailing list