Sat, 27 Apr 2013 02:52:32 +0300
Fixed view going blank after resize
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
1 | /* |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
2 | * LDForge: LDraw parts authoring CAD |
104 | 3 | * Copyright (C) 2013 Santeri Piippo |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
4 | * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
5 | * This program is free software: you can redistribute it and/or modify |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
6 | * it under the terms of the GNU General Public License as published by |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
7 | * the Free Software Foundation, either version 3 of the License, or |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
8 | * (at your option) any later version. |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
9 | * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
10 | * This program is distributed in the hope that it will be useful, |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
13 | * GNU General Public License for more details. |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
14 | * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
15 | * You should have received a copy of the GNU General Public License |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
17 | */ |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
18 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
19 | #include <qfiledialog.h> |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
20 | #include <qmessagebox.h> |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
21 | #include "gui.h" |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
22 | #include "file.h" |
123
a54d9d5c0c1f
Added the about dialog.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
111
diff
changeset
|
23 | #include "history.h" |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
24 | #include "zz_newPartDialog.h" |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
25 | #include "zz_configDialog.h" |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
26 | #include "zz_addObjectDialog.h" |
123
a54d9d5c0c1f
Added the about dialog.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
111
diff
changeset
|
27 | #include "zz_aboutDialog.h" |
125
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
28 | #include "misc.h" |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
29 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
30 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
31 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
32 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
33 | MAKE_ACTION (newFile, "&New", "brick", "Create a new part model.", CTRL (N)) { |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
34 | NewPartDialog::StaticDialog (); |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
35 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
36 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
37 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
38 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
39 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
40 | MAKE_ACTION (open, "&Open", "file-open", "Load a part model from a file.", CTRL (O)) { |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
41 | str zName; |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
42 | zName += QFileDialog::getOpenFileName (g_ForgeWindow, "Open File", |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
43 | "", "LDraw files (*.dat *.ldr)"); |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
44 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
45 | if (~zName) |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
46 | openMainFile (zName); |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
47 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
48 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
49 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
50 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
51 | // ============================================================================= |
128
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
52 | void doSave (bool saveAs) { |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
53 | str path = g_CurrentFile->zFileName; |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
54 | |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
55 | if (~path == 0 || saveAs) { |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
56 | path = QFileDialog::getSaveFileName (g_ForgeWindow, "Save As", |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
57 | "", "LDraw files (*.dat *.ldr)"); |
128
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
58 | |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
59 | if (~path == 0) { |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
60 | // User didn't give a file name. This happens if the user cancelled |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
61 | // saving in the save file dialog. Abort. |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
62 | return; |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
63 | } |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
64 | } |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
65 | |
128
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
66 | if (g_CurrentFile->save (path)) { |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
67 | g_CurrentFile->zFileName = path; |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
68 | g_ForgeWindow->setTitle (); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
69 | |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
70 | logf ("Saved successfully to %s\n", path.chars ()); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
71 | } else { |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
72 | setlocale (LC_ALL, "C"); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
73 | |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
74 | // Tell the user the save failed, and give the option for saving as with it. |
129
9cf313447c8f
A saving failure is a critical error, not a warning and should be drawn as such
Santeri Piippo <crimsondusk64@gmail.com>
parents:
128
diff
changeset
|
75 | QMessageBox dlg (QMessageBox::Critical, "Save Failure", |
128
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
76 | format ("Failed to save to %s\nReason: %s", path.chars(), strerror (g_CurrentFile->lastError)), |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
77 | QMessageBox::Close, g_ForgeWindow); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
78 | |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
79 | QPushButton* saveAsBtn = new QPushButton ("Save As"); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
80 | saveAsBtn->setIcon (getIcon ("file-save-as")); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
81 | dlg.addButton (saveAsBtn, QMessageBox::ActionRole); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
82 | dlg.setDefaultButton (QMessageBox::Close); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
83 | dlg.exec (); |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
84 | |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
85 | if (dlg.clickedButton () == saveAsBtn) |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
86 | doSave (true); // yay recursion! |
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
87 | } |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
88 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
89 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
90 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
91 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
92 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
93 | MAKE_ACTION (save, "&Save", "file-save", "Save the part model.", CTRL (S)) { |
128
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
94 | doSave (false); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
95 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
96 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
97 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
98 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
99 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
100 | MAKE_ACTION (saveAs, "Save &As", "file-save-as", "Save the part model to a specific file.", CTRL_SHIFT (S)) { |
128
73a7edf82ca9
Warn for save failures with the save and save as actions, also provide with a button to save the file under a different name.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
125
diff
changeset
|
101 | doSave (true); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
102 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
103 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
104 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
105 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
106 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
107 | MAKE_ACTION (settings, "Settin&gs", "settings", "Edit the settings of " APPNAME_DISPLAY ".", (0)) { |
100
e40358266290
Added user-configurable quick-coloring toolbar for.. quick coloring.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
99
diff
changeset
|
108 | ConfigDialog::staticDialog (); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
109 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
110 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
111 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
112 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
113 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
114 | MAKE_ACTION (exit, "&Exit", "exit", "Close " APPNAME_DISPLAY ".", CTRL (Q)) { |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
115 | exit (0); |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
116 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
117 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
118 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
119 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
120 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
121 | MAKE_ACTION (newSubfile, "New Subfile", "add-subfile", "Creates a new subfile reference.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
122 | AddObjectDialog::staticDialog (OBJ_Subfile, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
123 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
124 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
125 | MAKE_ACTION (newLine, "New Line", "add-line", "Creates a new line.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
126 | AddObjectDialog::staticDialog (OBJ_Line, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
127 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
128 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
129 | MAKE_ACTION (newTriangle, "New Triangle", "add-triangle", "Creates a new triangle.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
130 | AddObjectDialog::staticDialog (OBJ_Triangle, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
131 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
132 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
133 | MAKE_ACTION (newQuad, "New Quadrilateral", "add-quad", "Creates a new quadrilateral.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
134 | AddObjectDialog::staticDialog (OBJ_Quad, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
135 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
136 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
137 | MAKE_ACTION (newCondLine, "New Conditional Line", "add-condline", "Creates a new conditional line.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
138 | AddObjectDialog::staticDialog (OBJ_CondLine, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
139 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
140 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
141 | MAKE_ACTION (newComment, "New Comment", "add-comment", "Creates a new comment.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
142 | AddObjectDialog::staticDialog (OBJ_Comment, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
143 | } |
111
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
144 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
145 | MAKE_ACTION (newVertex, "New Vertex", "add-vertex", "Creates a new vertex.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
146 | AddObjectDialog::staticDialog (OBJ_Vertex, null); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
147 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
148 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
149 | MAKE_ACTION (newRadial, "New Radial", "add-radial", "Creates a new radial.", 0) { |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
150 | AddObjectDialog::staticDialog (OBJ_Radial, null); |
111
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
151 | } |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
152 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
153 | MAKE_ACTION (help, "Help", "help", "Shows the " APPNAME_DISPLAY " help manual.", KEY (F1)) { |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
154 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
155 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
156 | |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
157 | // ============================================================================= |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
158 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
159 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
160 | MAKE_ACTION (about, "About " APPNAME_DISPLAY, "ldforge", |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
161 | "Shows information about " APPNAME_DISPLAY ".", CTRL (F1)) |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
162 | { |
123
a54d9d5c0c1f
Added the about dialog.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
111
diff
changeset
|
163 | AboutDialog dlg; |
a54d9d5c0c1f
Added the about dialog.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
111
diff
changeset
|
164 | dlg.exec (); |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
165 | } |
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
166 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
167 | MAKE_ACTION (aboutQt, "About Qt", "qt", "Shows information about Qt.", CTRL_SHIFT (F1)) { |
79
f8917e9d07f6
Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
diff
changeset
|
168 | QMessageBox::aboutQt (g_ForgeWindow); |
97
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
169 | } |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
170 | |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
171 | // ============================================================================= |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
172 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
173 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
174 | MAKE_ACTION (selectByColor, "Select by Color", "select-color", |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
175 | "Select all objects by the given color.", CTRL_SHIFT (A)) |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
176 | { |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
177 | short dColor = g_ForgeWindow->getSelectedColor (); |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
178 | |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
179 | if (dColor == -1) |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
180 | return; // no consensus on color |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
181 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
182 | g_ForgeWindow->sel.clear (); |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
183 | for (LDObject* obj : g_CurrentFile->objects) |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
184 | if (obj->dColor == dColor) |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
185 | g_ForgeWindow->sel.push_back (obj); |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
186 | |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
187 | g_ForgeWindow->updateSelection (); |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
188 | } |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
189 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
190 | MAKE_ACTION (selectByType, "Select by Type", "select-type", |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
191 | "Select all objects by the given type.", (0)) |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
192 | { |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
193 | if (g_ForgeWindow->sel.size () == 0) |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
194 | return; |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
195 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
196 | LDObjectType_e eType = g_ForgeWindow->uniformSelectedType (); |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
197 | |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
198 | if (eType == OBJ_Unidentified) |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
199 | return; |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
200 | |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
201 | // If we're selecting subfile references, the reference filename must also |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
202 | // be uniform. |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
203 | str zRefName; |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
204 | |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
205 | if (eType == OBJ_Subfile) { |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
206 | zRefName = static_cast<LDSubfile*> (g_ForgeWindow->sel[0])->zFileName; |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
207 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
208 | for (LDObject* pObj : g_ForgeWindow->sel) |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
209 | if (static_cast<LDSubfile*> (pObj)->zFileName != zRefName) |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
210 | return; |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
211 | } |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
212 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
213 | g_ForgeWindow->sel.clear (); |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
214 | for (LDObject* obj : g_CurrentFile->objects) { |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
215 | if (obj->getType() != eType) |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
216 | continue; |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
217 | |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
218 | if (eType == OBJ_Subfile && static_cast<LDSubfile*> (obj)->zFileName != zRefName) |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
219 | continue; |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
220 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
221 | g_ForgeWindow->sel.push_back (obj); |
110
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
222 | } |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
223 | |
a62ab18d1b80
Added select by type. Selection is now preserved over operations.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
109
diff
changeset
|
224 | g_ForgeWindow->updateSelection (); |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
225 | } |
125
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
226 | |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
227 | // ============================================================================= |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
228 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
229 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
230 | MAKE_ACTION (gridCoarse, "Coarse Grid", "grid-coarse", "Set the grid to Coarse", CTRL (1)) { |
125
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
231 | grid = Grid::Coarse; |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
232 | g_ForgeWindow->updateGridToolBar (); |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
233 | } |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
234 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
235 | MAKE_ACTION (gridMedium, "Medium Grid", "grid-medium", "Set the grid to Medium", CTRL (2)) { |
125
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
236 | grid = Grid::Medium; |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
237 | g_ForgeWindow->updateGridToolBar (); |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
238 | } |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
239 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
240 | MAKE_ACTION (gridFine, "Fine Grid", "grid-fine", "Set the grid to Fine", CTRL (3)) { |
125
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
241 | grid = Grid::Fine; |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
242 | g_ForgeWindow->updateGridToolBar (); |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
243 | } |
7ee7aa5e28be
Make grid actions regular actions rather than auto-generated, this way they can have keyboard shortcuts
Santeri Piippo <crimsondusk64@gmail.com>
parents:
124
diff
changeset
|
244 | |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
245 | // ============================================================================= |
142
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
246 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
247 | // ============================================================================= |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
248 | MAKE_ACTION (resetView, "Reset View", "reset-view", "Reset view angles, pan and zoom", CTRL (0)) { |
132
577e8e89d8de
Added panning to GL view, added action for resetting angles, zoom and pan
Santeri Piippo <crimsondusk64@gmail.com>
parents:
129
diff
changeset
|
249 | g_ForgeWindow->R->resetAngles (); |
577e8e89d8de
Added panning to GL view, added action for resetting angles, zoom and pan
Santeri Piippo <crimsondusk64@gmail.com>
parents:
129
diff
changeset
|
250 | g_ForgeWindow->R->updateGL (); |
577e8e89d8de
Added panning to GL view, added action for resetting angles, zoom and pan
Santeri Piippo <crimsondusk64@gmail.com>
parents:
129
diff
changeset
|
251 | } |
577e8e89d8de
Added panning to GL view, added action for resetting angles, zoom and pan
Santeri Piippo <crimsondusk64@gmail.com>
parents:
129
diff
changeset
|
252 | |
577e8e89d8de
Added panning to GL view, added action for resetting angles, zoom and pan
Santeri Piippo <crimsondusk64@gmail.com>
parents:
129
diff
changeset
|
253 | // ============================================================================= |
142
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
254 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
255 | // ============================================================================= |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
256 | MAKE_ACTION (insertFrom, "Insert from File", "insert-from", "Insert LDraw data from a file.", (0)) { |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
257 | str fname = QFileDialog::getOpenFileName (); |
141
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
258 | ulong idx = g_ForgeWindow->getInsertionPoint (); |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
259 | |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
260 | if (!~fname) |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
261 | return; |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
262 | |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
263 | FILE* fp = fopen (fname, "r"); |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
264 | if (!fp) { |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
265 | critical (format ("Couldn't open %s\n%s", fname.chars(), strerror (errno))); |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
266 | return; |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
267 | } |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
268 | |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
269 | std::vector<LDObject*> historyCopies; |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
270 | std::vector<ulong> historyIndices; |
141
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
271 | std::vector<LDObject*> objs = loadFileContents (fp, null); |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
272 | |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
273 | g_ForgeWindow->sel.clear (); |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
274 | |
141
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
275 | for (LDObject* obj : objs) { |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
276 | historyCopies.push_back (obj->clone ()); |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
277 | historyIndices.push_back (idx); |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
278 | g_CurrentFile->objects.insert (g_CurrentFile->objects.begin () + idx, obj); |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
279 | g_ForgeWindow->sel.push_back (obj); |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
280 | |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
281 | idx++; |
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
282 | } |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
283 | |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
284 | if (historyCopies.size() > 0) { |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
285 | History::addEntry (new AddHistory (historyIndices, historyCopies)); |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
286 | g_ForgeWindow->refresh (); |
141
184d117e1b12
corrections to inserting from file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
140
diff
changeset
|
287 | g_ForgeWindow->scrollToSelection (); |
140
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
288 | } |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
289 | } |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
290 | |
2e8c1626aef7
Added insert from action to import file contents from another file
Santeri Piippo <crimsondusk64@gmail.com>
parents:
138
diff
changeset
|
291 | // ============================================================================= |
109
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
292 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
f40b35142586
Improved shared selection handling; added select by color
Santeri Piippo <crimsondusk64@gmail.com>
parents:
104
diff
changeset
|
293 | // ============================================================================= |
142
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
294 | MAKE_ACTION (insertRaw, "Insert Raw", "insert-raw", "Type in LDraw code to insert.", (0)) { |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
295 | ulong idx = g_ForgeWindow->getInsertionPoint (); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
296 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
297 | QDialog* const dlg = new QDialog; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
298 | QVBoxLayout* const layout = new QVBoxLayout; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
299 | QTextEdit* const te_edit = new QTextEdit; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
300 | QDialogButtonBox* const bbx_buttons = new QDialogButtonBox (QDialogButtonBox::Ok | QDialogButtonBox::Cancel); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
301 | std::vector<LDObject*> historyCopies; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
302 | std::vector<ulong> historyIndices; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
303 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
304 | layout->addWidget (te_edit); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
305 | layout->addWidget (bbx_buttons); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
306 | dlg->setLayout (layout); |
143
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
307 | dlg->setWindowTitle (APPNAME_DISPLAY ": Insert Raw"); |
142
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
308 | dlg->connect (bbx_buttons, SIGNAL (accepted ()), dlg, SLOT (accept ())); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
309 | dlg->connect (bbx_buttons, SIGNAL (rejected ()), dlg, SLOT (reject ())); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
310 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
311 | if (dlg->exec () == false) |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
312 | return; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
313 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
314 | g_ForgeWindow->sel.clear (); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
315 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
316 | for (str line : str (te_edit->toPlainText ()).split ("\n")) { |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
317 | LDObject* obj = parseLine (line); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
318 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
319 | g_CurrentFile->objects.insert (g_CurrentFile->objects.begin () + idx, obj); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
320 | historyIndices.push_back (idx); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
321 | historyCopies.push_back (obj->clone ()); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
322 | g_ForgeWindow->sel.push_back (obj); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
323 | idx++; |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
324 | } |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
325 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
326 | if (historyCopies.size () > 0) { |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
327 | History::addEntry (new AddHistory (historyIndices, historyCopies)); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
328 | g_ForgeWindow->refresh (); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
329 | g_ForgeWindow->scrollToSelection (); |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
330 | } |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
331 | } |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
332 | |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
333 | // ============================================================================= |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
334 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
6e8aee653dab
Added action from inserting raw LDraw data into the part.
Santeri Piippo <crimsondusk64@gmail.com>
parents:
141
diff
changeset
|
335 | // ============================================================================= |
143
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
336 | MAKE_ACTION (screencap, "Screencap Part", "screencap", "Save a picture of the model", (0)) { |
144
b2b8b45f6f5f
Fixed view going blank after resize
Santeri Piippo <crimsondusk64@gmail.com>
parents:
143
diff
changeset
|
337 | setlocale (LC_ALL, "C"); |
b2b8b45f6f5f
Fixed view going blank after resize
Santeri Piippo <crimsondusk64@gmail.com>
parents:
143
diff
changeset
|
338 | |
143
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
339 | ushort w, h; |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
340 | uchar* imagedata = g_ForgeWindow->R->screencap (w, h); |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
341 | |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
342 | // GL and Qt formats have R and B swapped. Also, GL flips Y - correct it as well. |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
343 | QImage img = QImage (imagedata, w, h, QImage::Format_ARGB32).rgbSwapped ().mirrored (); |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
344 | |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
345 | str fname = QFileDialog::getSaveFileName (); |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
346 | if (~fname > 0 && !img.save (fname)) |
144
b2b8b45f6f5f
Fixed view going blank after resize
Santeri Piippo <crimsondusk64@gmail.com>
parents:
143
diff
changeset
|
347 | critical (format ("Couldn't open %s for writing to save screencap: %s", fname.chars(), strerror (errno))); |
143
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
348 | |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
349 | delete[] imagedata; |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
350 | } |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
351 | |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
352 | // ============================================================================= |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
353 | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
e3c37b950a68
Added screencapping
Santeri Piippo <crimsondusk64@gmail.com>
parents:
142
diff
changeset
|
354 | // ============================================================================= |
97
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
355 | // Debug things |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
356 | #ifndef RELEASE |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
357 | MAKE_ACTION (addTestQuad, "Add Test Quad", "add-quad", "Adds a test quad.", (0)) { |
97
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
358 | LDQuad* pQuad = new LDQuad; |
111
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
359 | pQuad->dColor = rand () % 24; |
97
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
360 | pQuad->vaCoords[0] = { 1.0f, 0.0f, 1.0f}; |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
361 | pQuad->vaCoords[1] = {-1.0f, 0.0f, 1.0f}; |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
362 | pQuad->vaCoords[2] = {-1.0f, 0.0f, -1.0f}; |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
363 | pQuad->vaCoords[3] = { 1.0f, 0.0f, -1.0f}; |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
364 | |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
365 | g_CurrentFile->addObject (pQuad); |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
366 | History::addEntry (new AddHistory ({(ulong)pQuad->getIndex (g_CurrentFile)}, {pQuad->clone ()})); |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
367 | g_ForgeWindow->refresh (); |
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
368 | } |
111
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
369 | |
135
c243df39913e
Cleanup and some restructuring
Santeri Piippo <crimsondusk64@gmail.com>
parents:
132
diff
changeset
|
370 | MAKE_ACTION (addTestRadial, "Add Test Radial", "add-radial", "Adds a test radial.", (0)) { |
111
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
371 | LDRadial* pRad = new LDRadial; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
372 | pRad->eRadialType = LDRadial::Cone; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
373 | pRad->mMatrix = g_mIdentity; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
374 | pRad->vPosition = vertex (0, 0, 0); |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
375 | pRad->dColor = rand () % 24; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
376 | pRad->dDivisions = 16; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
377 | pRad->dRingNum = 2; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
378 | pRad->dSegments = 16; |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
379 | |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
380 | g_CurrentFile->addObject (pRad); |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
381 | History::addEntry (new AddHistory ({(ulong)pRad->getIndex (g_CurrentFile)}, {pRad->clone ()})); |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
382 | g_ForgeWindow->refresh (); |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
383 | } |
125e8031dbf1
Added the radial type, this one sure has been on my wishlist for a while. :)
Santeri Piippo <crimsondusk64@gmail.com>
parents:
110
diff
changeset
|
384 | |
97
52bcca21579e
Fleshed out the history dialog further
Santeri Piippo <crimsondusk64@gmail.com>
parents:
80
diff
changeset
|
385 | #endif // RELEASE |