1 #include <qapplication.h>
3 #include <qtranslator.h>
7 #include "mainwindow.h"
9 #include "icons/vym-48x48.xpm"
10 #include "icons/vym-editor.xpm"
12 #include "flagrowobj.h"
15 TextEditor *textEditor; // used in Constr. of LinkableMapObj
16 // initialized in mainwindow
18 Main *mainWindow; // used in BranchObj::select()
19 MapEditor *clipboardME;
20 FlagRowObj *systemFlagsDefault; // used to copy from in LinkableMapObj
21 FlagRowObj *standardFlagsDefault;
23 // Actions which change sometimes
24 QAction *actionFileSave;
25 QAction *actionFilePrint;
26 QAction *actionEditUndo;
27 QAction *actionEditCopy;
28 QAction *actionEditCut;
29 QAction *actionEditPaste;
30 QAction *actionEditMoveUp;
31 QAction *actionEditMoveDown;
32 QAction *actionEditToggleScroll;
33 QAction *actionEditOpenURL;
34 QAction *actionEditURL;
35 QAction *actionEditHeading2URL;
36 QAction *actionEditBugzilla2URL;
37 QAction *actionEditOpenVymLink;
38 QAction *actionEditVymLink;
39 QAction *actionEditDeleteVymLink;
40 QAction *actionEditMapInfo;
41 QAction *actionEditHeading;
42 QAction *actionEditDelete;
43 QAction *actionEditAddBranch;
44 QAction *actionEditAddBranchAbove;
45 QAction *actionEditAddBranchBelow;
46 QAction *actionEditImportAdd;
47 QAction *actionEditImportReplace;
48 QAction *actionEditSaveBranch;
49 QAction *actionEditSelectFirst;
50 QAction *actionEditSelectLast;
51 QAction *actionEditLoadImage;
52 QAction *actionEditToggleFloatExport;
53 QAction *actionEditNoLink;
55 QAction *actionFormatColor;
56 QAction *actionFormatPickColor;
57 QAction *actionFormatColorBranch;
58 QAction *actionFormatColorSubtree;
59 QAction *actionFormatBackColor;
60 QAction *actionFormatLinkColorHint;
61 QAction *actionFormatLinkColor;
63 QActionGroup *actionGroupModModes;
64 QAction *actionModModeColor;
65 QAction *actionModModeLink;
67 QActionGroup *actionGroupFormatFrameTypes;
68 QAction *actionFormatFrameNone;
69 QAction *actionFormatFrameRectangle;
71 QActionGroup *actionGroupFormatLinkStyles;
72 QAction *actionFormatLinkStyleLine;
73 QAction *actionFormatLinkStyleParabel;
74 QAction *actionFormatLinkStylePolyLine;
75 QAction *actionFormatLinkStylePolyParabel;
77 QAction *actionViewToggleNoteEditor;
79 QAction *actionSettingsAutoselectHeading;
80 QAction *actionSettingsAutoselectText;
81 QAction *actionSettingsPasteNewHeading;
82 QAction *actionSettingsAutoedit;
83 QAction *actionSettingsUseDelKey;
85 QPopupMenu *branchContextMenu;
86 QPopupMenu *branchLinksContextMenu;
87 QPopupMenu *floatimageContextMenu;
88 QPopupMenu *saveImageFormatMenu;
89 QPopupMenu *canvasContextMenu;
90 QPopupMenu *lastMapsMenu;
91 QPopupMenu *exportMenu;
92 QPopupMenu *exportImageFormatMenu;
98 int statusbarTime=3500;
100 int main(int argc, char** argv)
102 QApplication app(argc,argv);
105 // Initialize translations
106 QTranslator translator (0);
107 translator.load( "vym_de", "." );
108 app.installTranslator( &translator );
110 // Initializing the row of system flags
111 // is done in first call to MapEditor(),
112 // because we need at least one canvas first
113 systemFlagsDefault=NULL;
114 standardFlagsDefault=NULL;
116 // Reading and initializing options commandline options
117 options.add ("version", SwitchOption, "v","version");
118 options.add ("help", SwitchOption, "h", "help");
119 options.add ("quit", SwitchOption, "q", "quit");
120 options.add ("test", StringOption, "t", "test");
121 options.setHelpText (
122 "VYM - View Your Mind\n"
123 "--------------------\n\n"
124 "Information about vym can be found in vym.pdf,\n"
125 "which should be part of the vym package.\n"
126 "It is also available at the project homepage:\n\n"
127 "http://www.InSilmaril.de/vym\n");
130 cout << endl << options.getHelpText()<<endl;
134 if (options.isOn ("version"))
136 cout << "vym version "<<__VYM_VERSION__
137 <<" (c) 2004 Uwe Drechsel - "
138 <<__BUILD_DATE__<<endl;
143 if (options.isOn ("help"))
145 cout << options.getHelpText()<<endl;
149 if (options.isOn ("test"))
151 // FIXME testing string option only
152 cout << "Testing: "<<options.getArg("test")<< endl;
155 // Initialize window of TextEditor
156 textEditor = new TextEditor();
157 textEditor->setIcon (QPixmap (vym_editor_xpm));
158 if (textEditor->showWithMain()) textEditor->show();
160 clipboardME = new MapEditor();
161 clipboardME->resize (800,600);
162 clipboardME->setCaption("VYM - clipboard");
165 // Initialize mainwindow after Mapeditors (because of Flags)
167 //m.resize(m.sizeHint());
168 m.setIcon (QPixmap (vym_logo_xpm));
173 // For benchmarking we may want to quit immediatly after drawing
174 if (options.isOn ("quit"))
179 QObject::connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) );