diff --git a/python/core/qgsapplication.sip b/python/core/qgsapplication.sip index 9f154641249..18e35999421 100644 --- a/python/core/qgsapplication.sip +++ b/python/core/qgsapplication.sip @@ -189,6 +189,12 @@ static void qtgui_UpdatePyArgv(PyObject *argvlist, int argc, char **argv) //! default theme if the active theme does not have the required icon. static QPixmap getThemePixmap( const QString &theName ); + static const QHash uiThemes(); + + static void setUITheme( const QString &themeName ); + + static const QString uiThemeName(); + //! Returns the path to user's style. static const QString userStyleV2Path(); diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index e1535aabc37..3f2b501a07a 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -1,6 +1,7 @@ INSTALL(FILES srs.db qgis.db symbology-ng-style.db spatialite.db customization.xml DESTINATION ${QGIS_DATA_DIR}/resources) INSTALL(DIRECTORY cpt-city-qgis-min DESTINATION ${QGIS_DATA_DIR}/resources) +INSTALL(DIRECTORY themes DESTINATION ${QGIS_DATA_DIR}/resources) ADD_SUBDIRECTORY(context_help) ADD_SUBDIRECTORY(function_help) diff --git a/resources/themes/Night Mapping/icons/caret-down_ffffff_14.png b/resources/themes/Night Mapping/icons/caret-down_ffffff_14.png new file mode 100644 index 00000000000..6add5a44d4e Binary files /dev/null and b/resources/themes/Night Mapping/icons/caret-down_ffffff_14.png differ diff --git a/resources/themes/Night Mapping/icons/caret-right_ffffff_14.png b/resources/themes/Night Mapping/icons/caret-right_ffffff_14.png new file mode 100644 index 00000000000..3c46502a385 Binary files /dev/null and b/resources/themes/Night Mapping/icons/caret-right_ffffff_14.png differ diff --git a/resources/themes/Night Mapping/icons/check.png b/resources/themes/Night Mapping/icons/check.png new file mode 100644 index 00000000000..0726b78196f Binary files /dev/null and b/resources/themes/Night Mapping/icons/check.png differ diff --git a/resources/themes/Night Mapping/icons/cross.svg b/resources/themes/Night Mapping/icons/cross.svg new file mode 100644 index 00000000000..2e149f2f639 --- /dev/null +++ b/resources/themes/Night Mapping/icons/cross.svg @@ -0,0 +1,59 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/resources/themes/Night Mapping/icons/down_arrow.png b/resources/themes/Night Mapping/icons/down_arrow.png new file mode 100644 index 00000000000..db581cb7856 Binary files /dev/null and b/resources/themes/Night Mapping/icons/down_arrow.png differ diff --git a/resources/themes/Night Mapping/icons/eye-blocked.svg b/resources/themes/Night Mapping/icons/eye-blocked.svg new file mode 100644 index 00000000000..fbea68c476b --- /dev/null +++ b/resources/themes/Night Mapping/icons/eye-blocked.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/resources/themes/Night Mapping/icons/eye.svg b/resources/themes/Night Mapping/icons/eye.svg new file mode 100644 index 00000000000..a8b2113b6ee --- /dev/null +++ b/resources/themes/Night Mapping/icons/eye.svg @@ -0,0 +1,56 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/resources/themes/Night Mapping/style.qss b/resources/themes/Night Mapping/style.qss new file mode 100644 index 00000000000..60a10d9a070 --- /dev/null +++ b/resources/themes/Night Mapping/style.qss @@ -0,0 +1,515 @@ +QToolTip +{ + border: 1px solid #222; + background-color: #333; + color: #aaa; +} + +QWidget +{ + color: #aaa; + background-color: #323232; +} + + +QWidget:item:hover +{ + background-color: #507098; + color: #aaa; +} + +QWidget:item:selected +{ + background-color: #507098; +} + +QMenuBar { + background-color: #323232; +} + +QMenuBar::item +{ + background: transparent; +} + +QMenuBar::item:selected +{ + /* + background: transparent; + border: 1px solid #ffaa00; + */ + background: #444; +} + +QMenuBar::item:pressed +{ + border: 1px solid #000; + background-color: #444; + margin-bottom:-1px; + padding-bottom:1px; +} + +/* ==================================================================================== */ +/* MENU */ +/* ==================================================================================== */ + +QMenu +{ + background: #444; + border: 1px solid #222; + padding: 4px; + padding-right: 0px; +} + +QMenu::item +{ + background: transparent; + padding: 2px 20px 2px 20px; +} + +QMenu::item:disabled +{ + color: #555; + background: transparent; + padding: 2px 20px 2px 20px; +} + + +QMenu::item:selected +{ + background-color: #507098; + color: #aaa; +} + +QWidget:disabled +{ + color: #404040; + background-color: #323232; +} + +QLineEdit +{ + padding: 1px; + border: 1px solid #111; + background-color: #888; + color: #111; +} + +QPushButton +{ + color: #b1b1b1; +/* background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #565656, stop: 0.1 #525252, stop: 0.5 #4e4e4e, stop: 0.9 #4a4a4a, stop: 1 #464646);*/ + border-width: 1px; + border-color: #1e1e1e; + border-style: solid; + padding: 3px; + font-size: 12px; + padding-left: 5px; + padding-right: 5px; +} + +QPushButton:pressed +{ +/* background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #2d2d2d, stop: 0.1 #2b2b2b, stop: 0.5 #292929, stop: 0.9 #282828, stop: 1 #252525);*/ +} + +/* ==================================================================================== */ +/* COMBO BOX */ +/* ==================================================================================== */ + +QComboBox { + selection-background-color: #ffaa00; + background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #565656, stop: 0.1 #525252, stop: 0.5 #4e4e4e, stop: 0.9 #4a4a4a, stop: 1 #464646); + border-style: solid; + border: 1px solid #1e1e1e; + padding: 1px 0px 1px 3px; /*This makes text colour work*/ +} + +QComboBox:hover,QPushButton:hover { + background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #565656, + stop: 0.1 #525252, + stop: 0.5 #4e4e4e, + stop: 0.9 #4a4a4a, + stop: 1 #464646); +} + + +QComboBox:on { + padding-top: 1px; + padding-left: 3px; + background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, + stop: 0 #555, + stop: 0.1 #4C4C4C, + stop: 0.5 #464646, + stop: 0.9 #414141, + stop: 1 #444); + selection-background-color: #ffaa00; +} + +QComboBox QAbstractItemView { + border: 1px solid #222; + selection-background-color: #507098; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 15px; + border: 0px; + } + +QComboBox::down-arrow +{ + image: url(icons/down_arrow.png); +} +QLineEdit:focus +{ + border: 2px solid QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #d7801a); +} + + +QTextEdit:focus +{ + border: 2px solid QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #ffa02f, stop: 1 #d7801a); +} + +/* ==================================================================================== */ +/* SCROLL BAR */ +/* ==================================================================================== */ + +QScrollBar:horizontal { + background-color: #333; + height: 8px; + margin: 0px; + padding: 0px; +} + +QScrollBar::handle:horizontal { + border: 1px solid #111; + background: #535353; +} + +QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal, +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + width: 0px; + background: transparent; +} + +QScrollBar:vertical { + background-color: #333; + width: 8px; + margin: 0; +} + +QScrollBar::handle:vertical { + border: 1px solid #111; + background: #535353; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + height: 0px; + background: transparent; +} + + +QTextEdit +{ + background-color: #242424; +} + +QPlainTextEdit +{ + background-color: #242424; +} + +QSizeGrip +{ + width: 1px; +} + +QHeaderView::section +{ + /*background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #616161, stop: 0.5 #505050, stop: 0.6 #434343, stop:1 #656565);*/ + color: white; + padding-left: 4px; + border: 1px solid #6c6c6c; +} +QDockWidget +{ + titlebar-close-icon: url(icons/cross.svg); +} + +QDockWidget::separator +{ + border: 1px solid red; +} + +QDockWidget::title +{ + text-align: center; + spacing: 3px; /* spacing between items in the tool bar */ + background-color: #323232; + font-weight: bold; +} + +QDockWidget::close-button, QDockWidget::float-button +{ + text-align: center; + spacing: 1px; /* spacing between items in the tool bar */ +} + +QDockWidget::close-button:hover, QDockWidget::float-button:hover +{ + background: #242424; +} + +QDockWidget::close-button:pressed, QDockWidget::float-button:pressed +{ + padding: 1px -1px -1px 1px; +} + +QMainWindow::separator +{ + /*background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #161616, stop: 0.5 #151515, stop: 0.6 #212121, stop:1 #343434);*/ + color: white; + padding-left: 4px; + border: 0px solid #4c4c4c; + spacing: 3px; /* spacing between items in the tool bar */ +} + +QMainWindow::separator:hover +{ + + /*background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #d7801a, stop:0.5 #b56c17 stop:1 #ffa02f);*/ + color: white; + padding-left: 4px; + border: 1px solid #6c6c6c; + spacing: 3px; /* spacing between items in the tool bar */ +} + +QToolBar { + background: #323232; + border: 1px solid #323232; + font-weight: bold; +} + +QToolBar::handle:horizontal +{ + image: url(:/qss_icons/rc/Hmovetoolbar.png); +} + +QToolBar::handle:vertical +{ + image: url(:/qss_icons/rc/Vmovetoolbar.png); +} + +QToolBar::separator:horizontal +{ + image: url(:/qss_icons/rc/Hsepartoolbar.png); +} + +QToolBar::separator:vertical +{ + image: url(:/qss_icons/rc/Vsepartoolbars.png); +} + +QMenu::separator +{ + height: 2px; + /* + background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:0 #161616, stop: 0.5 #151515, stop: 0.6 #212121, stop:1 #343434); + */ + color: white; + padding-left: 4px; + margin-left: 10px; + margin-right: 5px; +} + +QProgressBar +{ + border: 2px solid grey; + text-align: center; +} + +QProgressBar::chunk +{ + background-color: #d7801a; + width: 2.15px; + margin: 0.5px; +} + +QTabBar::tab { + color: #b1b1b1; + border: 1px solid #444; + border-bottom-style: none; + background-color: #323232; + padding-left: 10px; + padding-right: 10px; + padding-top: 3px; + padding-bottom: 2px; + margin-right: -1px; +} + +QTabWidget::pane { + border: 1px solid #444; + top: 1px; +} + +QTabBar::tab:last +{ + margin-right: 0; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:first:!selected +{ + margin-left: 0px; /* the last selected tab has nothing to overlap with on the right */ +} + +QTabBar::tab:!selected +{ + color: #b1b1b1; + border-bottom-style: solid; + margin-top: 3px; + /*background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:1 #212121, stop:.4 #343434);*/ +} + +QTabBar::tab:selected +{ + margin-bottom: 0px; +} + +QTabBar::tab:!selected:hover +{ + /*border-top: 2px solid #ffaa00; + padding-bottom: 3px;*/ + /*background-color: QLinearGradient(x1:0, y1:0, x2:0, y2:1, stop:1 #212121, stop:0.4 #343434, stop:0.2 #343434, stop:0.1 #ffaa00);*/ +} + +/* ==================================================================================== */ +/* RADIO BUTTON */ +/* ==================================================================================== */ + +QGroupBox::indicator:unchecked, +QGroupBox::indicator:checked, +QCheckBox::indicator:checked, +QCheckBox::indicator:unchecked, +QRadioButton::indicator:checked, +QRadioButton::indicator:unchecked{ + color: #b1b1b1; + background-color: #323232; + border: 1px solid #b1b1b1; +} + +QGroupBox::indicator:checked, +QCheckBox::indicator:checked, +QRadioButton::indicator:checked { + background-color: qradialgradient( + cx: 0.5, cy: 0.5, + fx: 0.5, fy: 0.5, + radius: 1.0, + stop: 0.25 #ffaa00, + stop: 0.3 #323232 + ); +} + +QRadioButton::indicator +{ +} + +QGroupBox::indicator:hover, +QCheckBox::indicator:hover, +QRadioButton::indicator:hover +{ + border: 1px solid #ffaa00; +} + +/* ==================================================================================== */ +/* CHECKBOX */ +/* ==================================================================================== */ + +QAbstractItemView +{ + background-color: #222; + alternate-background-color: #323232; + color: silver; + border: none; + border-radius: 3px; + padding: 1px; +} + +QAbstractItemView::selected { + border: 0px; + outline: none; +} + +/* ==================================================================================== */ +/* TREE VIEW */ +/* ==================================================================================== */ + +QTreeView { + border: 0.5px solid rgba(108,108,108,75); +} + +QTreeView::item, QTreeView::branch { + background: transparent; + color: #DDD; +} + +QTreeView::item:hover, QTreeView::branch:hover { + background-color: #507098; + color: #DDD; +} + +QTreeView::item:selected, QTreeView::branch:selected { + background-color: #507098; + color: #DDD; +} + +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings { + border-image: none; + image: url(icons/caret-right_ffffff_14.png); +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + border-image: none; + image: url(icons/caret-down_ffffff_14.png); +} + +QgsLayerTreeView +{ +} + +QgsLayerTreeView::item +{ + border-top: 0.5px solid rgba(108,108,108,50); + border-bottom: 0.5px solid rgba(108,108,108,50); + padding: 3px; +} + +QgsLayerTreeView::indicator:unchecked{ + image: url(icons/eye-blocked.svg); +} + +QgsLayerTreeView::indicator:checked { + image: url(icons/eye.svg); +} + +/* ==================================================================================== */ +/* TABLE VIEW */ +/* ==================================================================================== */ + +QHeaderView { +} + +QHeaderView::section { + background: transparent; + background-color: #323232; + color: #777; + border-right: 0px solid #777; + border-top: 0px solid #777; + padding: 0 0 2px 3px +} diff --git a/src/app/main.cpp b/src/app/main.cpp index 944dc65dde6..59247efd571 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -788,6 +788,7 @@ APP_EXPORT int main( int argc, char *argv[] ) #endif #endif + QgsApplication::setUITheme( QgsApplication::uiThemeName() ); /* Translation file for QGIS. */ QString i18nPath = QgsApplication::i18nPath(); diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index 6c3ab021f7d..5a81e6edf14 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -848,6 +848,7 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, QWidget * parent, mMapCanvas->clearExtentHistory(); // reset zoomnext/zoomlast mLastComposerId = 0; + // Show a nice tip of the day if ( settings.value( QString( "/qgis/showTips%1" ).arg( QGis::QGIS_VERSION_INT / 100 ), true ).toBool() ) { @@ -883,6 +884,7 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, QWidget * parent, // should come after fileNewBlank to ensure project is properly set up to receive any data source files QgsApplication::setFileOpenEventReceiver( this ); + #ifdef ANDROID toggleFullScreen(); #endif diff --git a/src/app/qgsoptions.cpp b/src/app/qgsoptions.cpp index 01347142ca5..943f99a3717 100644 --- a/src/app/qgsoptions.cpp +++ b/src/app/qgsoptions.cpp @@ -99,6 +99,11 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl ) : cmbStyle->addItem( style ); } + QStringList themes = QgsApplication::uiThemes().keys(); + cmbUITheme->addItems( themes ); + + connect( cmbUITheme, SIGNAL( currentIndexChanged(const QString& ) ), this, SLOT( uiThemeChanged( const QString& ) ) ); + mIdentifyHighlightColorButton->setColorDialogTitle( tr( "Identify highlight color" ) ); mIdentifyHighlightColorButton->setAllowAlpha( true ); mIdentifyHighlightColorButton->setContext( "gui" ); @@ -520,6 +525,9 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl ) : QString name = QApplication::style()->objectName(); cmbStyle->setCurrentIndex( cmbStyle->findText( name, Qt::MatchFixedString ) ); + QString theme = QgsApplication::uiThemeName(); + cmbUITheme->setCurrentIndex( cmbUITheme->findText( theme, Qt::MatchFixedString ) ); + mNativeColorDialogsChkBx->setChecked( settings.value( "/qgis/native_color_dialogs", false ).toBool() ); mLiveColorDialogsChkBx->setChecked( settings.value( "/qgis/live_color_dialogs", false ).toBool() ); @@ -928,6 +936,11 @@ void QgsOptions::iconSizeChanged( const QString &iconSize ) QgisApp::instance()->setIconSizes( iconSize.toInt() ); } +void QgsOptions::uiThemeChanged( const QString &theme ) +{ + QgsApplication::setUITheme( theme ); +} + void QgsOptions::on_mProjectOnLaunchCmbBx_currentIndexChanged( int indx ) { bool specific = ( indx == 2 ); diff --git a/src/app/qgsoptions.h b/src/app/qgsoptions.h index f78caab6669..682e1a27247 100644 --- a/src/app/qgsoptions.h +++ b/src/app/qgsoptions.h @@ -76,6 +76,8 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption void iconSizeChanged( const QString &iconSize ); + void uiThemeChanged(const QString &theme ); + /** Slot to handle when type of project to open after launch is changed */ void on_mProjectOnLaunchCmbBx_currentIndexChanged( int indx ); diff --git a/src/core/qgsapplication.cpp b/src/core/qgsapplication.cpp index f69a4ec3ad8..18cca52e0cc 100644 --- a/src/core/qgsapplication.cpp +++ b/src/core/qgsapplication.cpp @@ -56,6 +56,7 @@ QString ABISYM( QgsApplication::mPkgDataPath ); QString ABISYM( QgsApplication::mLibraryPath ); QString ABISYM( QgsApplication::mLibexecPath ); QString ABISYM( QgsApplication::mThemeName ); +QString ABISYM( QgsApplication::mUIThemeName ); QStringList ABISYM( QgsApplication::mDefaultSvgPaths ); QMap ABISYM( QgsApplication::mSystemEnvVars ); QString ABISYM( QgsApplication::mConfigPath ); @@ -430,6 +431,50 @@ const QString QgsApplication::themeName() { return ABISYM( mThemeName ); } + +void QgsApplication::setUITheme( const QString &themeName ) +{ + // Loop all style sheets, find matching name, load it. + QHash themes = QgsApplication::uiThemes(); + QString path = themes[themeName]; + QString styleSheet = QLatin1String( "file:///" ); + styleSheet.append( path + "/style.qss" ); + qApp->setStyleSheet( styleSheet ); + QSettings settings; + return settings.setValue( "UI/UITheme", themeName ); +} + +const QHash QgsApplication::uiThemes() +{ + QString themepath = ABISYM( mPkgDataPath ) + QString( "/resources/themes" ); + QString userthemes = qgisSettingsDirPath() + QString( "/themes" ); + QStringList paths = QStringList() << themepath << userthemes; + QHash mapping; + mapping.insert( "default", "" ); + foreach( const QString path, paths ) + { + QDir folder( path ); + QFileInfoList styleFiles = folder.entryInfoList( QDir::Dirs | QDir::NoDotAndDotDot ); + foreach ( QFileInfo info, styleFiles ) + { + QFileInfo styleFile( info.absoluteFilePath() + "/style.qss" ); + if ( !styleFile.exists() ) + continue; + + QString name = info.baseName(); + QString path = info.absoluteFilePath(); + mapping.insert( name, path ); + } + } + return mapping; +} + +const QString QgsApplication::uiThemeName() +{ + QSettings settings; + return settings.value( "UI/UITheme", "default" ).toString(); +} + /*! Returns the path to the authors file. */ diff --git a/src/core/qgsapplication.h b/src/core/qgsapplication.h index a646387579a..8e3afda6ee8 100644 --- a/src/core/qgsapplication.h +++ b/src/core/qgsapplication.h @@ -76,6 +76,22 @@ class CORE_EXPORT QgsApplication : public QApplication */ static const QString themeName(); + static void setUITheme( const QString &themeName ); + + /** + * @brief Return the active UI theme set in the settings. + * @return The name of the current UI theme. + */ + static const QString uiThemeName(); + + /** + * @brief All themes found in the application resources folder + * and ~\.qgis2\themes folder. The path is to the root folder for the theme + * @note Valid theme folders must contain a style.qss file. + * @return A hash of theme name and theme path. Valid theme folders contain style.qss + */ + static const QHash uiThemes(); + //! Returns the path to the authors file. static const QString authorsFilePath(); @@ -307,6 +323,7 @@ class CORE_EXPORT QgsApplication : public QApplication static QObject* ABISYM( mFileOpenEventReceiver ); static QStringList ABISYM( mFileOpenEventList ); + static QString ABISYM( mUIThemeName ); static QString ABISYM( mPrefixPath ); static QString ABISYM( mPluginPath ); static QString ABISYM( mPkgDataPath ); diff --git a/src/ui/qgsoptionsbase.ui b/src/ui/qgsoptionsbase.ui index 555a705443d..2fa9952eda6 100644 --- a/src/ui/qgsoptionsbase.ui +++ b/src/ui/qgsoptionsbase.ui @@ -45,16 +45,7 @@ 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -275,35 +266,17 @@ QFrame::Raised - - 0 - - - 0 - - - 0 - - + 0 - 2 + 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -320,7 +293,7 @@ 0 0 610 - 635 + 670 @@ -360,6 +333,36 @@ + + + + 0 + + + + + UI Theme + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + @@ -911,16 +914,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -936,7 +930,7 @@ 0 0 - 663 + 655 862 @@ -1132,10 +1126,10 @@ Current environment variables (read-only - bold indicates modified at startup) - + false - + true @@ -1295,16 +1289,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -1320,8 +1305,8 @@ 0 0 - 545 - 440 + 626 + 549 @@ -1621,16 +1606,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -1646,7 +1622,7 @@ 0 0 - 747 + 728 802 @@ -1865,16 +1841,7 @@ Rendering quality - - 11 - - - 11 - - - 11 - - + 11 @@ -1896,16 +1863,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -1989,16 +1947,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2030,16 +1979,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2071,16 +2011,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2119,16 +2050,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2160,16 +2082,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2226,16 +2139,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2341,16 +2245,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2446,16 +2341,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2471,8 +2357,8 @@ 0 0 - 528 - 327 + 526 + 331 @@ -2784,16 +2670,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -2809,8 +2686,8 @@ 0 0 - 692 - 625 + 684 + 607 @@ -3279,16 +3156,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -3304,8 +3172,8 @@ 0 0 - 514 - 307 + 504 + 308 @@ -3484,16 +3352,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -3509,8 +3368,8 @@ 0 0 - 510 - 640 + 501 + 641 @@ -3984,16 +3843,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -4009,7 +3859,7 @@ 0 0 - 474 + 462 372 @@ -4123,16 +3973,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -4148,8 +3989,8 @@ 0 0 - 574 - 647 + 565 + 679 @@ -4210,7 +4051,7 @@ - + false @@ -4273,7 +4114,7 @@ - + Qt::StrongFocus @@ -4369,16 +4210,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -4394,7 +4226,7 @@ 0 0 - 305 + 300 226 @@ -4468,16 +4300,7 @@ - - 0 - - - 0 - - - 0 - - + 0 @@ -4493,7 +4316,7 @@ 0 0 - 542 + 610 705 @@ -4643,10 +4466,10 @@ true - + false - + true @@ -4844,7 +4667,7 @@ - + globalOptions @@ -4923,6 +4746,12 @@
qgscolorbuttonv2.h
1 + + QgsProjectionSelectionWidget + QWidget +
qgsprojectionselectionwidget.h
+ 1 +
QgsColorSchemeList QWidget @@ -4934,12 +4763,6 @@ QComboBox
qgsscalecombobox.h
- - QgsProjectionSelectionWidget - QWidget -
qgsprojectionselectionwidget.h
- 1 -
QgsVariableEditorWidget QWidget