Bug fix: disable entry edit text field for html editor for elements text in diagram

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3566 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
scorpio810
2014-12-23 01:51:17 +00:00
parent dfacacfdce
commit bcbf6ba431
3 changed files with 16 additions and 1 deletions

View File

@@ -1182,6 +1182,19 @@ QSet<ConductorTextItem *> Diagram::selectedConductorTexts() const {
return(selected_texts); return(selected_texts);
} }
QSet<ElementTextItem*> Diagram::selectedElementTexts() const {
QSet<ElementTextItem *> selected_texts;
foreach(QGraphicsItem *item, selectedItems()) {
if (ElementTextItem *cti = qgraphicsitem_cast< ElementTextItem*>(item)) {
selected_texts << cti;
}
}
return(selected_texts);
}
/// @return true si le presse-papier semble contenir un schema /// @return true si le presse-papier semble contenir un schema
bool Diagram::clipboardMayContainDiagram() { bool Diagram::clipboardMayContainDiagram() {
QString clipboard_text = QApplication::clipboard() -> text().trimmed(); QString clipboard_text = QApplication::clipboard() -> text().trimmed();

View File

@@ -180,6 +180,7 @@ class Diagram : public QGraphicsScene
QList<Element *> elements() const; QList<Element *> elements() const;
QSet<DiagramTextItem *> selectedTexts() const; QSet<DiagramTextItem *> selectedTexts() const;
QSet<ConductorTextItem *> selectedConductorTexts() const; QSet<ConductorTextItem *> selectedConductorTexts() const;
QSet<ElementTextItem*> selectedElementTexts() const;
QSet<Conductor *> selectedConductors() const; QSet<Conductor *> selectedConductors() const;
DiagramContent content() const; DiagramContent content() const;
DiagramContent selectedContent(); DiagramContent selectedContent();

View File

@@ -1234,13 +1234,14 @@ void QETDiagramEditor::slot_updateComplexActions() {
// actions ayant besoin de textes selectionnes // actions ayant besoin de textes selectionnes
int 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; int selected_conductor_texts = dv ? (dv -> diagram() -> selectedConductorTexts().count()) : 0;
int selected_element_texts = dv ? (dv -> diagram() -> selectedElementTexts().count()) : 0;
rotate_texts -> setEnabled(editable_diagram && selected_texts); rotate_texts -> setEnabled(editable_diagram && selected_texts);
// actions need only one editable item // actions need only one editable item
int selected_image = dv ? dv -> diagram() -> selectedContent().count(DiagramContent::Images) : 0; int selected_image = dv ? dv -> diagram() -> selectedContent().count(DiagramContent::Images) : 0;
int selected_shape = dv ? dv -> diagram() -> selectedContent().count(DiagramContent::Shapes) : 0; int selected_shape = dv ? dv -> diagram() -> selectedContent().count(DiagramContent::Shapes) : 0;
int selected_editable = selected_elements_count + (selected_texts - selected_conductor_texts) + selected_image + selected_shape; int selected_editable = selected_elements_count + (selected_texts - selected_conductor_texts - selected_element_texts) + selected_image + selected_shape;
if (selected_editable == 1) { if (selected_editable == 1) {
edit_selection -> setEnabled(true); edit_selection -> setEnabled(true);