src/gui_editactions.cpp

changeset 221
1dd18eea7c84
parent 220
1f368f0a323b
child 232
4e44c92e21dd
equal deleted inserted replaced
220:1f368f0a323b 221:1dd18eea7c84
184 } 184 }
185 185
186 // ======================================================================================================================================= 186 // =======================================================================================================================================
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
188 // ======================================================================================================================================= 188 // =======================================================================================================================================
189 MAKE_ACTION (radialResolution, "Radial resolution", "radial-resolve", "Resolve radials into primitives.", (0)) { 189 MAKE_ACTION (radialConvert, "Radials to Subfiles", "radial-convert", "Convert radials into primitives.", (0)) {
190 vector<str> fails; 190 vector<str> fails;
191 vector<LDObject*> sel = g_win->sel (); 191 vector<LDObject*> sel = g_win->sel ();
192 EditHistory* history = new EditHistory; 192 EditHistory* history = new EditHistory;
193 193
194 for (LDObject* obj : sel) { 194 for (LDObject* obj : sel) {
312 // ============================================================================= 312 // =============================================================================
313 MAKE_ACTION (setColor, "Set Color", "palette", "Set the color on given objects.", KEY (F10)) { 313 MAKE_ACTION (setColor, "Set Color", "palette", "Set the color on given objects.", KEY (F10)) {
314 if (g_win->sel ().size() <= 0) 314 if (g_win->sel ().size() <= 0)
315 return; 315 return;
316 316
317 short dColor; 317 short colnum;
318 short dDefault = -1; 318 short defcol = -1;
319 319
320 std::vector<LDObject*> objs = g_win->sel (); 320 std::vector<LDObject*> objs = g_win->sel ();
321 321
322 // If all selected objects have the same color, said color is our default 322 // If all selected objects have the same color, said color is our default
323 // value to the color selection dialog. 323 // value to the color selection dialog.
324 dDefault = g_win->getSelectedColor (); 324 defcol = g_win->getSelectedColor ();
325 325
326 // Show the dialog to the user now and ask for a color. 326 // Show the dialog to the user now and ask for a color.
327 if (ColorSelectDialog::staticDialog (dColor, dDefault, g_win)) { 327 if (ColorSelectDialog::staticDialog (colnum, defcol, g_win)) {
328 std::vector<ulong> ulaIndices; 328 std::vector<ulong> indices;
329 std::vector<short> daColors; 329 std::vector<short> colornums;
330 330
331 for (LDObject* obj : objs) { 331 for (LDObject* obj : objs) {
332 if (obj->color != -1) { 332 if (obj->isColored () == false)
333 ulaIndices.push_back (obj->getIndex (g_curfile)); 333 continue;
334 daColors.push_back (obj->color); 334
335 335 indices.push_back (obj->getIndex (g_curfile));
336 obj->color = dColor; 336 colornums.push_back (obj->color);
337 g_win->R ()->compileObject (obj); 337
338 } 338 obj->color = colnum;
339 g_win->R ()->compileObject (obj);
339 } 340 }
340 341
341 History::addEntry (new SetColorHistory (ulaIndices, daColors, dColor)); 342 History::addEntry (new SetColorHistory (indices, colornums, colnum));
342 g_win->refresh (); 343 g_win->refresh ();
343 } 344 }
344 } 345 }
345 346
346 // ============================================================================= 347 // =============================================================================
791 return true; 792 return true;
792 793
793 return false; 794 return false;
794 } 795 }
795 796
796 MAKE_ACTION (autoColor, "Auto-color", "auto-color", "Set the color of the given object to the first found unused color.", (0)) { 797 MAKE_ACTION (autoColor, "Autocolor", "autocolor", "Set the color of the given object to the first found unused color.", (0)) {
797 short colnum = 0; 798 short colnum = 0;
798 vector<ulong> indices; 799 vector<ulong> indices;
799 vector<short> colors; 800 vector<short> colors;
800 801
801 while (colnum < 512 && (getColor (colnum) == null || isColorUsed (colnum))) 802 while (colnum < 512 && (getColor (colnum) == null || isColorUsed (colnum)))

mercurial