The elements panel now displays the folio index before each diagram title.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@1349 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2011-10-01 19:48:26 +00:00
parent 312beaa83f
commit 710a733980
2 changed files with 59 additions and 1 deletions

View File

@@ -1059,7 +1059,25 @@ void ElementsPanel::diagramWasRemoved(QETProject *project, Diagram *diagram) {
if (projects_.key(project, 0)) { if (projects_.key(project, 0)) {
// on verifie que le schema apparait dans le panel // on verifie que le schema apparait dans le panel
if (QTreeWidgetItem *item_to_remove = diagrams_.key(diagram, 0)) { if (QTreeWidgetItem *item_to_remove = diagrams_.key(diagram, 0)) {
QTreeWidgetItem *parent_qtwi = item_to_remove -> parent();
// we keep the index of the deleted item
int deleted_index = -1;
if (parent_qtwi) {
deleted_index = parent_qtwi -> indexOfChild(item_to_remove);
}
// deletion itself
deleteItem(item_to_remove); deleteItem(item_to_remove);
// we also need to update the labels of following diagrams
// because they may display the folio index
if (deleted_index != -1) {
// -2 avoids the title blocks directory and the common collection
for (int i = deleted_index ; i < parent_qtwi -> childCount() - 2; ++i) {
updateDiagramLabel(parent_qtwi, i);
}
}
} }
} }
} }
@@ -1096,6 +1114,11 @@ void ElementsPanel::diagramOrderChanged(QETProject *project, int from, int to) {
bool was_selected = moved_qtwi_diagram -> isSelected(); bool was_selected = moved_qtwi_diagram -> isSelected();
qtwi_project -> removeChild(moved_qtwi_diagram); qtwi_project -> removeChild(moved_qtwi_diagram);
qtwi_project -> insertChild(to, moved_qtwi_diagram); qtwi_project -> insertChild(to, moved_qtwi_diagram);
// update the QTWI labels because they may display the folio index
updateDiagramLabel(qtwi_project, from);
updateDiagramLabel(qtwi_project, to);
if (was_selected) { if (was_selected) {
setCurrentItem(moved_qtwi_diagram); setCurrentItem(moved_qtwi_diagram);
} }
@@ -1175,13 +1198,47 @@ void ElementsPanel::updateProjectTemplates(QETProject *project) {
} }
} }
/**
Updates the label of a diagram displayed by the elements panel
@param qtwi_project QTreeWidgetItem representing the diagram's parent project
@param diagram_index Index of the diagram within the parent project
*/
void ElementsPanel::updateDiagramLabel(QTreeWidgetItem *qtwi_project, int diagram_index) {
if (!qtwi_project) return;
QTreeWidgetItem *qtwi_diagram = qtwi_project -> child(diagram_index);
if (!qtwi_diagram) return;
Diagram *diagram = diagrams_[qtwi_diagram];
if (diagram) {
qtwi_diagram -> setText(0, diagramTitleToDisplay(diagram));
}
}
/** /**
@param diagram Schema dont on souhaite affiche le titre @param diagram Schema dont on souhaite affiche le titre
@return Un titre affichable, tenant compte du fait que le titre du schema @return Un titre affichable, tenant compte du fait que le titre du schema
peut etre vide. peut etre vide.
*/ */
QString ElementsPanel::diagramTitleToDisplay(Diagram *diagram) const { QString ElementsPanel::diagramTitleToDisplay(Diagram *diagram) const {
return(diagram -> title().isEmpty() ? tr("Sch\351ma sans titre") : diagram -> title()); QString displayed_title = diagram -> title();
if (displayed_title.isEmpty()) {
displayed_title = tr("Sch\351ma sans titre", "Fallback label when a diagram has no title");
}
QString displayed_label;
int diagram_folio_idx = diagram -> folioIndex();
if (diagram_folio_idx != -1) {
displayed_label = QString(
tr(
"%1 - %2",
"label displayed for a diagram in the panel ; %1 is the folio index, %2 is the diagram title"
)
).arg(diagram_folio_idx + 1).arg(displayed_title);
} else {
displayed_label = displayed_title;
}
return(displayed_label);
} }
/** /**

View File

@@ -128,6 +128,7 @@ class ElementsPanel : public QTreeWidget {
void deleteItem(QTreeWidgetItem *); void deleteItem(QTreeWidgetItem *);
void updateProjectItemInformations(QETProject *); void updateProjectItemInformations(QETProject *);
void updateProjectTemplates(QETProject *); void updateProjectTemplates(QETProject *);
void updateDiagramLabel(QTreeWidgetItem *, int);
QString diagramTitleToDisplay(Diagram *) const; QString diagramTitleToDisplay(Diagram *) const;
void ensureHierarchyIsVisible(QList<QTreeWidgetItem *>); void ensureHierarchyIsVisible(QList<QTreeWidgetItem *>);