added modifier modes (color,link,copy). Not fully functional yet
1 #include <qapplication.h>
3 #include <qtranslator.h>
5 #include <qtextcodec.h>
9 #include "mainwindow.h"
11 #include "icons/vym-48x48.xpm"
12 #include "icons/vym-editor.xpm"
14 #include "flagrowobj.h"
17 TextEditor *textEditor; // used in Constr. of LinkableMapObj
18 // initialized in mainwindow
20 Main *mainWindow; // used in BranchObj::select()
21 MapEditor *clipboardME;
22 FlagRowObj *systemFlagsDefault; // used to copy from in LinkableMapObj
23 FlagRowObj *standardFlagsDefault;
25 // Actions which change sometimes
26 QAction *actionFileSave;
27 QAction *actionFilePrint;
28 QAction *actionEditUndo;
29 QAction *actionEditCopy;
30 QAction *actionEditCut;
31 QAction *actionEditPaste;
32 QAction *actionEditMoveUp;
33 QAction *actionEditMoveDown;
34 QAction *actionEditToggleScroll;
35 QAction *actionEditOpenURL;
36 QAction *actionEditURL;
37 QAction *actionEditHeading2URL;
38 QAction *actionEditBugzilla2URL;
39 QAction *actionEditOpenVymLink;
40 QAction *actionEditVymLink;
41 QAction *actionEditDeleteVymLink;
42 QAction *actionEditMapInfo;
43 QAction *actionEditHeading;
44 QAction *actionEditDelete;
45 QAction *actionEditAddBranch;
46 QAction *actionEditAddBranchAbove;
47 QAction *actionEditAddBranchBelow;
48 QAction *actionEditImportAdd;
49 QAction *actionEditImportReplace;
50 QAction *actionEditSaveBranch;
51 QAction *actionEditSelectFirst;
52 QAction *actionEditSelectLast;
53 QAction *actionEditLoadImage;
54 QAction *actionEditToggleFloatExport;
55 QAction *actionEditNoLink;
57 QAction *actionFormatColor;
58 QAction *actionFormatPickColor;
59 QAction *actionFormatColorBranch;
60 QAction *actionFormatColorSubtree;
61 QAction *actionFormatBackColor;
62 QAction *actionFormatLinkColorHint;
63 QAction *actionFormatLinkColor;
65 QActionGroup *actionGroupModModes;
66 QAction *actionModModeColor;
67 QAction *actionModModeLink;
68 QAction *actionModModeCopy;
70 QActionGroup *actionGroupFormatFrameTypes;
71 QAction *actionFormatFrameNone;
72 QAction *actionFormatFrameRectangle;
74 QActionGroup *actionGroupFormatLinkStyles;
75 QAction *actionFormatLinkStyleLine;
76 QAction *actionFormatLinkStyleParabel;
77 QAction *actionFormatLinkStylePolyLine;
78 QAction *actionFormatLinkStylePolyParabel;
80 QAction *actionViewToggleNoteEditor;
82 QAction *actionSettingsAutoselectHeading;
83 QAction *actionSettingsAutoselectText;
84 QAction *actionSettingsPasteNewHeading;
85 QAction *actionSettingsAutoedit;
86 QAction *actionSettingsUseDelKey;
88 QPopupMenu *branchContextMenu;
89 QPopupMenu *branchLinksContextMenu;
90 QPopupMenu *floatimageContextMenu;
91 QPopupMenu *saveImageFormatMenu;
92 QPopupMenu *canvasContextMenu;
93 QPopupMenu *lastMapsMenu;
94 QPopupMenu *exportMenu;
95 QPopupMenu *exportImageFormatMenu;
101 int statusbarTime=3500;
103 int main(int argc, char** argv)
105 QApplication app(argc,argv);
108 // Use /usr/share/vym or /usr/local/share/vym or .
110 shareDir.setPath ("/usr/share/vym");
111 if (!shareDir.exists())
112 shareDir.setPath ("/usr/local/share/vym");
113 if (!shareDir.exists())
114 shareDir.setPath(".");
116 // Initialize translations
117 QTranslator translator (0);
118 translator.load( QString("vym_")+QTextCodec::locale(), shareDir.path() + "/lang");
119 app.installTranslator( &translator );
121 // Initializing the row of system flags
122 // is done in first call to MapEditor(),
123 // because we need at least one canvas first
124 systemFlagsDefault=NULL;
125 standardFlagsDefault=NULL;
127 // Reading and initializing options commandline options
128 options.add ("version", SwitchOption, "v","version");
129 options.add ("help", SwitchOption, "h", "help");
130 options.add ("quit", SwitchOption, "q", "quit");
131 options.add ("test", StringOption, "t", "test");
132 options.setHelpText (
133 "VYM - View Your Mind\n"
134 "--------------------\n\n"
135 "Information about vym can be found in vym.pdf,\n"
136 "which should be part of the vym package.\n"
137 "It is also available at the project homepage:\n\n"
138 "http://www.InSilmaril.de/vym\n");
141 cout << endl << options.getHelpText()<<endl;
145 if (options.isOn ("version"))
147 cout << "vym version "<<__VYM_VERSION__
148 <<" (c) 2004 Uwe Drechsel - "
149 <<__BUILD_DATE__<<endl;
154 if (options.isOn ("help"))
156 cout << options.getHelpText()<<endl;
160 if (options.isOn ("test"))
162 // FIXME testing string option only
163 cout << "Testing: "<<options.getArg("test")<< endl;
166 // Initialize window of TextEditor
167 textEditor = new TextEditor();
168 textEditor->setIcon (QPixmap (vym_editor_xpm));
169 if (textEditor->showWithMain()) textEditor->show();
171 clipboardME = new MapEditor();
172 clipboardME->resize (800,600);
173 clipboardME->setCaption("VYM - clipboard");
176 // Initialize mainwindow after Mapeditors (because of Flags)
178 //m.resize(m.sizeHint());
179 m.setIcon (QPixmap (vym_logo_xpm));
184 // For benchmarking we may want to quit immediatly after drawing
185 if (options.isOn ("quit"))
190 QObject::connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) );