From e8e005dfaae5eb4a0fbcdee133dcb32f7e429f77 Mon Sep 17 00:00:00 2001 From: blacksun Date: Tue, 28 May 2013 16:50:35 +0000 Subject: [PATCH] add condition to enable the richtext menu entry git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2180 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/diagram.cpp | 14 ++++++++++++++ sources/diagram.h | 2 ++ sources/qetdiagrameditor.cpp | 5 +++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/sources/diagram.cpp b/sources/diagram.cpp index 73df458ff..f42822881 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -1066,6 +1066,20 @@ QSet Diagram::selectedTexts() const { return(selected_texts); } +/** + * @brief Diagram::selectedConductorTexts + * @return the list of conductor texts selected + */ +QSet Diagram::selectedConductorTexts() const { + QSet selected_texts; + foreach(QGraphicsItem *item, selectedItems()) { + if (ConductorTextItem *cti = qgraphicsitem_cast(item)) { + selected_texts << cti; + } + } + return(selected_texts); +} + /// @return true si le presse-papier semble contenir un schema bool Diagram::clipboardMayContainDiagram() { QString clipboard_text = QApplication::clipboard() -> text().trimmed(); diff --git a/sources/diagram.h b/sources/diagram.h index 95397fdb7..fa33f89b4 100644 --- a/sources/diagram.h +++ b/sources/diagram.h @@ -39,6 +39,7 @@ class ElementTextsMover; class IndependentTextItem; class QETProject; class Terminal; +class ConductorTextItem; /** This class represents an electric diagram. It manages its various child elements, conductors and texts and handles their graphic rendering. @@ -162,6 +163,7 @@ class Diagram : public QGraphicsScene { QList customElements() const; QSet selectedTexts() const; + QSet selectedConductorTexts() const; QSet selectedConductors() const; DiagramContent content() const; DiagramContent selectedContent(); diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 76bec577c..1d22bb005 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -1201,9 +1201,10 @@ void QETDiagramEditor::slot_updateComplexActions() { prj_diagramNum -> setEnabled(editable_diagram); // actions ayant besoin de textes selectionnes - bool selected_texts = dv ? (dv -> diagram() -> selectedTexts().count()) : 0; + int selected_texts = dv ? (dv -> diagram() -> selectedTexts().count()) : 0; + int selected_conductor_texts = dv ? (dv -> diagram() -> selectedConductorTexts().count()) : 0; rotate_texts -> setEnabled(editable_diagram && selected_texts); - add_edittext -> setEnabled(editable_diagram && selected_texts); + add_edittext -> setEnabled(editable_diagram && selected_texts == 1 && !selected_conductor_texts); }