Skip to content

Commit 8c1ddc1

Browse files
author
jef
committedNov 14, 2010
change toolbar toolbuttons to menupopups and remember their last selection
git-svn-id: http://svn.osgeo.org/qgis/trunk@14643 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 403dd3b commit 8c1ddc1

File tree

1 file changed

+61
-25
lines changed

1 file changed

+61
-25
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 61 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1737,13 +1737,12 @@ void QgisApp::createToolBars()
17371737
mAttributesToolBar->addAction( mActionIdentify );
17381738

17391739
QToolButton *bt = new QToolButton( mAttributesToolBar );
1740-
QMenu *menu = new QMenu( bt );
1741-
bt->setMenu( menu );
1742-
menu->addAction( mActionSelect );
1743-
menu->addAction( mActionSelectRectangle );
1744-
menu->addAction( mActionSelectPolygon );
1745-
menu->addAction( mActionSelectFreehand );
1746-
menu->addAction( mActionSelectRadius );
1740+
bt->setPopupMode( QToolButton::MenuButtonPopup );
1741+
bt->addAction( mActionSelect );
1742+
bt->addAction( mActionSelectRectangle );
1743+
bt->addAction( mActionSelectPolygon );
1744+
bt->addAction( mActionSelectFreehand );
1745+
bt->addAction( mActionSelectRadius );
17471746

17481747
QSettings settings;
17491748
switch ( settings.value( "/UI/selectTool", 0 ).toInt() )
@@ -1776,12 +1775,25 @@ void QgisApp::createToolBars()
17761775
mAttributesToolBar->addAction( mActionOpenTable );
17771776

17781777
bt = new QToolButton( mAttributesToolBar );
1779-
menu = new QMenu( bt );
1780-
bt->setMenu( menu );
1781-
menu->addAction( mActionMeasure );
1782-
menu->addAction( mActionMeasureArea );
1783-
menu->addAction( mActionMeasureAngle );
1784-
bt->setDefaultAction( mActionMeasure );
1778+
bt->setPopupMode( QToolButton::MenuButtonPopup );
1779+
bt->addAction( mActionMeasure );
1780+
bt->addAction( mActionMeasureArea );
1781+
bt->addAction( mActionMeasureAngle );
1782+
switch ( settings.value( "/UI/measureTool", 0 ).toInt() )
1783+
{
1784+
default:
1785+
case 0:
1786+
bt->setDefaultAction( mActionMeasure );
1787+
break;
1788+
1789+
case 1:
1790+
bt->setDefaultAction( mActionMeasureArea );
1791+
break;
1792+
1793+
case 2:
1794+
bt->setDefaultAction( mActionMeasureAngle );
1795+
break;
1796+
}
17851797
mAttributesToolBar->addWidget( bt );
17861798
connect( bt, SIGNAL( triggered( QAction * ) ), this, SLOT( toolButtonActionTriggered( QAction * ) ) );
17871799

@@ -1791,19 +1803,31 @@ void QgisApp::createToolBars()
17911803
mAttributesToolBar->addAction( mActionLabeling );
17921804

17931805
// Annotation tools
1794-
QToolButton *annotationToolButton = new QToolButton();
1795-
annotationToolButton->setPopupMode( QToolButton::InstantPopup );
1796-
annotationToolButton->setAutoRaise( true );
1797-
annotationToolButton->setToolButtonStyle( Qt::ToolButtonIconOnly );
1798-
annotationToolButton->setCheckable( true );
1799-
annotationToolButton->addAction( mActionTextAnnotation );
1800-
annotationToolButton->addAction( mActionFormAnnotation );
1801-
annotationToolButton->addAction( mActionAnnotation );
1802-
annotationToolButton->setDefaultAction( mActionTextAnnotation );
1803-
connect( annotationToolButton, SIGNAL( triggered( QAction* ) ),
1804-
annotationToolButton, SLOT( setDefaultAction( QAction* ) ) );
1805-
mAttributesToolBar->addWidget( annotationToolButton );
1806+
bt = new QToolButton();
1807+
bt->setPopupMode( QToolButton::MenuButtonPopup );
1808+
bt->addAction( mActionTextAnnotation );
1809+
bt->addAction( mActionFormAnnotation );
1810+
bt->addAction( mActionAnnotation );
1811+
switch ( settings.value( "/UI/annotationTool", 0 ).toInt() )
1812+
{
1813+
default:
1814+
case 0:
1815+
bt->setDefaultAction( mActionTextAnnotation );
1816+
break;
1817+
1818+
case 1:
1819+
bt->setDefaultAction( mActionFormAnnotation );
1820+
break;
1821+
1822+
case 2:
1823+
bt->setDefaultAction( mActionAnnotation );
1824+
break;
1825+
}
1826+
mAttributesToolBar->addWidget( bt );
1827+
connect( bt, SIGNAL( triggered( QAction * ) ), this, SLOT( toolButtonActionTriggered( QAction * ) ) );
1828+
18061829
mToolbarMenu->addAction( mAttributesToolBar->toggleViewAction() );
1830+
18071831
//
18081832
// Plugins Toolbar
18091833
mPluginToolBar = addToolBar( tr( "Plugins" ) );
@@ -7188,6 +7212,18 @@ void QgisApp::toolButtonActionTriggered( QAction *action )
71887212
settings.setValue( "/UI/selectTool", 3 );
71897213
else if ( action == mActionSelectRadius )
71907214
settings.setValue( "/UI/selectTool", 4 );
7215+
else if ( action == mActionMeasure )
7216+
settings.setValue( "/UI/measureTool", 0 );
7217+
else if ( action == mActionMeasureArea )
7218+
settings.setValue( "/UI/measureTool", 1 );
7219+
else if ( action == mActionMeasureAngle )
7220+
settings.setValue( "/UI/measureTool", 2 );
7221+
else if ( action == mActionTextAnnotation )
7222+
settings.setValue( "/UI/annotationTool", 0 );
7223+
else if ( action == mActionFormAnnotation )
7224+
settings.setValue( "/UI/annotationTool", 1 );
7225+
else if ( action == mActionAnnotation )
7226+
settings.setValue( "/UI/annotationTool", 2 );
71917227

71927228
bt->setDefaultAction( action );
71937229
}

0 commit comments

Comments
 (0)
Please sign in to comment.