[QGIS Commit] r14439 - in trunk/qgis/src: app core ui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Oct 27 19:24:27 EDT 2010


Author: jef
Date: 2010-10-27 16:24:27 -0700 (Wed, 27 Oct 2010)
New Revision: 14439

Modified:
   trunk/qgis/src/app/qgsoptions.cpp
   trunk/qgis/src/app/qgsoptions.h
   trunk/qgis/src/core/qgscoordinatetransform.cpp
   trunk/qgis/src/core/qgscoordinatetransform.h
   trunk/qgis/src/ui/qgsoptionsbase.ui
Log:
partly revert r14399 (all except srs updates):
- proj.4 user paths mask standard directory
- gsb file warning doesn't make sense for optional grids.


Modified: trunk/qgis/src/app/qgsoptions.cpp
===================================================================
--- trunk/qgis/src/app/qgsoptions.cpp	2010-10-27 21:53:11 UTC (rev 14438)
+++ trunk/qgis/src/app/qgsoptions.cpp	2010-10-27 23:24:27 UTC (rev 14439)
@@ -85,15 +85,6 @@
     }
   }
 
-  //local directories to search when looking for an PROJ.4 file with a given basename
-  foreach( QString path, settings.value( "projSearchPaths" ).toStringList() )
-  {
-    QListWidgetItem* newItem = new QListWidgetItem( mListProjPaths );
-    newItem->setText( path );
-    newItem->setFlags( Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable );
-    mListProjPaths->addItem( newItem );
-  }
-
   //Network timeout
   mNetworkTimeoutSpinBox->setValue( settings.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt() );
 
@@ -473,13 +464,6 @@
   }
   settings.setValue( "svg/searchPathsForSVG", myPaths );
 
-  QStringList paths;
-  for ( int i = 0; i < mListProjPaths->count(); ++i )
-  {
-    paths << mListProjPaths->item( i )->text();
-  }
-  settings.setValue( "projSearchPaths", paths );
-
   //Network timeout
   settings.setValue( "/qgis/networkAndProxy/networkTimeout", mNetworkTimeoutSpinBox->value() );
 
@@ -888,33 +872,6 @@
   delete itemToRemove;
 }
 
-void QgsOptions::on_mBtnAddProjPath_clicked()
-{
-  QString myDir = QFileDialog::getExistingDirectory(
-                    this,
-                    tr( "Choose a directory" ),
-                    QDir::toNativeSeparators( QDir::homePath() ),
-                    QFileDialog::ShowDirsOnly
-                  );
-
-  if ( ! myDir.isEmpty() )
-  {
-    QListWidgetItem* newItem = new QListWidgetItem( mListProjPaths );
-    newItem->setText( myDir );
-    newItem->setFlags( Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable );
-    mListProjPaths->addItem( newItem );
-    mListProjPaths->setCurrentItem( newItem );
-  }
-}
-
-void QgsOptions::on_mBtnRemoveProjPath_clicked()
-{
-  int currentRow = mListProjPaths->currentRow();
-  QListWidgetItem* itemToRemove = mListProjPaths->takeItem( currentRow );
-  delete itemToRemove;
-}
-
-
 void QgsOptions::on_mAddUrlPushButton_clicked()
 {
   QListWidgetItem* newItem = new QListWidgetItem( mExcludeUrlListWidget );

Modified: trunk/qgis/src/app/qgsoptions.h
===================================================================
--- trunk/qgis/src/app/qgsoptions.h	2010-10-27 21:53:11 UTC (rev 14438)
+++ trunk/qgis/src/app/qgsoptions.h	2010-10-27 23:24:27 UTC (rev 14439)
@@ -101,12 +101,6 @@
      */
     void on_mBtnRemoveSVGPath_clicked();
 
-    /* Let the user add a path to the list of search paths used for finding PROJ.4 files. */
-    void on_mBtnAddProjPath_clicked();
-
-    /* Let the user remove a path to the list of search paths for finding PROJ.4 files. */
-    void on_mBtnRemoveProjPath_clicked();
-
     void on_buttonBox_helpRequested() { QgsContextHelp::run( metaObject()->className() ); }
 
     void on_mBrowseCacheDirectory_clicked();

Modified: trunk/qgis/src/core/qgscoordinatetransform.cpp
===================================================================
--- trunk/qgis/src/core/qgscoordinatetransform.cpp	2010-10-27 21:53:11 UTC (rev 14438)
+++ trunk/qgis/src/core/qgscoordinatetransform.cpp	2010-10-27 23:24:27 UTC (rev 14439)
@@ -23,10 +23,7 @@
 #include <QDomNode>
 #include <QDomElement>
 #include <QApplication>
-#include <QSettings>
-#include <QStringList>
-#include <QFileInfo>
-#include <QSet>
+#include "qgslogger.h"
 
 extern "C"
 {
@@ -548,51 +545,28 @@
   return true;
 }
 
-void QgsCoordinateTransform::setFinder()
+const char *finder( const char *name )
 {
-  pj_set_finder( finder );
+  QString proj;
+#ifdef WIN32
+  proj = QApplication::applicationDirPath()
+         + "/share/proj/" + QString( name );
+#endif
+  return proj.toUtf8();
 }
 
-const char *QgsCoordinateTransform::finder( const char *name )
+void QgsCoordinateTransform::setFinder()
 {
-  QSettings settings;
-  QStringList paths = settings.value( "projSearchPaths" ).toStringList();
-
-  if ( getenv( "PROJ_LIB" ) )
-  {
-    paths << getenv( "PROJ_LIB" );
-  }
-
 #ifdef WIN32
-  paths << QApplication::applicationDirPath() + "/share/proj";
-#endif
+  // Attention! It should be possible to set PROJ_LIB
+  // but it can happen that it was previously set by installer
+  // (version 0.7) and the old installation was deleted
 
-  foreach( QString path, paths )
-  {
-    QFileInfo fi( QString( "%1/%2" ).arg( path ).arg( name ) );
-    if ( fi.exists() )
-      return fi.canonicalFilePath().toUtf8();
-  }
+  // Another problem: PROJ checks if pj_finder was set before
+  // PROJ_LIB environment variable. pj_finder is probably set in
+  // GRASS gproj library when plugin is loaded, consequently
+  // PROJ_LIB is ignored
 
-  if ( QString( name ).endsWith( ".gsb", Qt::CaseInsensitive ) )
-  {
-    static QSet<QString> missing;
-
-    if ( !missing.contains( name ) )
-    {
-      QgsMessageOutput *output = QgsMessageOutput::createMessageOutput();
-      output->setTitle( "Grid transformation missing" );
-      output->setMessage( tr( "PROJ.4 file %1 not found in any of these directories:\n\n"
-                              "%2\n\n"
-                              "Note: This message won't reappear for this file in this session." )
-                          .arg( name )
-                          .arg( paths.join( "\n" ) ),
-                          QgsMessageOutput::MessageText );
-      output->showMessage();
-    }
-
-    missing << name;
-  }
-
-  return name;
+  pj_set_finder( finder );
+#endif
 }

Modified: trunk/qgis/src/core/qgscoordinatetransform.h
===================================================================
--- trunk/qgis/src/core/qgscoordinatetransform.h	2010-10-27 21:53:11 UTC (rev 14438)
+++ trunk/qgis/src/core/qgscoordinatetransform.h	2010-10-27 23:24:27 UTC (rev 14439)
@@ -256,14 +256,9 @@
     projPJ mDestinationProjection;
 
     /*!
-     * Set finder for PROJ grid files.
-     */
-    void setFinder();
-
-    /*!
      * Finder for PROJ grid files.
      */
-    static const char *finder( const char *name );
+    void setFinder();
 };
 
 //! Output stream operator

Modified: trunk/qgis/src/ui/qgsoptionsbase.ui
===================================================================
--- trunk/qgis/src/ui/qgsoptionsbase.ui	2010-10-27 21:53:11 UTC (rev 14438)
+++ trunk/qgis/src/ui/qgsoptionsbase.ui	2010-10-27 23:24:27 UTC (rev 14439)
@@ -212,16 +212,6 @@
      </item>
     </widget>
    </item>
-   <item row="1" column="0" colspan="2">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
    <item row="0" column="1">
     <widget class="QStackedWidget" name="stackedWidget">
      <property name="currentIndex">
@@ -634,52 +624,6 @@
          </layout>
         </widget>
        </item>
-       <item>
-        <widget class="QGroupBox" name="groupBox_4">
-         <property name="title">
-          <string>PROJ.4 search paths</string>
-         </property>
-         <layout class="QGridLayout" name="gridLayout_4">
-          <item row="4" column="0" colspan="4">
-           <widget class="QListWidget" name="mListProjPaths"/>
-          </item>
-          <item row="3" column="1">
-           <spacer name="spacer">
-            <property name="orientation">
-             <enum>Qt::Horizontal</enum>
-            </property>
-            <property name="sizeHint" stdset="0">
-             <size>
-              <width>31</width>
-              <height>20</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-          <item row="3" column="2">
-           <widget class="QPushButton" name="mBtnAddProjPath">
-            <property name="text">
-             <string>Add</string>
-            </property>
-           </widget>
-          </item>
-          <item row="3" column="3">
-           <widget class="QPushButton" name="mBtnRemoveProjPath">
-            <property name="text">
-             <string>Remove</string>
-            </property>
-           </widget>
-          </item>
-          <item row="3" column="0">
-           <widget class="QLabel" name="mProjLabel">
-            <property name="text">
-             <string>Path(s) to search for PROJ.4 files</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
       </layout>
      </widget>
      <widget class="QWidget" name="stackedWidgetPage3">
@@ -1655,6 +1599,16 @@
      </widget>
     </widget>
    </item>
+   <item row="1" column="0" colspan="2">
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <layoutdefault spacing="6" margin="11"/>



More information about the QGIS-commit mailing list