[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);
 }
 
 /**


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/