bug fix, diagramContent: fix the bug about & and ==

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2558 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2013-09-26 09:27:55 +00:00
parent 0890de4505
commit d314ed68c6
3 changed files with 18 additions and 24 deletions

View File

@@ -100,24 +100,18 @@ QList<QGraphicsItem *> DiagramContent::items(int filter) const {
*/
int DiagramContent::count(int filter) const {
int count = 0;
if (filter == SelectedOnly) {
if (filter == Elements) foreach(Element *element, elements) { if (element -> isSelected()) ++ count; }
if (filter == TextFields) foreach(DiagramTextItem *dti, textFields) { if (dti -> isSelected()) ++ count; }
if (filter == Images) foreach(DiagramImageItem *dii, images) { if (dii -> isSelected()) ++ count; }
if (filter == ConductorsToMove) foreach(Conductor *conductor, conductorsToMove) { if (conductor -> isSelected()) ++ count; }
if (filter == ConductorsToUpdate) foreach(Conductor *conductor, conductorsToUpdate) { if (conductor -> isSelected()) ++ count; }
if (filter == OtherConductors) foreach(Conductor *conductor, otherConductors) { if (conductor -> isSelected()) ++ count; }
} else if (filter == All) {
count += elements.count();
count += textFields.count();
count += images.count();
count += conductorsToMove.count();
count += conductorsToUpdate.count();
count += otherConductors.count();
} else {
if (filter & SelectedOnly) {
if (filter & Elements) foreach(Element *element, elements) { if (element -> isSelected()) ++ count; }
if (filter & TextFields) foreach(DiagramTextItem *dti, textFields) { if (dti -> isSelected()) ++ count; }
if (filter & Images) foreach(DiagramImageItem *dii, images) { if (dii -> isSelected()) ++ count; }
if (filter & ConductorsToMove) foreach(Conductor *conductor, conductorsToMove) { if (conductor -> isSelected()) ++ count; }
if (filter & ConductorsToUpdate) foreach(Conductor *conductor, conductorsToUpdate) { if (conductor -> isSelected()) ++ count; }
if (filter & OtherConductors) foreach(Conductor *conductor, otherConductors) { if (conductor -> isSelected()) ++ count; }
}
else {
if (filter & Elements) count += elements.count();
if (filter & TextFields) count += textFields.count();
if (filter == Images) count += images.count();
if (filter & Images) count += images.count();
if (filter & ConductorsToMove) count += conductorsToMove.count();
if (filter & ConductorsToUpdate) count += conductorsToUpdate.count();
if (filter & OtherConductors) count += otherConductors.count();

View File

@@ -41,13 +41,13 @@ class DiagramContent {
enum Filter {
Elements = 1,
TextFields = 2,
Images = 3,
ConductorsToMove = 4,
ConductorsToUpdate = 8,
OtherConductors = 16,
AnyConductor = 28,
All = 31,
SelectedOnly = 32
Images = 4,
ConductorsToMove = 8,
ConductorsToUpdate = 16,
OtherConductors = 32,
AnyConductor = 56,
All = 63,
SelectedOnly = 64
};
/// Hold electrical elements

View File

@@ -1533,7 +1533,7 @@ void QETDiagramEditor::slot_addImage() {
void QETDiagramEditor::slot_editSelection() {
if (DiagramView *dv = currentDiagram()) {
DiagramContent dc = dv -> diagram() -> selectedContent();
if (dc.count() != 1) return;
if (dc.count(DiagramContent::SelectedOnly | DiagramContent::All) != 1) return;
if (dc.count(DiagramContent::Elements)) {
findSelectedElementInPanel();