From: Shamus Hammons Date: Thu, 23 Apr 2020 23:23:54 +0000 (-0500) Subject: Fix grouping on layers other than 0 from disappearing. X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=architektonas;a=commitdiff_plain;h=97cfdecd62ced6cb1237a9ac6c7cbce2092fde99 Fix grouping on layers other than 0 from disappearing. --- diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 7dd57ac..cbb9636 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -537,57 +537,6 @@ void ApplicationWindow::Settings(void) // void ApplicationWindow::HandleGrouping(void) { -#if 0 - int itemsSelected = drawing->document.ItemsSelected(); - - // If nothing selected, do nothing - if (itemsSelected == 0) - { - statusBar()->showMessage(tr("No objects selected to make a group from.")); - return; - } - - // If it's a group that's selected, ungroup it and leave the objects in a - // selected state - if (itemsSelected == 1) - { - Object * object = drawing->document.SelectedItem(0); - -#if 0 -if (object == NULL) - printf("SelectedItem = NULL!\n"); -else - printf("SelectedItem = %08X, type = %i\n", object, object->type); -#endif - - if (object == NULL || object->type != OTContainer) - { - statusBar()->showMessage(tr("A group requires two or more selected objects.")); - return; - } - - // Need the parent of the group, we're assuming here that the parent is - // the drawing's document. Does it matter? Maybe... - // Could just stipulate that grouping like this only takes place where - // the parent of the group is the drawing's document. Makes life much - // simpler. - ((Container *)object)->SelectAll(); - ((Container *)object)->MoveContentsTo(&(drawing->document)); - drawing->document.Delete(object); - statusBar()->showMessage(tr("Objects ungrouped.")); - } - // Otherwise, if it's a group of 2 or more objects (which can be groups too) - // group them and select the group - else if (itemsSelected > 1) - { - Container * container = new Container(Vector(), &(drawing->document)); - drawing->document.MoveSelectedContentsTo(container); - drawing->document.Add(container); - container->DeselectAll(); - container->state = OSSelected; - statusBar()->showMessage(QString(tr("Grouped %1 objects.")).arg(itemsSelected)); - } -#else int numSelected = drawing->select.size(); // If nothing selected, do nothing @@ -614,13 +563,8 @@ else // Could just stipulate that grouping like this only takes place where // the parent of the group is the drawing's document. Makes life much // simpler. -// ((Container *)object)->SelectAll(); -// ((Container *)object)->MoveContentsTo(&(drawing->document)); -// drawing->document.Delete(object); Container * c = (Container *)obj; -//printf("Ungroup: container size = %li\n", c->objects.size()); SelectAll(c->objects); -//printf("Ungroup: document size = %li (pre-AddObjectsTo)\n", drawing->document.objects.size()); RemoveSelectedObjects(drawing->document.objects); AddObjectsTo(drawing->document.objects, c->objects); drawing->select.clear(); @@ -633,20 +577,12 @@ else // group them and select the group else if (numSelected > 1) { -// Container * container = new Container(Vector(), &(drawing->document)); -// drawing->document.MoveSelectedContentsTo(container); -// drawing->document.Add(container); -// container->DeselectAll(); -// container->state = OSSelected; - Container * c = new Container(); -// AddObjectsTo(c->objects, drawing->select); -// RemoveSelectedObjects(drawing->document.objects); MoveSelectedObjectsTo(c->objects, drawing->document.objects); drawing->document.objects.push_back(c); ClearSelected(c->objects); c->selected = true; - c->layer = Global::currentLayer; + c->layer = Global::activeLayer; Rect r = drawing->GetObjectExtents((Object *)c); c->p[0] = r.TopLeft(); @@ -657,7 +593,6 @@ else statusBar()->showMessage(QString(tr("Grouped %1 objects.")).arg(numSelected)); //printf("Group: document size = %li\n", drawing->document.objects.size()); } -#endif drawing->update(); } diff --git a/src/drawingview.cpp b/src/drawingview.cpp index 60f941e..7c5107e 100644 --- a/src/drawingview.cpp +++ b/src/drawingview.cpp @@ -2,7 +2,7 @@ // drawingview.cpp // // Part of the Architektonas Project -// (C) 2011 Underground Software +// (C) 2011-2020 Underground Software // See the README and GPLv3 files for licensing and warranty information // // JLH = James Hammons diff --git a/src/global.cpp b/src/global.cpp index f9e016f..6dfbd90 100644 --- a/src/global.cpp +++ b/src/global.cpp @@ -27,7 +27,6 @@ int Global::tool = TTNone; int Global::toolState = TSNone; double Global::gridSpacing; -int Global::currentLayer = 0; Point Global::snapPoint; bool Global::snapPointIsValid = false; uint32_t Global::objectID = 1; diff --git a/src/global.h b/src/global.h index 06c04e8..cdcd204 100644 --- a/src/global.h +++ b/src/global.h @@ -21,7 +21,6 @@ class Global static double gridSpacing; static bool selectionInProgress; static QRectF selection; - static int currentLayer; static QFont * font; static Point snapPoint; static bool snapPointIsValid;