[qet] [968] Correction : certaines actions du menu Edition etaient activees dans des cas ou elles n 'avaient pas de sens. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
Revision: 968
Author: xavier
Date: 2010-04-25 00:37:45 +0200 (Sun, 25 Apr 2010)
Log Message:
-----------
Correction : certaines actions du menu Edition etaient activees dans des cas ou elles n'avaient pas de sens.
Modified Paths:
--------------
branches/0.3/sources/diagramview.cpp
branches/0.3/sources/diagramview.h
branches/0.3/sources/qetdiagrameditor.cpp
Modified: branches/0.3/sources/diagramview.cpp
===================================================================
--- branches/0.3/sources/diagramview.cpp 2010-04-24 20:42:20 UTC (rev 967)
+++ branches/0.3/sources/diagramview.cpp 2010-04-24 22:37:45 UTC (rev 968)
@@ -457,13 +457,46 @@
}
/**
- @return true s'il y a des elements selectionnes sur le schema, false sinon
+ @return true s'il y a des items selectionnes sur le schema, false sinon
*/
bool DiagramView::hasSelectedItems() {
return(scene -> selectedItems().size() > 0);
}
/**
+ @return true s'il y a des items selectionnes sur le schema et que ceux-ci
+ peuvent etre copies dans le presse-papier, false sinon
+*/
+bool DiagramView::hasCopiableItems() {
+ foreach(QGraphicsItem *qgi, scene -> selectedItems()) {
+ if (
+ qgraphicsitem_cast<Element *>(qgi) ||
+ qgraphicsitem_cast<IndependentTextItem *>(qgi)
+ ) {
+ return(true);
+ }
+ }
+ return(false);
+}
+
+/**
+ @return true s'il y a des items selectionnes sur le schema et que ceux-ci
+ peuvent etre supprimes, false sinon
+*/
+bool DiagramView::hasDeletableItems() {
+ foreach(QGraphicsItem *qgi, scene -> selectedItems()) {
+ if (
+ qgraphicsitem_cast<Element *>(qgi) ||
+ qgraphicsitem_cast<Conductor *>(qgi) ||
+ qgraphicsitem_cast<IndependentTextItem *>(qgi)
+ ) {
+ return(true);
+ }
+ }
+ return(false);
+}
+
+/**
Ajoute une colonne au schema.
*/
void DiagramView::addColumn() {
Modified: branches/0.3/sources/diagramview.h
===================================================================
--- branches/0.3/sources/diagramview.h 2010-04-24 20:42:20 UTC (rev 967)
+++ branches/0.3/sources/diagramview.h 2010-04-24 22:37:45 UTC (rev 968)
@@ -61,6 +61,8 @@
Diagram *diagram() { return(scene); }
QETDiagramEditor *diagramEditor() const;
bool hasSelectedItems();
+ bool hasCopiableItems();
+ bool hasDeletableItems();
void addText();
IndependentTextItem *addDiagramTextAtPos(const QPointF &);
Modified: branches/0.3/sources/qetdiagrameditor.cpp
===================================================================
--- branches/0.3/sources/qetdiagrameditor.cpp 2010-04-24 20:42:20 UTC (rev 967)
+++ branches/0.3/sources/qetdiagrameditor.cpp 2010-04-24 22:37:45 UTC (rev 968)
@@ -1152,16 +1152,17 @@
conductor_reset -> setEnabled(editable_diagram && selected_conductors_count);
// actions ayant aussi besoin d'items (elements, conducteurs, textes, ...) selectionnes
- bool selected_items = dv ? (dv -> hasSelectedItems()) : false;
- cut -> setEnabled(editable_diagram && selected_items);
- copy -> setEnabled(selected_items);
- delete_selection -> setEnabled(editable_diagram && selected_items);
- rotate_selection -> setEnabled(editable_diagram && selected_items && dv -> diagram() -> canRotateSelection());
- selection_prop -> setEnabled(editable_diagram && selected_items);
+ bool copiable_items = dv ? (dv -> hasCopiableItems()) : false;
+ bool deletable_items = dv ? (dv -> hasDeletableItems()) : false;
+ cut -> setEnabled(editable_diagram && copiable_items);
+ copy -> setEnabled(copiable_items);
+ delete_selection -> setEnabled(editable_diagram && deletable_items);
+ rotate_selection -> setEnabled(editable_diagram && dv -> diagram() -> canRotateSelection());
+ selection_prop -> setEnabled(deletable_items);
// actions ayant besoin de textes selectionnes
bool selected_texts = dv ? (dv -> diagram() -> selectedTexts().count()) : 0;
- rotate_texts -> setEnabled(editable_diagram && selected_texts);
+ rotate_texts -> setEnabled(editable_diagram && selected_texts);
}
/**