Quantum GIS API Documentation
1.8
|
00001 /*************************************************************************** 00002 qgsgenericprojectionselector.cpp 00003 Set user defined CRS using projection selector widget 00004 ------------------- 00005 begin : May 28, 2004 00006 copyright : (C) 2004 by Gary E.Sherman 00007 email : sherman at mrcc.com 00008 ***************************************************************************/ 00009 00010 /*************************************************************************** 00011 * * 00012 * This program is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU General Public License as published by * 00014 * the Free Software Foundation; either version 2 of the License, or * 00015 * (at your option) any later version. * 00016 * * 00017 ***************************************************************************/ 00018 #include "qgsapplication.h" 00019 00020 #include <qgsgenericprojectionselector.h> 00021 #include <QApplication> 00022 #include <QSettings> 00023 00028 QgsGenericProjectionSelector::QgsGenericProjectionSelector( QWidget *parent, 00029 Qt::WFlags fl ) 00030 : QDialog( parent, fl ) 00031 { 00032 setupUi( this ); 00033 00034 QSettings settings; 00035 restoreGeometry( settings.value( "/Windows/ProjectionSelector/geometry" ).toByteArray() ); 00036 00037 //we will show this only when a message is set 00038 textEdit->hide(); 00039 } 00040 00041 void QgsGenericProjectionSelector::setMessage( QString theMessage ) 00042 { 00043 //short term kludge to make the layer selector default to showing 00044 //a layer projection selection message. If you want the selector 00045 if ( theMessage.isEmpty() ) 00046 { 00047 // Set up text edit pane 00048 QString format( "<h1>%1</h1>%2 %3" ); 00049 QString header = tr( "Define this layer's coordinate reference system:" ); 00050 QString sentence1 = tr( "This layer appears to have no projection specification." ); 00051 QString sentence2 = tr( "By default, this layer will now have its projection set to that of the project, " 00052 "but you may override this by selecting a different projection below." ); 00053 theMessage = format.arg( header ).arg( sentence1 ).arg( sentence2 ); 00054 } 00055 00056 QString myStyle = QgsApplication::reportStyleSheet(); 00057 theMessage = "<head><style>" + myStyle + "</style></head><body>" + theMessage + "</body>"; 00058 textEdit->setHtml( theMessage ); 00059 textEdit->show(); 00060 } 00062 QgsGenericProjectionSelector::~QgsGenericProjectionSelector() 00063 { 00064 QSettings settings; 00065 settings.setValue( "/Windows/ProjectionSelector/geometry", saveGeometry() ); 00066 } 00067 00068 void QgsGenericProjectionSelector::setSelectedEpsg( long theId ) 00069 { 00070 projectionSelector->setSelectedAuthId( QString( "EPSG:%1" ).arg( theId ) ); 00071 } 00072 00073 void QgsGenericProjectionSelector::setSelectedCrsName( QString theName ) 00074 { 00075 projectionSelector->setSelectedCrsName( theName ); 00076 } 00077 00078 void QgsGenericProjectionSelector::setSelectedCrsId( long theID ) 00079 { 00080 projectionSelector->setSelectedCrsId( theID ); 00081 } 00082 00083 void QgsGenericProjectionSelector::setSelectedAuthId( QString theID ) 00084 { 00085 projectionSelector->setSelectedAuthId( theID ); 00086 } 00087 00088 QString QgsGenericProjectionSelector::selectedProj4String() 00089 { 00090 //@note don't use getSelectedWkt as that just returns the name part! 00091 return projectionSelector->selectedProj4String(); 00092 } 00093 00094 long QgsGenericProjectionSelector::selectedCrsId() 00095 { 00096 //@note don't use getSelectedWkt as that just returns the name part! 00097 return projectionSelector->selectedCrsId(); 00098 } 00099 00100 long QgsGenericProjectionSelector::selectedEpsg() 00101 { 00102 QString authid = projectionSelector->selectedAuthId(); 00103 if ( authid.startsWith( "EPSG:", Qt::CaseInsensitive ) ) 00104 return authid.mid( 5 ).toLong(); 00105 else 00106 return 0; 00107 } 00108 00109 QString QgsGenericProjectionSelector::selectedAuthId() 00110 { 00111 return projectionSelector->selectedAuthId(); 00112 } 00113 00114 void QgsGenericProjectionSelector::setOgcWmsCrsFilter( QSet<QString> crsFilter ) 00115 { 00116 projectionSelector->setOgcWmsCrsFilter( crsFilter ); 00117 }