mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-14 02:24:12 +02:00
Add "Insert folio above/below" to the elements panel's folio menu
"Add folio" always appends to the end of the project, ignoring whatever folio is currently selected in the left panel -- even though the panel already tracks the selected diagram's position for its existing move up/down/top actions, and QETProject::addNewDiagram(pos) already accepts an arbitrary insertion index, pushed as an undoable AddDiagramCommand (QetGraphicsTableFactory::create() already relies on this exact mechanism to insert a folio right after a specific one). Add two new context-menu actions that compute the target position from the selected diagram's folioIndex() and pass it straight through the existing machinery -- no changes needed to QETProject or AddDiagramCommand. New requestForNewDiagramAt/addDiagramToProjectAt signal/slot pair added alongside the existing requestForNewDiagram/addDiagramToProject rather than changing it, so the plain "Add folio" action's append-at-end behavior is untouched.
This commit is contained in:
@@ -185,6 +185,7 @@ void QETDiagramEditor::setUpElementsPanel()
|
||||
connect(pa, SIGNAL(requestForProjectClosing (QETProject *)), this, SLOT(closeProject(QETProject *)));
|
||||
connect(pa, SIGNAL(requestForProjectPropertiesEdition (QETProject *)), this, SLOT(editProjectProperties(QETProject *)));
|
||||
connect(pa, SIGNAL(requestForNewDiagram (QETProject *)), this, SLOT(addDiagramToProject(QETProject *)));
|
||||
connect(pa, SIGNAL(requestForNewDiagramAt (QETProject *, int)), this, SLOT(addDiagramToProjectAt(QETProject *, int)));
|
||||
connect(pa, SIGNAL(requestForDiagramPropertiesEdition (Diagram *)), this, SLOT(editDiagramProperties(Diagram *)));
|
||||
connect(pa, SIGNAL(requestForDiagramsDeletion (const QList<Diagram *> &)), this, SLOT(removeDiagrams(const QList<Diagram *> &)));
|
||||
connect(pa, SIGNAL(requestForDiagramMoveUp (const QList<Diagram *> &)), this, SLOT(moveDiagramUp(const QList<Diagram *>&)));
|
||||
@@ -2274,6 +2275,25 @@ void QETDiagramEditor::addDiagramToProject(QETProject *project)
|
||||
project_view->project()->addNewDiagram();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@brief QETDiagramEditor::addDiagramToProjectAt
|
||||
Add a diagram to project, inserted at a specific position.
|
||||
@param project
|
||||
@param pos
|
||||
*/
|
||||
void QETDiagramEditor::addDiagramToProjectAt(QETProject *project, int pos)
|
||||
{
|
||||
if (!project) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ProjectView *project_view = findProject(project))
|
||||
{
|
||||
activateProject(project);
|
||||
project_view->project()->addNewDiagram(pos);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @brief QETDiagramEditor::removeDiagram
|
||||
* Wrapper für einzelne Diagramme, um Abwärtskompatibilität zu erhalten.
|
||||
|
||||
Reference in New Issue
Block a user