Skip to content

Commit fab96ed

Browse files
committedJul 17, 2012
add project defaults for layer symbology
1 parent 3a663fb commit fab96ed

File tree

7 files changed

+476
-15
lines changed

7 files changed

+476
-15
lines changed
 

‎src/app/qgsprojectproperties.cpp

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@
3131
#include "qgssnappingdialog.h"
3232
#include "qgsrasterlayer.h"
3333
#include "qgsgenericprojectionselector.h"
34+
#include "qgsstylev2.h"
35+
#include "qgssymbolv2.h"
36+
#include "qgsstylev2managerdialog.h"
37+
#include "qgsvectorcolorrampv2.h"
38+
#include "qgssymbolv2propertiesdialog.h"
3439

3540
//qt includes
3641
#include <QColorDialog>
@@ -276,6 +281,10 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas* mapCanvas, QWidget *pa
276281
twWFSLayers->setRowCount( j );
277282
twWFSLayers->verticalHeader()->setResizeMode( QHeaderView::ResizeToContents );
278283

284+
// Default Styles
285+
mStyle = QgsStyleV2::defaultStyle();
286+
populateStyles();
287+
279288
restoreState();
280289
}
281290

@@ -506,6 +515,13 @@ void QgsProjectProperties::apply()
506515
}
507516
QgsProject::instance()->writeEntry( "WFSLayers", "/", wfsLayerList );
508517

518+
// Default Styles
519+
QgsProject::instance()->writeEntry( "DefaultStyles", "/Marker", cboStyleMarker->currentText() );
520+
QgsProject::instance()->writeEntry( "DefaultStyles", "/Line", cboStyleLine->currentText() );
521+
QgsProject::instance()->writeEntry( "DefaultStyles", "/Fill", cboStyleFill->currentText() );
522+
QgsProject::instance()->writeEntry( "DefaultStyles", "/ColorRamp", cboStyleColorRamp->currentText() );
523+
QgsProject::instance()->writeEntry( "DefaultStyles", "/RandomColors", cbxStyleRandomColors->isChecked() );
524+
509525
//todo XXX set canvas color
510526
emit refresh();
511527
}
@@ -677,3 +693,136 @@ void QgsProjectProperties::on_pbnWMSSetUsedSRS_clicked()
677693
mWMSList->clear();
678694
mWMSList->addItems( crsList.values() );
679695
}
696+
697+
void QgsProjectProperties::populateStyles()
698+
{
699+
// Styles - taken from qgsstylev2managerdialog
700+
701+
// use QComboBox and QString lists for shorter code
702+
QStringList prefList;
703+
QList<QComboBox*> cboList;
704+
cboList << cboStyleMarker;
705+
prefList << QgsProject::instance()->readEntry( "DefaultStyles", "/Marker", "" );
706+
cboList << cboStyleLine;
707+
prefList << QgsProject::instance()->readEntry( "DefaultStyles", "/Line", "" );
708+
cboList << cboStyleFill;
709+
prefList << QgsProject::instance()->readEntry( "DefaultStyles", "/Fill", "" );
710+
cboList << cboStyleColorRamp;
711+
prefList << QgsProject::instance()->readEntry( "DefaultStyles", "/ColorRamp", "" );
712+
for ( int i = 0; i < cboList.count(); i++ )
713+
{
714+
cboList[i]->clear();
715+
cboList[i]->addItem( "" );
716+
}
717+
718+
// populate symbols
719+
QStringList symbolNames = mStyle->symbolNames();
720+
for ( int i = 0; i < symbolNames.count(); ++i )
721+
{
722+
QString name = symbolNames[i];
723+
QgsSymbolV2* symbol = mStyle->symbol( name );
724+
QComboBox* cbo = 0;
725+
switch ( symbol->type() )
726+
{
727+
case QgsSymbolV2::Marker :
728+
cbo = cboStyleMarker;
729+
break;
730+
case QgsSymbolV2::Line :
731+
cbo = cboStyleLine;
732+
break;
733+
case QgsSymbolV2::Fill :
734+
cbo = cboStyleFill;
735+
break;
736+
}
737+
if ( cbo )
738+
{
739+
QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon( symbol, cbo->iconSize() );
740+
cbo->addItem( icon, name );
741+
}
742+
delete symbol;
743+
}
744+
745+
// populate color ramps
746+
QStringList colorRamps = mStyle->colorRampNames();
747+
for ( int i = 0; i < colorRamps.count(); ++i )
748+
{
749+
QString name = colorRamps[i];
750+
QgsVectorColorRampV2* ramp = mStyle->colorRamp( name );
751+
QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon( ramp, cboStyleColorRamp->iconSize() );
752+
cboStyleColorRamp->addItem( icon, name );
753+
delete ramp;
754+
}
755+
756+
// set current index if found
757+
for ( int i = 0; i < cboList.count(); i++ )
758+
{
759+
int index = cboList[i]->findText( prefList[i], Qt::MatchCaseSensitive );
760+
if ( index >= 0 )
761+
cboList[i]->setCurrentIndex( index );
762+
}
763+
764+
// random colors?
765+
cbxStyleRandomColors->setChecked( QgsProject::instance()->readBoolEntry( "DefaultStyles", "/RandomColors", true ) );
766+
767+
}
768+
769+
void QgsProjectProperties::on_pbtnStyleManager_clicked()
770+
{
771+
QgsStyleV2ManagerDialog dlg( mStyle, this );
772+
dlg.exec();
773+
populateStyles();
774+
}
775+
776+
void QgsProjectProperties::on_pbtnStyleMarker_clicked()
777+
{
778+
editSymbol( cboStyleMarker );
779+
}
780+
781+
void QgsProjectProperties::on_pbtnStyleLine_clicked()
782+
{
783+
editSymbol( cboStyleLine );
784+
}
785+
786+
void QgsProjectProperties::on_pbtnStyleFill_clicked()
787+
{
788+
editSymbol( cboStyleFill );
789+
}
790+
791+
void QgsProjectProperties::editSymbol( QComboBox* cbo )
792+
{
793+
QString symbolName = cbo->currentText();
794+
if ( symbolName == "" )
795+
{
796+
QMessageBox::information( this, "", tr( "Select a valid symbol" ) );
797+
return;
798+
}
799+
QgsSymbolV2* symbol = mStyle->symbol( symbolName );
800+
if ( ! symbol )
801+
{
802+
QMessageBox::warning( this, "", tr( "Invalid symbol : " ) + symbolName );
803+
return;
804+
}
805+
806+
// let the user edit the symbol and update list when done
807+
QgsSymbolV2PropertiesDialog dlg( symbol, 0, this );
808+
if ( dlg.exec() == 0 )
809+
{
810+
delete symbol;
811+
return;
812+
}
813+
814+
// by adding symbol to style with the same name the old effectively gets overwritten
815+
mStyle->addSymbol( symbolName, symbol );
816+
817+
// update icon
818+
QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon( symbol, cbo->iconSize() );
819+
cbo->setItemIcon( cbo->currentIndex(), icon );
820+
}
821+
822+
void QgsProjectProperties::on_pbtnStyleColorRamp_clicked()
823+
{
824+
// TODO for now just open style manager
825+
// code in QgsStyleV2ManagerDialog::editColorRamp()
826+
on_pbtnStyleManager_clicked();
827+
}
828+

‎src/app/qgsprojectproperties.h

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include "qgscontexthelp.h"
2424

2525
class QgsMapCanvas;
26-
26+
class QgsStyleV2;
2727

2828
/*! Dialog to set project level properties
2929
@@ -91,6 +91,15 @@ class QgsProjectProperties : public QDialog, private Ui::QgsProjectPropertiesBas
9191
void on_pbnWMSRemoveSRS_clicked();
9292
void on_pbnWMSSetUsedSRS_clicked();
9393

94+
/*!
95+
* Slots for Styles
96+
*/
97+
void on_pbtnStyleManager_clicked();
98+
void on_pbtnStyleMarker_clicked();
99+
void on_pbtnStyleLine_clicked();
100+
void on_pbtnStyleFill_clicked();
101+
void on_pbtnStyleColorRamp_clicked();
102+
94103
/*!
95104
* Slot to show the context help for this dialog
96105
*/
@@ -113,6 +122,10 @@ class QgsProjectProperties : public QDialog, private Ui::QgsProjectPropertiesBas
113122

114123
private:
115124
QgsMapCanvas* mMapCanvas;
125+
QgsStyleV2* mStyle;
126+
127+
void populateStyles();
128+
void editSymbol( QComboBox* cbo );
116129

117130
/*!
118131
* Function to save dialog window state

‎src/core/qgsvectorlayer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
#include "qgssymbollayerv2.h"
7171
#include "qgssinglesymbolrendererv2.h"
7272
#include "qgsdiagramrendererv2.h"
73+
#include "qgsstylev2.h"
7374

7475
#ifdef TESTPROVIDERLIB
7576
#include <dlfcn.h>

‎src/core/symbology-ng/qgssymbolv2.cpp

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
#include "qgslogger.h"
2525
#include "qgsrendercontext.h" // for bigSymbolPreview
2626

27+
#include "qgsproject.h"
28+
#include "qgsstylev2.h"
29+
2730
#include <QColor>
2831
#include <QImage>
2932
#include <QPainter>
@@ -60,20 +63,48 @@ QgsSymbolV2::~QgsSymbolV2()
6063

6164
QgsSymbolV2* QgsSymbolV2::defaultSymbol( QGis::GeometryType geomType )
6265
{
63-
QgsSymbolV2* s;
66+
QgsSymbolV2* s = 0;
67+
68+
// override global default if project has a default for this type
69+
QString defaultSymbol;
6470
switch ( geomType )
6571
{
66-
case QGis::Point: s = new QgsMarkerSymbolV2(); break;
67-
case QGis::Line: s = new QgsLineSymbolV2(); break;
68-
case QGis::Polygon: s = new QgsFillSymbolV2(); break;
69-
default: QgsDebugMsg( "unknown layer's geometry type" ); return NULL;
72+
case QGis::Point :
73+
defaultSymbol = QgsProject::instance()->readEntry( "DefaultStyles", "/Marker", "" );
74+
break;
75+
case QGis::Line :
76+
defaultSymbol = QgsProject::instance()->readEntry( "DefaultStyles", "/Line", "" );
77+
break;
78+
case QGis::Polygon :
79+
defaultSymbol = QgsProject::instance()->readEntry( "DefaultStyles", "/Fill", "" );
80+
break;
81+
default: defaultSymbol = ""; break;
82+
}
83+
if ( defaultSymbol != "" )
84+
s = QgsStyleV2::defaultStyle()->symbol( defaultSymbol );
85+
86+
// if no default found for this type, get global default (as previously)
87+
if ( ! s )
88+
{
89+
switch ( geomType )
90+
{
91+
case QGis::Point: s = new QgsMarkerSymbolV2(); break;
92+
case QGis::Line: s = new QgsLineSymbolV2(); break;
93+
case QGis::Polygon: s = new QgsFillSymbolV2(); break;
94+
default: QgsDebugMsg( "unknown layer's geometry type" ); return NULL;
95+
}
96+
}
97+
98+
// set random color, it project prefs allow
99+
if ( defaultSymbol == "" ||
100+
QgsProject::instance()->readBoolEntry( "DefaultStyles", "/RandomColors", true ) )
101+
{
102+
s->setColor( QColor::fromHsv( rand() % 360, 64 + rand() % 192, 128 + rand() % 128 ) );
70103
}
71104

72-
s->setColor( QColor::fromHsv( rand() % 360, 64 + rand() % 192, 128 + rand() % 128 ) );
73105
return s;
74106
}
75107

76-
77108
QgsSymbolLayerV2* QgsSymbolV2::symbolLayer( int layer )
78109
{
79110
if ( layer < 0 || layer >= mLayers.count() )

‎src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
#include "qgssymbolv2selectordialog.h"
2525

2626
#include "qgsvectorlayer.h"
27+
28+
#include "qgsproject.h"
29+
2730
#include <QMenu>
2831
#include <QMessageBox>
2932
#include <QStandardItemModel>
@@ -63,6 +66,15 @@ QgsCategorizedSymbolRendererV2Widget::QgsCategorizedSymbolRendererV2Widget( QgsV
6366

6467
cboCategorizedColorRamp->populate( mStyle );
6568

69+
// set project default color ramp
70+
QString defaultColorRamp = QgsProject::instance()->readEntry( "DefaultStyles", "/ColorRamp", "" );
71+
if ( defaultColorRamp != "" )
72+
{
73+
int index = cboCategorizedColorRamp->findText( defaultColorRamp, Qt::MatchCaseSensitive );
74+
if ( index >= 0 )
75+
cboCategorizedColorRamp->setCurrentIndex( index );
76+
}
77+
6678
QStandardItemModel* m = new QStandardItemModel( this );
6779
QStringList labels;
6880
labels << tr( "Symbol" ) << tr( "Value" ) << tr( "Label" );

‎src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
#include "qgsludialog.h"
2727

28+
#include "qgsproject.h"
29+
2830
#include <QMenu>
2931
#include <QMessageBox>
3032
#include <QStandardItemModel>
@@ -61,6 +63,15 @@ QgsGraduatedSymbolRendererV2Widget::QgsGraduatedSymbolRendererV2Widget( QgsVecto
6163

6264
cboGraduatedColorRamp->populate( mStyle );
6365

66+
// set project default color ramp
67+
QString defaultColorRamp = QgsProject::instance()->readEntry( "DefaultStyles", "/ColorRamp", "" );
68+
if ( defaultColorRamp != "" )
69+
{
70+
int index = cboGraduatedColorRamp->findText( defaultColorRamp, Qt::MatchCaseSensitive );
71+
if ( index >= 0 )
72+
cboGraduatedColorRamp->setCurrentIndex( index );
73+
}
74+
6475
QStandardItemModel* mg = new QStandardItemModel( this );
6576
QStringList labels;
6677
labels << tr( "Range" ) << tr( "Label" );

‎src/ui/qgsprojectpropertiesbase.ui

Lines changed: 251 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>571</width>
9+
<width>602</width>
1010
<height>448</height>
1111
</rect>
1212
</property>
@@ -20,7 +20,7 @@
2020
<bool>true</bool>
2121
</property>
2222
<layout class="QGridLayout" name="gridLayout_2">
23-
<item row="1" column="0">
23+
<item row="2" column="0">
2424
<widget class="QDialogButtonBox" name="buttonBox">
2525
<property name="orientation">
2626
<enum>Qt::Horizontal</enum>
@@ -30,7 +30,7 @@
3030
</property>
3131
</widget>
3232
</item>
33-
<item row="0" column="0">
33+
<item row="1" column="0">
3434
<widget class="QTabWidget" name="tabWidget">
3535
<property name="currentIndex">
3636
<number>0</number>
@@ -377,9 +377,9 @@
377377
<property name="geometry">
378378
<rect>
379379
<x>0</x>
380-
<y>-271</y>
381-
<width>526</width>
382-
<height>668</height>
380+
<y>0</y>
381+
<width>707</width>
382+
<height>781</height>
383383
</rect>
384384
</property>
385385
<layout class="QGridLayout" name="gridLayout">
@@ -694,6 +694,251 @@
694694
</item>
695695
</layout>
696696
</widget>
697+
<widget class="QWidget" name="tab">
698+
<attribute name="title">
699+
<string>Default Styles</string>
700+
</attribute>
701+
<layout class="QGridLayout" name="vgridLayout_10">
702+
<item row="0" column="0">
703+
<widget class="QGroupBox" name="groupBox">
704+
<property name="title">
705+
<string>Default Symbols</string>
706+
</property>
707+
<layout class="QGridLayout" name="gridLayout_9">
708+
<property name="leftMargin">
709+
<number>9</number>
710+
</property>
711+
<item row="0" column="0">
712+
<widget class="QLabel" name="pixStyleMarker">
713+
<property name="sizePolicy">
714+
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
715+
<horstretch>0</horstretch>
716+
<verstretch>0</verstretch>
717+
</sizepolicy>
718+
</property>
719+
<property name="text">
720+
<string/>
721+
</property>
722+
<property name="pixmap">
723+
<pixmap resource="../../images/images.qrc">:/images/themes/default/styleicons/style-point.png</pixmap>
724+
</property>
725+
</widget>
726+
</item>
727+
<item row="0" column="2">
728+
<widget class="QLabel" name="lblStyleMarker">
729+
<property name="text">
730+
<string>Marker</string>
731+
</property>
732+
<property name="margin">
733+
<number>5</number>
734+
</property>
735+
</widget>
736+
</item>
737+
<item row="0" column="4">
738+
<widget class="QComboBox" name="cboStyleMarker"/>
739+
</item>
740+
<item row="0" column="5">
741+
<widget class="QToolButton" name="pbtnStyleMarker">
742+
<property name="text">
743+
<string>...</string>
744+
</property>
745+
<property name="icon">
746+
<iconset resource="../../images/images.qrc">
747+
<normaloff>:/images/themes/default/symbologyEdit.png</normaloff>:/images/themes/default/symbologyEdit.png</iconset>
748+
</property>
749+
</widget>
750+
</item>
751+
<item row="1" column="0">
752+
<widget class="QLabel" name="pixStyleLine">
753+
<property name="sizePolicy">
754+
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
755+
<horstretch>0</horstretch>
756+
<verstretch>0</verstretch>
757+
</sizepolicy>
758+
</property>
759+
<property name="text">
760+
<string/>
761+
</property>
762+
<property name="pixmap">
763+
<pixmap resource="../../images/images.qrc">:/images/themes/default/styleicons/style-line.png</pixmap>
764+
</property>
765+
</widget>
766+
</item>
767+
<item row="1" column="2">
768+
<widget class="QLabel" name="lblStyleLine">
769+
<property name="text">
770+
<string>Line</string>
771+
</property>
772+
<property name="margin">
773+
<number>5</number>
774+
</property>
775+
</widget>
776+
</item>
777+
<item row="1" column="4">
778+
<widget class="QComboBox" name="cboStyleLine"/>
779+
</item>
780+
<item row="1" column="5">
781+
<widget class="QToolButton" name="pbtnStyleLine">
782+
<property name="text">
783+
<string>...</string>
784+
</property>
785+
<property name="icon">
786+
<iconset resource="../../images/images.qrc">
787+
<normaloff>:/images/themes/default/symbologyEdit.png</normaloff>:/images/themes/default/symbologyEdit.png</iconset>
788+
</property>
789+
</widget>
790+
</item>
791+
<item row="2" column="0">
792+
<widget class="QLabel" name="pixStyleFill">
793+
<property name="sizePolicy">
794+
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
795+
<horstretch>0</horstretch>
796+
<verstretch>0</verstretch>
797+
</sizepolicy>
798+
</property>
799+
<property name="text">
800+
<string/>
801+
</property>
802+
<property name="pixmap">
803+
<pixmap resource="../../images/images.qrc">:/images/themes/default/styleicons/style-polygon.png</pixmap>
804+
</property>
805+
</widget>
806+
</item>
807+
<item row="2" column="2">
808+
<widget class="QLabel" name="lblStyleFill">
809+
<property name="text">
810+
<string>Fill</string>
811+
</property>
812+
<property name="margin">
813+
<number>5</number>
814+
</property>
815+
</widget>
816+
</item>
817+
<item row="2" column="4">
818+
<widget class="QComboBox" name="cboStyleFill"/>
819+
</item>
820+
<item row="2" column="5">
821+
<widget class="QToolButton" name="pbtnStyleFill">
822+
<property name="text">
823+
<string>...</string>
824+
</property>
825+
<property name="icon">
826+
<iconset resource="../../images/images.qrc">
827+
<normaloff>:/images/themes/default/symbologyEdit.png</normaloff>:/images/themes/default/symbologyEdit.png</iconset>
828+
</property>
829+
</widget>
830+
</item>
831+
<item row="3" column="0">
832+
<widget class="QLabel" name="label_14">
833+
<property name="sizePolicy">
834+
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
835+
<horstretch>0</horstretch>
836+
<verstretch>0</verstretch>
837+
</sizepolicy>
838+
</property>
839+
<property name="text">
840+
<string/>
841+
</property>
842+
<property name="pixmap">
843+
<pixmap resource="../../images/images.qrc">:/images/themes/default/styleicons/color.png</pixmap>
844+
</property>
845+
</widget>
846+
</item>
847+
<item row="3" column="2">
848+
<widget class="QLabel" name="lblStyleColorRamp">
849+
<property name="text">
850+
<string>Color Ramp</string>
851+
</property>
852+
<property name="margin">
853+
<number>5</number>
854+
</property>
855+
</widget>
856+
</item>
857+
<item row="3" column="4">
858+
<widget class="QComboBox" name="cboStyleColorRamp"/>
859+
</item>
860+
<item row="3" column="5">
861+
<widget class="QToolButton" name="pbtnStyleColorRamp">
862+
<property name="text">
863+
<string>...</string>
864+
</property>
865+
<property name="icon">
866+
<iconset resource="../../images/images.qrc">
867+
<normaloff>:/images/themes/default/symbologyEdit.png</normaloff>:/images/themes/default/symbologyEdit.png</iconset>
868+
</property>
869+
</widget>
870+
</item>
871+
</layout>
872+
</widget>
873+
</item>
874+
<item row="9" column="0">
875+
<layout class="QHBoxLayout" name="horizontalLayout_3">
876+
<item>
877+
<widget class="QPushButton" name="pbtnStyleManager">
878+
<property name="text">
879+
<string>Style Manager</string>
880+
</property>
881+
</widget>
882+
</item>
883+
<item>
884+
<spacer name="horizontalSpacer">
885+
<property name="orientation">
886+
<enum>Qt::Horizontal</enum>
887+
</property>
888+
<property name="sizeHint" stdset="0">
889+
<size>
890+
<width>40</width>
891+
<height>20</height>
892+
</size>
893+
</property>
894+
</spacer>
895+
</item>
896+
</layout>
897+
</item>
898+
<item row="2" column="0">
899+
<widget class="QGroupBox" name="groupBox_2">
900+
<property name="title">
901+
<string>Options</string>
902+
</property>
903+
<layout class="QGridLayout" name="gridLayout_7">
904+
<item row="4" column="0" colspan="4">
905+
<widget class="QCheckBox" name="cbxStyleRandomColors">
906+
<property name="text">
907+
<string>Assign random colors to symbols</string>
908+
</property>
909+
</widget>
910+
</item>
911+
</layout>
912+
</widget>
913+
</item>
914+
<item row="1" column="0">
915+
<spacer name="verticalSpacer_3">
916+
<property name="orientation">
917+
<enum>Qt::Vertical</enum>
918+
</property>
919+
<property name="sizeHint" stdset="0">
920+
<size>
921+
<width>20</width>
922+
<height>40</height>
923+
</size>
924+
</property>
925+
</spacer>
926+
</item>
927+
<item row="3" column="0">
928+
<spacer name="verticalSpacer_4">
929+
<property name="orientation">
930+
<enum>Qt::Vertical</enum>
931+
</property>
932+
<property name="sizeHint" stdset="0">
933+
<size>
934+
<width>20</width>
935+
<height>40</height>
936+
</size>
937+
</property>
938+
</spacer>
939+
</item>
940+
</layout>
941+
</widget>
697942
</widget>
698943
</item>
699944
</layout>
@@ -726,7 +971,6 @@
726971
<tabstop>spinBoxDP</tabstop>
727972
<tabstop>cbxProjectionEnabled</tabstop>
728973
<tabstop>twIdentifyLayers</tabstop>
729-
<tabstop>tabWidget</tabstop>
730974
<tabstop>buttonBox</tabstop>
731975
<tabstop>mWMSTitle</tabstop>
732976
<tabstop>mWMSContactOrganization</tabstop>

0 commit comments

Comments
 (0)
Please sign in to comment.