Skip to content

Commit 560e9c2

Browse files
committed
Allow renaming map views
1 parent dbe54c0 commit 560e9c2

5 files changed

+54
-2
lines changed

src/app/qgisapp.cpp

+33
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@
267267
#include "qgsvectorlayerutils.h"
268268
#include "qgshelp.h"
269269
#include "qgsvectorfilewritertask.h"
270+
#include "qgsnewnamedialog.h"
270271

271272
#include "qgssublayersdialog.h"
272273
#include "ogr/qgsopenvectorlayerdialog.h"
@@ -3163,6 +3164,7 @@ QgsMapCanvas *QgisApp::createNewMapCanvas( const QString &name, bool isFloating,
31633164
mapCanvas->freeze( false );
31643165
markDirty();
31653166
connect( mapCanvasWidget, &QgsMapCanvasDockWidget::closed, this, &QgisApp::markDirty );
3167+
connect( mapCanvasWidget, &QgsMapCanvasDockWidget::renameTriggered, this, &QgisApp::renameView );
31663168
return mapCanvas;
31673169
}
31683170

@@ -11173,6 +11175,37 @@ void QgisApp::refreshActionFeatureAction()
1117311175
mActionFeatureAction->setEnabled( layerHasActions );
1117411176
}
1117511177

11178+
void QgisApp::renameView()
11179+
{
11180+
QgsMapCanvasDockWidget *view = qobject_cast< QgsMapCanvasDockWidget * >( sender() );
11181+
if ( !view )
11182+
return;
11183+
11184+
// calculate existing names
11185+
QStringList names;
11186+
Q_FOREACH ( QgsMapCanvas *c, mapCanvases() )
11187+
{
11188+
if ( c == view->mapCanvas() )
11189+
continue;
11190+
11191+
names << c->objectName();
11192+
}
11193+
11194+
QString currentName = view->mapCanvas()->objectName();
11195+
11196+
QgsNewNameDialog renameDlg( currentName, currentName, QStringList(), names, QRegExp(), Qt::CaseSensitive, this );
11197+
renameDlg.setWindowTitle( tr( "Map Views" ) );
11198+
//renameDlg.setHintString( tr( "Name of the new view" ) );
11199+
renameDlg.setOverwriteEnabled( false );
11200+
renameDlg.setConflictingNameWarning( tr( "A view with this name already exists" ) );
11201+
if ( renameDlg.exec() || renameDlg.name().isEmpty() )
11202+
{
11203+
QString newName = renameDlg.name();
11204+
view->setWindowTitle( newName );
11205+
view->mapCanvas()->setObjectName( newName );
11206+
}
11207+
}
11208+
1117611209
/////////////////////////////////////////////////////////////////
1117711210
//
1117811211
//

src/app/qgisapp.h

+2
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,8 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
759759

760760
QMenu *panelMenu() { return mPanelMenu; }
761761

762+
void renameView();
763+
762764
protected:
763765

764766
//! Handle state changes (WindowTitleChange)

src/app/qgsmapcanvasdockwidget.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,15 @@ QgsMapCanvasDockWidget::QgsMapCanvasDockWidget( const QString &name, QWidget *pa
5959
connect( mActionSetCrs, &QAction::triggered, this, &QgsMapCanvasDockWidget::setMapCrs );
6060
connect( mMapCanvas, &QgsMapCanvas::destinationCrsChanged, this, &QgsMapCanvasDockWidget::mapCrsChanged );
6161
mapCrsChanged();
62-
menu->addAction( mActionSetCrs );
6362

6463
QgsMapSettingsAction *settingsAction = new QgsMapSettingsAction( menu );
6564
menu->addAction( settingsAction );
65+
66+
menu->addSeparator();
67+
menu->addAction( mActionSetCrs );
68+
menu->addAction( mActionRename );
69+
connect( mActionRename, &QAction::triggered, this, &QgsMapCanvasDockWidget::renameTriggered );
70+
6671
mScaleCombo = settingsAction->scaleCombo();
6772
mRotationEdit = settingsAction->rotationSpinBox();
6873
mMagnificationEdit = settingsAction->magnifierSpinBox();

src/app/qgsmapcanvasdockwidget.h

+4
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ class APP_EXPORT QgsMapCanvasDockWidget : public QgsDockWidget, private Ui::QgsM
5454
*/
5555
void closeWithoutWarning();
5656

57+
signals:
58+
59+
void renameTriggered();
60+
5761
protected:
5862

5963
virtual void closeEvent( QCloseEvent *event ) override;

src/ui/qgsmapcanvasdockwidgetbase.ui

+9-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
<normaloff>:/images/themes/default/propertyicons/CRS.svg</normaloff>:/images/themes/default/propertyicons/CRS.svg</iconset>
7474
</property>
7575
<property name="text">
76-
<string>Set Map CRS</string>
76+
<string>Set Map CRS...</string>
7777
</property>
7878
<property name="toolTip">
7979
<string>Set Map CRS</string>
@@ -94,6 +94,14 @@
9494
<string>Synchronize View with Main Map</string>
9595
</property>
9696
</action>
97+
<action name="mActionRename">
98+
<property name="text">
99+
<string>Rename view...</string>
100+
</property>
101+
<property name="toolTip">
102+
<string>Rename View</string>
103+
</property>
104+
</action>
97105
</widget>
98106
<customwidgets>
99107
<customwidget>

0 commit comments

Comments
 (0)