Fix behavior :

In some condition, label of report element are not up to date.
In some condition, the title of tabs widget of folios are not up to date


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4980 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2017-06-20 19:15:39 +00:00
parent 9fdb5ff4fe
commit f390c750d5
3 changed files with 46 additions and 39 deletions

View File

@@ -21,3 +21,6 @@ part terminal + 1106
part text + 1107 part text + 1107
part text field + 1108 part text field + 1108
part rectangle + 1109 part rectangle + 1109
###QetGraphicsHandlerItem###
QetGraphicsHandlerItem = 1200

View File

@@ -393,7 +393,7 @@ void ProjectView::addDiagram(DiagramView *diagram_view)
m_diagram_view_list << diagram_view; m_diagram_view_list << diagram_view;
rebuildDiagramsMap(); rebuildDiagramsMap();
updateTabTitle(diagram_view); updateAllTabsTitle();
connect(diagram_view, SIGNAL(showDiagram(Diagram*)), this, SLOT(showDiagram(Diagram*))); connect(diagram_view, SIGNAL(showDiagram(Diagram*)), this, SLOT(showDiagram(Diagram*)));
connect(diagram_view, SIGNAL(titleChanged(DiagramView *, const QString &)), this, SLOT(updateTabTitle(DiagramView *))); connect(diagram_view, SIGNAL(titleChanged(DiagramView *, const QString &)), this, SLOT(updateTabTitle(DiagramView *)));
@@ -406,18 +406,21 @@ void ProjectView::addDiagram(DiagramView *diagram_view)
} }
/** /**
Enleve un schema du ProjectView * @brief ProjectView::removeDiagram
@param diagram_view Schema a enlever * Remove a diagram (folio) of the project
*/ * @param diagram_view : diagram view to remove
void ProjectView::removeDiagram(DiagramView *diagram_view) { */
if (!diagram_view) return; void ProjectView::removeDiagram(DiagramView *diagram_view)
if (m_project -> isReadOnly()) return; {
if (!diagram_view)
// verifie que le schema est bien present dans le projet return;
if (!m_diagram_ids.values().contains(diagram_view)) return; if (m_project -> isReadOnly())
return;
if (!m_diagram_ids.values().contains(diagram_view))
return;
//Ask confirmation to user. //Ask confirmation to user.
int answer = QET::QetMessageBox::question( int answer = QET::QetMessageBox::question(
this, this,
tr("Supprimer le folio ?", "message box title"), tr("Supprimer le folio ?", "message box title"),
@@ -429,21 +432,20 @@ void ProjectView::removeDiagram(DiagramView *diagram_view) {
return; return;
} }
// enleve le DiagramView des onglets //Remove the diagram view of the tabs widget
int diagram_tab_id = m_diagram_ids.key(diagram_view); int index_to_remove = m_diagram_ids.key(diagram_view);
m_tab -> removeTab(diagram_tab_id); m_tab->removeTab(index_to_remove);
m_diagram_view_list.removeAll(diagram_view); m_diagram_view_list.removeAll(diagram_view);
rebuildDiagramsMap(); rebuildDiagramsMap();
// supprime le DiagramView, puis le Diagram
m_project -> removeDiagram(diagram_view -> diagram()); m_project -> removeDiagram(diagram_view -> diagram());
delete diagram_view; delete diagram_view;
// signale le retrait du schema
emit(diagramRemoved(diagram_view)); emit(diagramRemoved(diagram_view));
// rend definitif le retrait du schema //Make definitve the withdrawal
m_project -> write(); m_project -> write();
updateAllTabsTitle();
} }
/** /**
@@ -899,27 +901,27 @@ void ProjectView::adjustReadOnlyState() {
*/ */
void ProjectView::updateTabTitle(DiagramView *diagram_view) void ProjectView::updateTabTitle(DiagramView *diagram_view)
{ {
int diagram_tab_id = m_diagram_ids.key(diagram_view, -1); int diagram_tab_id = m_diagram_ids.key(diagram_view, -1);
if (diagram_tab_id != -1) if (diagram_tab_id != -1)
{ {
QSettings settings; QSettings settings;
QString title; QString title;
Diagram *diagram = diagram_view->diagram(); Diagram *diagram = diagram_view->diagram();
if (settings.value("genericpanel/folio", false).toBool()) if (settings.value("genericpanel/folio", false).toBool())
{ {
QString formula = diagram->border_and_titleblock.folio(); QString formula = diagram->border_and_titleblock.folio();
autonum::sequentialNumbers seq; autonum::sequentialNumbers seq;
title = autonum::AssignVariables::formulaToLabel(formula, seq, diagram); title = autonum::AssignVariables::formulaToLabel(formula, seq, diagram);
} }
else else
title = QString::number(diagram->folioIndex() + 1); title = QString::number(diagram->folioIndex() + 1);
title += " - "; title += " - ";
title += diagram->title(); title += diagram->title();
m_tab->setTabText(diagram_tab_id ,title); m_tab->setTabText(diagram_tab_id ,title);
} }
} }
/** /**

View File

@@ -91,6 +91,7 @@ void ReportElement::linkToElement(Element * elmt)
m_formula = diagram()->project()->defaultReportProperties(); m_formula = diagram()->project()->defaultReportProperties();
setConnectionForFormula(m_formula); setConnectionForFormula(m_formula);
connect(diagram()->project(), &QETProject::reportPropertiesChanged, this, &ReportElement::reportPropertiesChange); connect(diagram()->project(), &QETProject::reportPropertiesChanged, this, &ReportElement::reportPropertiesChange);
connect(diagram()->project(), &QETProject::diagramRemoved, this, &ReportElement::updateLabel);
if (elmt->terminals().size()) if (elmt->terminals().size())
{ {
@@ -124,6 +125,7 @@ void ReportElement::unlinkAllElements()
{ {
removeConnectionForFormula(m_formula); removeConnectionForFormula(m_formula);
disconnect(diagram()->project(), &QETProject::reportPropertiesChanged, this, &ReportElement::reportPropertiesChange); disconnect(diagram()->project(), &QETProject::reportPropertiesChanged, this, &ReportElement::reportPropertiesChange);
disconnect(diagram()->project(), &QETProject::diagramRemoved, this, &ReportElement::updateLabel);
if (elmt->terminals().size()) if (elmt->terminals().size())
{ {