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); }