Skip to content

Commit 88682b2

Browse files
committed
[needs-docs] Add rename layout action to layout designer dialog
Fixes #10435
1 parent 61c57bc commit 88682b2

File tree

4 files changed

+29
-8
lines changed

4 files changed

+29
-8
lines changed

src/app/layout/qgslayoutdesignerdialog.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,7 @@ QgsLayoutDesignerDialog::QgsLayoutDesignerDialog( QWidget *parent, Qt::WindowFla
316316
connect( mActionSaveAsTemplate, &QAction::triggered, this, &QgsLayoutDesignerDialog::saveAsTemplate );
317317
connect( mActionLoadFromTemplate, &QAction::triggered, this, &QgsLayoutDesignerDialog::addItemsFromTemplate );
318318
connect( mActionDuplicateLayout, &QAction::triggered, this, &QgsLayoutDesignerDialog::duplicate );
319+
connect( mActionRenameLayout, &QAction::triggered, this, &QgsLayoutDesignerDialog::renameLayout );
319320

320321
connect( mActionZoomIn, &QAction::triggered, mView, &QgsLayoutView::zoomIn );
321322
connect( mActionZoomOut, &QAction::triggered, mView, &QgsLayoutView::zoomOut );
@@ -1380,6 +1381,17 @@ void QgsLayoutDesignerDialog::showManager()
13801381
} );
13811382
}
13821383

1384+
void QgsLayoutDesignerDialog::renameLayout()
1385+
{
1386+
QString currentTitle = currentLayout()->name();
1387+
QString newTitle;
1388+
if ( !QgisApp::instance()->uniqueLayoutTitle( this, newTitle, false, currentTitle ) )
1389+
{
1390+
return;
1391+
}
1392+
currentLayout()->setName( newTitle );
1393+
}
1394+
13831395
void QgsLayoutDesignerDialog::paste()
13841396
{
13851397
QPointF pt = mView->mapFromGlobal( QCursor::pos() );

src/app/layout/qgslayoutdesignerdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ class QgsLayoutDesignerDialog: public QMainWindow, private Ui::QgsLayoutDesigner
272272
void saveProject();
273273
void newLayout();
274274
void showManager();
275+
void renameLayout();
275276

276277
private:
277278

src/app/qgisapp.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7351,14 +7351,13 @@ bool QgisApp::uniqueLayoutTitle( QWidget *parent, QString &title, bool acceptEmp
73517351
}
73527352
QString titleMsg = chooseMsg;
73537353

7354-
QStringList cNames;
7355-
cNames << newTitle;
7356-
#if 0 //TODO
7357-
Q_FOREACH ( QgsComposition *c, QgsProject::instance()->layoutManager()->compositions() )
7354+
QStringList layoutNames;
7355+
layoutNames << newTitle;
7356+
const QList< QgsLayout * > layouts = QgsProject::instance()->layoutManager()->layouts();
7357+
for ( QgsLayout *l : layouts )
73587358
{
7359-
cNames << c->name();
7359+
layoutNames << l->name();
73607360
}
7361-
#endif
73627361
while ( !titleValid )
73637362
{
73647363
newTitle = QInputDialog::getText( parent,
@@ -7384,9 +7383,9 @@ bool QgisApp::uniqueLayoutTitle( QWidget *parent, QString &title, bool acceptEmp
73847383
newTitle = QgsProject::instance()->layoutManager()->generateUniqueTitle();
73857384
}
73867385
}
7387-
else if ( cNames.indexOf( newTitle, 1 ) >= 0 )
7386+
else if ( layoutNames.indexOf( newTitle, 1 ) >= 0 )
73887387
{
7389-
cNames[0] = QString(); // clear non-unique name
7388+
layoutNames[0] = QString(); // clear non-unique name
73907389
titleMsg = chooseMsg + "\n\n" + tr( "Title already exists!" );
73917390
}
73927391
else

src/ui/layout/qgslayoutdesignerbase.ui

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@
106106
<addaction name="mActionLayoutManager"/>
107107
<addaction name="separator"/>
108108
<addaction name="mActionLayoutProperties"/>
109+
<addaction name="mActionRenameLayout"/>
109110
<addaction name="mActionAddPages"/>
110111
<addaction name="separator"/>
111112
<addaction name="mActionLoadFromTemplate"/>
@@ -1151,6 +1152,14 @@
11511152
<string>Layout manager</string>
11521153
</property>
11531154
</action>
1155+
<action name="mActionRenameLayout">
1156+
<property name="text">
1157+
<string>Rename Layout…</string>
1158+
</property>
1159+
<property name="toolTip">
1160+
<string>Rename layout</string>
1161+
</property>
1162+
</action>
11541163
</widget>
11551164
<resources>
11561165
<include location="../../../images/images.qrc"/>

0 commit comments

Comments
 (0)