Skip to content

Commit

Permalink
Add public method for displaying options dialog and switching to a sp…
Browse files Browse the repository at this point in the history
…ecific page

Add shortcut to composer options to composer menu
  • Loading branch information
nyalldawson committed Nov 19, 2013
1 parent a013a3a commit c12956c
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 20 deletions.
8 changes: 8 additions & 0 deletions src/app/composer/qgscomposer.cpp
Expand Up @@ -303,6 +303,9 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title )
layoutMenu->addAction( mActionLockItems );
layoutMenu->addAction( mActionUnlockAll );

QMenu *settingsMenu = menuBar()->addMenu( tr( "Settings" ) );
settingsMenu->addAction( mActionOptions );

#ifdef Q_WS_MAC
// this doesn't work on Mac anymore: menuBar()->addMenu( mQgis->windowMenu() );
// QgsComposer::populateWithOtherMenu should work recursively with submenus and regardless of Qt version
Expand Down Expand Up @@ -659,6 +662,11 @@ void QgsComposer::showItemOptions( QgsComposerItem* item )
mItemDock->setWidget( newWidget );
}

void QgsComposer::on_mActionOptions_triggered()
{
mQgis->showOptionsDialog( this, QString("mOptionsPageComposer") );
}

QgsMapCanvas *QgsComposer::mapCanvas( void )
{
return mQgis->mapCanvas();
Expand Down
3 changes: 3 additions & 0 deletions src/app/composer/qgscomposer.h
Expand Up @@ -306,6 +306,9 @@ class QgsComposer: public QMainWindow, private Ui::QgsComposerBase
//!Clear guides
void on_mActionClearGuides_triggered();

//!Show options dialog
void on_mActionOptions_triggered();

//! Save window state
void saveWindowState();

Expand Down
13 changes: 11 additions & 2 deletions src/app/qgisapp.cpp
Expand Up @@ -6839,8 +6839,12 @@ void QgisApp::customize()
QgsCustomization::instance()->openDialog( this );
}


void QgisApp::options()
{
showOptionsDialog( this );
}

void QgisApp::showOptionsDialog( QWidget *parent, QString currentPage )
{
if ( mMapCanvas && mMapCanvas->isDrawing() )
{
Expand All @@ -6850,7 +6854,12 @@ void QgisApp::options()
QSettings mySettings;
QString oldScales = mySettings.value( "Map/scales", PROJECT_SCALES ).toString();

QgsOptions *optionsDialog = new QgsOptions( this );
QgsOptions *optionsDialog = new QgsOptions( parent );
if ( !currentPage.isEmpty() )
{
optionsDialog->setCurrentPage( currentPage );
}

if ( optionsDialog->exec() )
{
// set the theme if it changed
Expand Down
3 changes: 3 additions & 0 deletions src/app/qgisapp.h
Expand Up @@ -618,6 +618,9 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
//! Update project menu with the project templates
void updateProjectFromTemplates();

//! Opens the options dialog
void showOptionsDialog( QWidget *parent = 0, QString currentPage = QString() );

protected:

//! Handle state changes (WindowTitleChange)
Expand Down
25 changes: 20 additions & 5 deletions src/app/qgsoptions.cpp
Expand Up @@ -684,7 +684,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
//
// Composer settings
//

//default composer font
mComposerFontComboBox->blockSignals( true );

Expand Down Expand Up @@ -730,7 +730,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
//default grid is dots
mGridStyleComboBox->setCurrentIndex( 1 );
}

//
// Locale settings
//
Expand Down Expand Up @@ -846,6 +846,21 @@ QgsOptions::~QgsOptions()
{
}

void QgsOptions::setCurrentPage( QString pageWidgetName )
{
//find the page with a matching widget name
for ( int idx = 0; idx < mOptionsStackedWidget->count(); ++idx )
{
QWidget * currentPage = mOptionsStackedWidget->widget( idx );
if ( currentPage->objectName() == pageWidgetName )
{
//found the page, set it as current
mOptionsStackedWidget->setCurrentIndex( idx );
return;
}
}
}

void QgsOptions::on_cbxProjectDefaultNew_toggled( bool checked )
{
if ( checked )
Expand Down Expand Up @@ -1264,7 +1279,7 @@ void QgsOptions::saveOptions()
//
// Composer settings
//

//default font
QString composerFont = mComposerFontComboBox->currentFont().family();
settings.setValue( "/Composer/defaultFont", composerFont );
Expand All @@ -1288,7 +1303,7 @@ void QgsOptions::saveOptions()
{
settings.setValue( "/Composer/gridStyle", "Crosses" );
}

//
// Locale settings
//
Expand Down Expand Up @@ -1676,7 +1691,7 @@ void QgsOptions::on_mOptionsStackedWidget_currentChanged( int theIndx )
{
Q_UNUSED( theIndx );
// load gdal driver list when gdal tab is first opened
if ( mOptionsStackedWidget->currentWidget()->objectName() == QString( "mOptionsPage_02" )
if ( mOptionsStackedWidget->currentWidget()->objectName() == QString( "mOptionsPageGDAL" )
&& ! mLoadedGdalDriverList )
{
loadGdalDriverList();
Expand Down
5 changes: 5 additions & 0 deletions src/app/qgsoptions.h
Expand Up @@ -52,6 +52,11 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption
*/
QString theme();

/** Sets the page with the specified widget name as the current page
* @note added in QGIS 2.1
*/
void setCurrentPage( QString pageWidgetName );

public slots:
void on_cbxProjectDefaultNew_toggled( bool checked );
void on_pbnProjectDefaultSetCurrent_clicked();
Expand Down
14 changes: 13 additions & 1 deletion src/ui/qgscomposerbase.ui
Expand Up @@ -780,7 +780,19 @@
<property name="text">
<string>Pan Composer</string>
</property>
</action>
</action>
<action name="mActionOptions">
<property name="icon">
<iconset resource="../../images/images.qrc">
<normaloff>:/images/themes/default/mActionOptions.svg</normaloff>:/images/themes/default/mActionOptions.svg</iconset>
</property>
<property name="text">
<string>Composer Options...</string>
</property>
<property name="menuRole">
<enum>QAction::PreferencesRole</enum>
</property>
</action>
</widget>
<resources>
<include location="../../images/images.qrc"/>
Expand Down
24 changes: 12 additions & 12 deletions src/ui/qgsoptionsbase.ui
Expand Up @@ -250,7 +250,7 @@
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="mOptionsPage_01">
<widget class="QWidget" name="mOptionsPageGeneral">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -896,7 +896,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_03">
<widget class="QWidget" name="mOptionsPageSystem">
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -1232,7 +1232,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_11">
<widget class="QWidget" name="mOptionsPageDataSources">
<layout class="QVBoxLayout" name="verticalLayout_26">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -1561,7 +1561,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_04">
<widget class="QWidget" name="mOptionsPageRendering">
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2076,7 +2076,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_06">
<widget class="QWidget" name="mOptionsPageMapCanvas">
<layout class="QVBoxLayout" name="verticalLayout_16">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2422,7 +2422,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_05">
<widget class="QWidget" name="mOptionsPageMapTools">
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2836,7 +2836,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_12">
<widget class="QWidget" name="mOptionsPageComposer">
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2945,7 +2945,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_07">
<widget class="QWidget" name="mOptionsPageDigitizing">
<layout class="QVBoxLayout" name="verticalLayout_17">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3446,7 +3446,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_02">
<widget class="QWidget" name="mOptionsPageGDAL">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3586,7 +3586,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_08">
<widget class="QWidget" name="mOptionsPageCRS">
<layout class="QVBoxLayout" name="verticalLayout_18">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3843,7 +3843,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_09">
<widget class="QWidget" name="mOptionsPageLocale">
<layout class="QVBoxLayout" name="verticalLayout_19">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3943,7 +3943,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_10">
<widget class="QWidget" name="mOptionsPageNetwork">
<layout class="QVBoxLayout" name="verticalLayout_20">
<property name="margin">
<number>0</number>
Expand Down

0 comments on commit c12956c

Please sign in to comment.