1 #include <QApplication>
9 #include <QActionGroup>
13 #include "mainwindow.h"
14 #include "flagrowobj.h"
17 TextEditor *textEditor; // used in Constr. of LinkableMapObj
18 // initialized in mainwindow
20 Main *mainWindow; // used in BranchObj::select()
21 QString tmpVymDir; // All temp files go there, created in mainwindow
22 QString clipboardDir; // Clipboard used in all mapEditors
23 QDir vymBaseDir; // Containing all styles, scripts, images, ...
26 QString iconPath; // Pointing to icons used for toolbars
27 QString flagsPath; // Pointing to flags
29 FlagRowObj *systemFlagsDefault; // used to copy from in LinkableMapObj
30 FlagRowObj *standardFlagsDefault;
33 // (QActionGroup could not be "enabled")
34 Q3PtrList <QAction> actionListBranches;
36 // Actions which change sometimes
37 QAction *actionFileSave;
38 QAction *actionFilePrint;
39 QAction *actionEditUndo;
40 QAction *actionEditRedo;
41 QAction *actionEditCopy;
42 QAction *actionEditCut;
43 QAction *actionEditPaste;
44 QAction *actionEditMoveUp;
45 QAction *actionEditMoveDown;
46 QAction *actionEditToggleScroll;
47 QAction *actionEditOpenURL;
48 QAction *actionEditOpenURLTab;
49 QAction *actionEditURL;
50 QAction *actionEditHeading2URL;
51 QAction *actionEditBugzilla2URL;
52 QAction *actionEditFATE2URL;
53 QAction *actionEditOpenVymLink;
54 QAction *actionEditVymLink;
55 QAction *actionEditToggleHideExport;
56 QAction *actionEditDeleteVymLink;
57 QAction *actionEditMapInfo;
58 QAction *actionEditHeading;
59 QAction *actionEditDelete;
60 QAction *actionEditAddBranch;
61 QAction *actionEditAddBranchHere;
62 QAction *actionEditAddBranchAbove;
63 QAction *actionEditAddBranchBelow;
64 QAction *actionEditRemoveBranchKeepChilds;
65 QAction *actionEditRemoveChilds;
66 QAction *actionEditImportAdd;
67 QAction *actionEditImportReplace;
68 QAction *actionEditSaveBranch;
69 QAction *actionEditSelectFirst;
70 QAction *actionEditSelectLast;
71 QAction *actionEditLoadImage;
73 QAction *actionFormatColor;
74 QAction *actionFormatPickColor;
75 QAction *actionFormatColorBranch;
76 QAction *actionFormatColorSubtree;
77 QAction *actionFormatBackColor;
78 QAction *actionFormatLinkColorHint;
79 QAction *actionFormatLinkColor;
81 QActionGroup *actionGroupModModes;
82 QAction *actionModModeColor;
83 QAction *actionModModeLink;
84 QAction *actionModModeCopy;
86 QActionGroup *actionGroupFormatFrameTypes;
87 QAction *actionFormatFrameNone;
88 QAction *actionFormatFrameRectangle;
90 QActionGroup *actionGroupFormatLinkStyles;
91 QAction *actionFormatIncludeImagesVer;
92 QAction *actionFormatIncludeImagesHor;
93 QAction *actionFormatHideLinkUnselected;
94 QAction *actionFormatLinkStyleLine;
95 QAction *actionFormatLinkStyleParabel;
96 QAction *actionFormatLinkStylePolyLine;
97 QAction *actionFormatLinkStylePolyParabel;
99 QAction *actionViewToggleNoteEditor;
100 QAction *actionViewToggleHistoryWindow;
102 QAction *actionSettingsAutoselectHeading;
103 QAction *actionSettingsAutoselectText;
104 QAction *actionSettingsPasteNewHeading;
105 QAction *actionSettingsAutoedit;
106 QAction *actionSettingsUseDelKey;
107 QAction *actionSettingsUseFlagGroups;
108 QAction *actionSettingsUseHideExport;
111 QMenu* branchContextMenu;
112 QMenu* branchAddContextMenu;
113 QMenu* branchRemoveContextMenu;
114 QMenu* branchLinksContextMenuEdit;
115 QMenu* branchLinksContextMenuFollow;
116 QMenu* floatimageContextMenu;
117 QMenu* canvasContextMenu;
118 QMenu* fileLastMapsMenu;
119 QMenu* fileImportMenu;
120 QMenu* fileExportMenu;
123 Settings settings ("vym","vym"); // Organization, Application name
127 int statusbarTime=3500;
129 int main(int argc, char** argv)
131 //FIXME Q_INIT_RESOURCE (application);
133 QApplication app(argc,argv);
136 // Reading and initializing options commandline options
137 options.add ("version", SwitchOption, "v","version");
138 options.add ("local", SwitchOption, "l", "local");
139 options.add ("help", SwitchOption, "h", "help");
140 options.add ("quit", SwitchOption, "q", "quit");
141 options.add ("test", StringOption, "t", "test");
142 options.setHelpText (
143 "VYM - View Your Mind\n"
144 "--------------------\n\n"
145 "Information about vym can be found in vym.pdf,\n"
146 "which should be part of the vym package.\n"
147 "It is also available at the project homepage:\n\n"
148 "http://www.InSilmaril.de/vym\n");
151 //FIXME QT3 cout << endl << options.getHelpText()<<endl;
155 if (options.isOn ("version"))
157 cout << "vym version "<<__VYM_VERSION
158 <<" (c) 2004-2006 Uwe Drechsel - "
159 <<__BUILD_DATE<<endl;
164 // Use /usr/share/vym or /usr/local/share/vym or . ?
166 if (options.isOn ("local"))
168 vymBaseDir.setPath (vymBaseDir.currentDirPath());
170 // then look for environment variable
171 if (getenv("VYMHOME")!=0)
173 vymBaseDir.setPath (getenv("VYMHOME"));
175 // ok, let's find my way on my own
177 vymBaseDir.setPath ("/usr/share/vym");
178 if (!vymBaseDir.exists())
180 vymBaseDir.setPath ("/usr/local/share/vym");
181 if (!vymBaseDir.exists())
182 vymBaseDir.setPath(vymBaseDir.currentDirPath() );
186 iconPath=vymBaseDir.path()+"/icons/";
187 flagsPath=vymBaseDir.path()+"/flags/";
190 lastImageDir=QDir().current();
191 lastFileDir=QDir().current();
193 if (options.isOn ("help"))
195 cout << options.getHelpText().ascii()<<endl;
199 if (options.isOn ("test"))
201 // FIXME testing string option only
202 cout << "Testing: "<<options.getArg("test").ascii()<< endl;
205 q3InitNetworkProtocols();
208 // Initialize translations
209 QTranslator translator (0);
210 translator.load( QString("vym_")+QTextCodec::locale(), vymBaseDir.path() + "/lang");
211 app.installTranslator( &translator );
213 // Initializing the row of system flags
214 // is done in first call to MapEditor(),
215 // because we need at least one canvas first
216 systemFlagsDefault=NULL;
217 standardFlagsDefault=NULL;
219 // Initialize window of TextEditor
220 textEditor = new TextEditor();
221 textEditor->setIcon (QPixmap (iconPath+"vym-editor.png"));
222 if (textEditor->showWithMain()) textEditor->show();
224 // Initialize mainwindow
226 //m.resize(m.sizeHint());
227 m.setIcon (QPixmap (iconPath+"vym-48x48.png"));
232 // For benchmarking we may want to quit immediatly after drawing
233 if (options.isOn ("quit"))
238 QObject::connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) );