main.cpp
author insilmaril
Tue, 08 Feb 2005 14:07:19 +0000
changeset 89 9db3eaa21237
parent 0 7a96bd401351
child 90 10f3d35dcbad
permissions -rw-r--r--
added contextmenu to follow links
     1 #include <qapplication.h>
     2 #include <qpixmap.h>
     3 #include <qtranslator.h>
     4 
     5 #include "settings.h"
     6 #include "options.h"
     7 #include "mainwindow.h"
     8 
     9 #include "icons/vym-48x48.xpm"
    10 #include "icons/vym-editor.xpm"
    11 
    12 #include "flagrowobj.h"
    13 
    14 // Global variables
    15 TextEditor *textEditor;			// used in Constr. of LinkableMapObj
    16 								// initialized in mainwindow
    17 
    18 Main *mainWindow;				// used in BranchObj::select()								
    19 MapEditor *clipboardME;			
    20 FlagRowObj *systemFlagsDefault;	// used to copy from in LinkableMapObj
    21 FlagRowObj *standardFlagsDefault;
    22 
    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;
    54 
    55 QAction *actionFormatColor;		
    56 QAction *actionFormatPickColor;		
    57 QAction *actionFormatColorBranch;
    58 QAction *actionFormatColorSubtree;
    59 QAction *actionFormatBackColor;
    60 QAction *actionFormatLinkColorHint;
    61 QAction *actionFormatLinkColor;		
    62 
    63 QActionGroup *actionGroupModModes;
    64 QAction *actionModModeColor;
    65 QAction *actionModModeLink;
    66 
    67 QActionGroup *actionGroupFormatFrameTypes;
    68 QAction *actionFormatFrameNone;
    69 QAction *actionFormatFrameRectangle;
    70 
    71 QActionGroup *actionGroupFormatLinkStyles;
    72 QAction *actionFormatLinkStyleLine;
    73 QAction *actionFormatLinkStyleParabel;
    74 QAction *actionFormatLinkStylePolyLine;
    75 QAction *actionFormatLinkStylePolyParabel;
    76 
    77 QAction *actionViewToggleNoteEditor;
    78 
    79 QAction *actionSettingsAutoselectHeading;
    80 QAction *actionSettingsAutoselectText;
    81 QAction *actionSettingsPasteNewHeading;
    82 QAction *actionSettingsAutoedit;
    83 QAction *actionSettingsUseDelKey;
    84 
    85 QPopupMenu *branchContextMenu;
    86 QPopupMenu *branchLinksContextMenu;
    87 QPopupMenu *floatimageContextMenu;
    88 QPopupMenu *saveImageFormatMenu;
    89 QPopupMenu *canvasContextMenu;
    90 QPopupMenu *lastMapsMenu;
    91 QPopupMenu *exportMenu;
    92 QPopupMenu *exportImageFormatMenu;
    93 
    94 
    95 Settings settings;
    96 Options options;
    97 
    98 int statusbarTime=3500;
    99 
   100 int main(int argc, char** argv)
   101 {
   102     QApplication app(argc,argv);
   103 
   104 
   105 	// Initialize translations
   106 	QTranslator translator (0);
   107 	translator.load( "vym_de", "." );
   108     app.installTranslator( &translator );
   109 
   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;
   115 
   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");
   128 	if (options.parse())
   129 	{
   130 		cout << endl << options.getHelpText()<<endl;
   131 		return 1;
   132 	}
   133 
   134 	if (options.isOn ("version"))
   135 	{
   136 		cout << "vym version "<<__VYM_VERSION__
   137 			<<"  (c) 2004 Uwe Drechsel - "
   138 			<<__BUILD_DATE__<<endl;
   139 			
   140 		return 0;	
   141 	}		
   142 	
   143 	if (options.isOn ("help"))
   144 	{
   145 		cout << options.getHelpText()<<endl;
   146 		return 0;	
   147 	}	
   148 
   149 	if (options.isOn ("test"))
   150 	{
   151 		// FIXME testing string option only
   152 		cout << "Testing: "<<options.getArg("test")<< endl;
   153 	}	
   154 
   155 	// Initialize window of TextEditor
   156 	textEditor = new TextEditor();
   157 	textEditor->setIcon (QPixmap (vym_editor_xpm));
   158 	if (textEditor->showWithMain()) textEditor->show();
   159 
   160 	clipboardME = new MapEditor();
   161 	clipboardME->resize (800,600);
   162 	clipboardME->setCaption("VYM - clipboard");
   163 	clipboardME->hide();
   164 
   165 	// Initialize mainwindow after Mapeditors (because of Flags)
   166     Main m;
   167 	//m.resize(m.sizeHint());
   168 	m.setIcon (QPixmap (vym_logo_xpm));
   169 	m.show();
   170 	m.fileNew();
   171 	m.loadCmdLine();
   172 
   173 	// For benchmarking we may want to quit immediatly after drawing
   174 	if (options.isOn ("quit"))
   175 	{
   176 		return 0;
   177 	}	
   178 
   179     QObject::connect( &app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()) );
   180 
   181     return app.exec();
   182 }
   183