mapeditor.h
author insilmaril
Mon, 11 Jun 2007 09:40:59 +0000
changeset 500 d8c245d582a3
parent 491 c58b3973337c
child 502 f3465a5f0dc4
permissions -rw-r--r--
Disabling autosave while we are back in time
insilmaril@0
     1
#ifndef MAPEDITOR_H
insilmaril@0
     2
#define MAPEDITOR_H
insilmaril@0
     3
insilmaril@408
     4
#include <QGraphicsView>
insilmaril@0
     5
insilmaril@0
     6
#include "mapcenterobj.h"
insilmaril@175
     7
#include "file.h"
insilmaril@0
     8
#include "misc.h"
insilmaril@432
     9
#include "parser.h"
insilmaril@473
    10
#include "ornamentedobj.h"
insilmaril@366
    11
#include "selection.h"
insilmaril@366
    12
#include "settings.h"
insilmaril@0
    13
insilmaril@119
    14
insilmaril@486
    15
/*! \brief Main widget in vym to display and edit a map */
insilmaril@473
    16
insilmaril@408
    17
class MapEditor : public QGraphicsView, public xmlObj {
insilmaril@0
    18
    Q_OBJECT
insilmaril@0
    19
insilmaril@0
    20
public:
insilmaril@491
    21
    /*! \brief State of the mapeditor 
insilmaril@491
    22
		
insilmaril@491
    23
		While a heading is edited, the state has to change, so
insilmaril@491
    24
		that e.g. no other object might get selected. This is done
insilmaril@491
    25
		in Main by calling setStateEditHeading
insilmaril@491
    26
	*/
insilmaril@491
    27
	enum State {
insilmaril@491
    28
		Idle,			//!< Idle, waiting for user event
insilmaril@491
    29
		EditHeading		//!< Editing heading (dont't select another branch now)
insilmaril@491
    30
	};
insilmaril@408
    31
    MapEditor(QWidget* parent=0);
insilmaril@0
    32
	~MapEditor();
insilmaril@491
    33
    MapCenterObj* getMapCenter();		//!< Return center of map
insilmaril@408
    34
	QGraphicsScene * getScene();
insilmaril@491
    35
	State getState();					//!< Return State of MapEditor
insilmaril@491
    36
	void setStateEditHeading (bool);	//!< If set to true, State will change to EditHeading
insilmaril@491
    37
	bool isRepositionBlocked(); //!< While load or undo there is no need to update graphicsview
insilmaril@491
    38
	bool isSaveStateBlocked();			//!< block while undo/redo or while running scripts
insilmaril@491
    39
	void setSaveStateBlocked(bool);		//!< block saving the undo/redo state
insilmaril@491
    40
	bool isSelectBlocked();		//!< true, if no change of selection is possible, e.g. while editing the heading of abranch
insilmaril@0
    41
	
insilmaril@486
    42
protected:
insilmaril@491
    43
	/*! \brief Get name of object
insilmaril@491
    44
	  
insilmaril@491
    45
	  Returns heading of a branch or name of an object for use in comment
insilmaril@491
    46
	  of undo/redo history
insilmaril@491
    47
	*/ 
insilmaril@420
    48
	QString getName(const LinkableMapObj*);	// Get e.g. heading or filename
insilmaril@0
    49
	void makeTmpDirs();		// create temporary directories
insilmaril@486
    50
insilmaril@486
    51
	/*! This function saves all information of the map to disc.
insilmaril@486
    52
	    saveToDir also calls the functions for all BranchObj and other objects in the map.
insilmaril@486
    53
		The structure of the map itself is returned as QString and passed back to Main, 
insilmaril@486
    54
		where saveToDir is called initially
insilmaril@486
    55
	*/	
insilmaril@486
    56
    QString saveToDir (const QString &tmpdir, const QString &prefix, bool writeflags, const QPointF &offset, LinkableMapObj *saveSel);
insilmaril@486
    57
insilmaril@486
    58
insilmaril@486
    59
	/*! \brief Save the current changes in map 
insilmaril@486
    60
insilmaril@486
    61
		Two commands and selections are saved:
insilmaril@486
    62
insilmaril@486
    63
			- undocommand and undoselection to undo the change
insilmaril@486
    64
			- redocommand and redoselection to redo the action after an undo
insilmaril@486
    65
insilmaril@486
    66
		Additionally a comment is logged. 
insilmaril@486
    67
insilmaril@486
    68
	*/	
insilmaril@486
    69
    void saveState(const SaveMode& savemode, const QString &undoSelection, const QString &undoCommand, const QString &redoSelection, const QString &redoCommand, const QString &comment, LinkableMapObj *saveSelection);
insilmaril@486
    70
	/*! Overloaded for convenience */
insilmaril@486
    71
    void saveStateChangingPart(LinkableMapObj *undoSelection, LinkableMapObj* redoSelection, const QString &rendoCommand, const QString &comment);
insilmaril@486
    72
	/*! Overloaded for convenience */
insilmaril@486
    73
    void saveStateRemovingPart(LinkableMapObj *redoSelection, const QString &comment);
insilmaril@486
    74
	/*! Overloaded for convenience */
insilmaril@486
    75
    void saveState(LinkableMapObj *undoSelection, const QString &undoCommand, LinkableMapObj *redoSelection, const QString &rendoCommand, const QString &comment); 
insilmaril@486
    76
	/*! Overloaded for convenience */
insilmaril@486
    77
    void saveState(const QString &undoSelection, const QString &undoCommand, const QString &redoSelection, const QString &rendoCommand, const QString &comment) ;
insilmaril@486
    78
insilmaril@393
    79
public:	
insilmaril@486
    80
insilmaril@486
    81
	/* \brief Process one command and its parameters */
insilmaril@486
    82
    void parseAtom (const QString &atom);	
insilmaril@486
    83
insilmaril@486
    84
	/* \brief Runs the script */
insilmaril@486
    85
	void runScript (QString script);
insilmaril@393
    86
private:
insilmaril@395
    87
    void addFloatImageInt(const QPixmap &img);
insilmaril@119
    88
insilmaril@0
    89
public:
insilmaril@486
    90
	bool isDefault();		//!< true, if map is still the empty default map
insilmaril@486
    91
    bool hasChanged();		//!< true, if something has changed and is not saved yet
insilmaril@486
    92
	void setChanged();		//!< called from TextEditor via LinkableMapObj
insilmaril@486
    93
	void closeMap();		//!< Closes the map
insilmaril@486
    94
insilmaril@486
    95
	/*! \brief Sets filepath, filename and mapname
insilmaril@486
    96
insilmaril@486
    97
	     If the filepath is "/home/tux/map.xml", then the filename will be set
insilmaril@486
    98
		 to map.xml. The destname is needed for vymLinks, pointing to another map. 
insilmaril@486
    99
		 The destname holds the real name of the file, after it has been compressed, e.g. "map.vym"
insilmaril@486
   100
	*/	 
insilmaril@491
   101
insilmaril@491
   102
	/*! \brief Set File path
insilmaril@491
   103
insilmaril@491
   104
	     The destname is needed to construct the references between maps
insilmaril@491
   105
	*/	 
insilmaril@486
   106
	void setFilePath (QString filepath,QString destname);	
insilmaril@486
   107
	void setFilePath (QString);	//!< Overloaded for convenience
insilmaril@486
   108
	QString getFilePath ();	//!< Full path e.g. "/home/tux/map.xml"
insilmaril@486
   109
	QString getFileName ();	//!< e.g. "map.xml"
insilmaril@486
   110
	QString getMapName ();	//!< e.g. "map"
insilmaril@486
   111
	QString getDestPath (); //!< e.g. "/home/tux/map.vym"
insilmaril@491
   112
insilmaril@491
   113
	/*! \brief Load map
insilmaril@491
   114
insilmaril@491
   115
		The data is read from file. Depending on LoadMode the current
insilmaril@491
   116
		selection gets replaced by data or the data is appended.
insilmaril@491
   117
	*/	
insilmaril@205
   118
    ErrorCode load (QString, LoadMode );	// newmap, import/replace selection
insilmaril@163
   119
public:
insilmaril@491
   120
	/*! \brief Save the map to file */
insilmaril@491
   121
    int save(const SaveMode &);	
insilmaril@491
   122
	void setZipped(bool);		//!< Set or unset compression of map with zip save map zipped
insilmaril@491
   123
	bool saveZipped();			//!< True, if file will be saved zipped
insilmaril@491
   124
    void print();				//!< Print the map
insilmaril@491
   125
	void setAntiAlias (bool);	//!< Set or unset antialiasing
insilmaril@491
   126
	void setSmoothPixmap(bool); //!< Set or unset smoothing of pixmaps
insilmaril@0
   127
private:
insilmaril@0
   128
    QPixmap getPixmap();
insilmaril@473
   129
	void setHideTmpMode (BranchObj::HideTmpMode);	// temporary hide stuff
insilmaril@473
   130
	BranchObj::HideTmpMode getHideTmpMode();		// temporary hide stuff
insilmaril@0
   131
public:
insilmaril@491
   132
	void setExportMode (bool);			//!< Set or unset temporary hiding of objects during export
insilmaril@491
   133
    void exportImage (QString fn);			//!< Export as PNG	
insilmaril@491
   134
    void exportImage (QString fn, QString);	//!< Export in given format
insilmaril@491
   135
    void exportOOPresentation(const QString &,const QString &);	//!< Export as OpenOfficeOrg presentation
insilmaril@491
   136
    void exportXML(const QString&);		//!< Export as XML to directory
insilmaril@491
   137
    void clear();						//!< Clear map
insilmaril@491
   138
    void copy();						//!< Copy to clipboard
insilmaril@491
   139
    void redo();						//!< Redo last action
insilmaril@491
   140
	bool isRedoAvailable();				//!< True, if redo is available
insilmaril@491
   141
    void undo();						//!< Undo last action
insilmaril@491
   142
	bool isUndoAvailable();				//!< True, if undo is available
insilmaril@491
   143
	void gotoHistoryStep (int);			//!< Goto a specifig step in history
insilmaril@0
   144
private:	
insilmaril@394
   145
    void addMapReplaceInt(const QString & undoSel, const QString & path);
insilmaril@394
   146
    void addMapInsertInt (const QString & path, int pos);
insilmaril@166
   147
    void pasteNoSave();		// paste clipboard to branch
insilmaril@0
   148
public:	
insilmaril@491
   149
    void paste();		//!< Paste clipboard to branch and backup
insilmaril@491
   150
    void cut();			//!< Cut to clipboard (and copy)
insilmaril@491
   151
	/*! \brief Move absolutly
insilmaril@491
   152
insilmaril@491
   153
		Move absolutly to (x,y).
insilmaril@491
   154
	*/	
insilmaril@393
   155
    void move    (const int &x, const int &y);
insilmaril@491
   156
	/*! \brief Move relativly
insilmaril@491
   157
insilmaril@491
   158
		Move relativly to (x,y).
insilmaril@491
   159
	*/	
insilmaril@393
   160
    void moveRel (const int &x, const int &y);
insilmaril@491
   161
    void moveBranchUp();	//!< Move branch up
insilmaril@491
   162
    void moveBranchDown();	//!< Move branch down
insilmaril@420
   163
private:	
insilmaril@420
   164
	void linkTo(const QString &);
insilmaril@420
   165
public:	
insilmaril@491
   166
	QString getHeading (bool &ok,QPoint &p); //!< Get heading, ok if selection is branch
insilmaril@491
   167
	void setHeading(const QString &);		//!< Set heading of branch	
insilmaril@106
   168
private:
insilmaril@366
   169
	void setHeadingInt(const QString &);
insilmaril@366
   170
	void setVymLinkInt(const QString &);	// Set vymLink for selection
insilmaril@491
   171
	/*! \brief Add new branch
insilmaril@491
   172
insilmaril@491
   173
		Depending on num the new branch is created
insilmaril@491
   174
insilmaril@491
   175
		-3 above selection as child of selections parent
insilmaril@491
   176
		-2 as child of selection
insilmaril@491
   177
		-1 below selection as child of selections parent
insilmaril@491
   178
		0..n	insert at a specific position in selections parent
insilmaril@491
   179
		(needed for free relinking)
insilmaril@491
   180
	*/	
insilmaril@366
   181
    BranchObj* addNewBranchInt(int);		// pos allows to add above/below selection
insilmaril@106
   182
public:	
insilmaril@491
   183
	/*! \Add new branch
insilmaril@491
   184
		
insilmaril@491
   185
		Depending on num the new branch is created
insilmaril@491
   186
		-1 above selection
insilmaril@491
   187
		 0 as child of selection
insilmaril@491
   188
		 1 below selection
insilmaril@491
   189
	*/
insilmaril@491
   190
    BranchObj* addNewBranch(int pos);		
insilmaril@491
   191
    BranchObj* addNewBranchBefore();		//!< Insert branch between selection and its parent
insilmaril@491
   192
    void deleteSelection();					//!< Delete selection
insilmaril@491
   193
	LinkableMapObj* getSelection();			//!< Returns selection
insilmaril@442
   194
	BranchObj* getSelectedBranch();			// returns selected branch or NULL
insilmaril@442
   195
	FloatImageObj* getSelectedFloatImage();	// returns selected branch or NULL
insilmaril@442
   196
	void unselect();						// before changing current noteedit
insilmaril@442
   197
	void reselect();						// after  changing current noteedit
insilmaril@442
   198
	bool select(const QString &);			// Select by string
insilmaril@366
   199
	QString getSelectString();
insilmaril@0
   200
private:	
insilmaril@366
   201
	void selectInt(LinkableMapObj*);	
insilmaril@366
   202
	void selectNextBranchInt();		// Increment number of branch
insilmaril@366
   203
	void selectPrevBranchInt();		// Decrement number of branch
insilmaril@0
   204
public:	
insilmaril@0
   205
    void selectUpperBranch();
insilmaril@0
   206
    void selectLowerBranch();
insilmaril@0
   207
    void selectLeftBranch();
insilmaril@0
   208
    void selectRightBranch();
insilmaril@0
   209
    void selectFirstBranch();
insilmaril@0
   210
    void selectLastBranch();
insilmaril@408
   211
    void selectMapBackgroundImage();
insilmaril@408
   212
    void setMapBackgroundImage(const QString &);
insilmaril@398
   213
    void selectMapBackgroundColor();
insilmaril@398
   214
    void setMapBackgroundColor(QColor);
insilmaril@398
   215
    QColor getMapBackgroundColor();
insilmaril@395
   216
    QColor getCurrentHeadingColor();
insilmaril@395
   217
    void colorBranch(QColor);
insilmaril@417
   218
    void colorSubtree(QColor);
insilmaril@0
   219
	void toggleStandardFlag(QString);
insilmaril@0
   220
    BranchObj* findText(QString,bool);		// Find object
insilmaril@0
   221
    void findReset();						// Reset Find 
insilmaril@395
   222
	void setURL(const QString &);			// set the URL
insilmaril@0
   223
	void editURL();							// edit the URL
insilmaril@266
   224
	QString getURL();						// returns URL of selection or ""
insilmaril@366
   225
	QStringList getURLs();					// returns URLs of subtree
insilmaril@0
   226
	void editHeading2URL();					// copy heading to URL
insilmaril@0
   227
	void editBugzilla2URL();				// create URL to Bugzilla
insilmaril@175
   228
	void editFATE2URL();					// create URL to FATE
insilmaril@0
   229
	void editVymLink();						// edit link to another map
insilmaril@0
   230
	void deleteVymLink();					// delete link to another map
insilmaril@0
   231
	QString getVymLink();					// return path to map
insilmaril@366
   232
	QStringList getVymLinks();				// return paths in subtree
insilmaril@395
   233
	void setHideExport(bool);				// toggle the export flag
insilmaril@243
   234
	void toggleHideExport();				// toggle the export flag
insilmaril@395
   235
	void deleteKeepChilds();				// remove but keep childs
insilmaril@395
   236
	void deleteChilds();					// remove childs
insilmaril@0
   237
	void editMapInfo();						// dialog to enter author, ...
insilmaril@442
   238
	void ensureSelectionVisible();		
insilmaril@442
   239
	void updateSelection();					// update geometry of selection
insilmaril@0
   240
	void updateActions();					// update e.g. format buttons
insilmaril@160
   241
	void updateNoteFlag();					// when TextEditor changes
insilmaril@398
   242
	void setMapAuthor (const QString &);
insilmaril@398
   243
	void setMapComment(const QString &);
insilmaril@398
   244
	void setMapLinkStyle (const QString &);	// Set style of link
insilmaril@473
   245
	LinkableMapObj::Style getMapLinkStyle ();	// requested in LMO
insilmaril@398
   246
	void setMapDefLinkColor(QColor);		// default color of links
insilmaril@398
   247
	void setMapLinkColorHintInt();			// color of links
insilmaril@473
   248
	void setMapLinkColorHint(LinkableMapObj::ColorHint);// color of links
insilmaril@473
   249
	LinkableMapObj::ColorHint getMapLinkColorHint();
insilmaril@398
   250
	QColor getMapDefLinkColor();
insilmaril@398
   251
	void setMapDefXLinkColor(QColor);
insilmaril@398
   252
	QColor getMapDefXLinkColor();
insilmaril@398
   253
	void setMapDefXLinkWidth (int);
insilmaril@398
   254
	int getMapDefXLinkWidth();
insilmaril@398
   255
	void toggleMapLinkColorHint();			// after changing linkStyles
insilmaril@398
   256
    void selectMapLinkColor();
insilmaril@442
   257
    void selectMapSelectionColor();
insilmaril@442
   258
private:	
insilmaril@442
   259
    void setSelectionColorInt(QColor);
insilmaril@442
   260
public:	
insilmaril@442
   261
    void setSelectionColor(QColor);
insilmaril@442
   262
    QColor getSelectionColor();
insilmaril@473
   263
	bool scrollBranch(BranchObj*);
insilmaril@473
   264
	bool unscrollBranch(BranchObj*);
insilmaril@0
   265
    void toggleScroll();
insilmaril@428
   266
    void unscrollChilds();
insilmaril@432
   267
private:	
insilmaril@432
   268
	FloatImageObj* loadFloatImageInt (QString);
insilmaril@432
   269
public:	
insilmaril@0
   270
	void loadFloatImage ();
insilmaril@434
   271
private:	
insilmaril@434
   272
	void saveFloatImageInt (FloatImageObj*, const QString &, const QString &);
insilmaril@434
   273
public:	
insilmaril@366
   274
	void saveFloatImage ();
insilmaril@473
   275
	void setFrameType(const FrameObj::FrameType &);
insilmaril@445
   276
	void setFrameType(const QString &);
insilmaril@442
   277
	void setFramePenColor (const QColor &);
insilmaril@442
   278
	void setFrameBrushColor (const QColor &);
insilmaril@473
   279
	void setFramePadding (const int &);
insilmaril@473
   280
	void setFrameBorderWidth (const int &);
insilmaril@175
   281
	void setIncludeImagesVer(bool);
insilmaril@175
   282
	void setIncludeImagesHor(bool);
insilmaril@160
   283
	void setHideLinkUnselected (bool);
insilmaril@160
   284
	bool getHideLinkUnselected ();
insilmaril@0
   285
private:	
insilmaril@366
   286
    void importDirInt(BranchObj *,QDir);
insilmaril@491
   287
    void importDirInt(const QString&);
insilmaril@0
   288
public:	
insilmaril@0
   289
    void importDir();
insilmaril@95
   290
	void followXLink (int);
insilmaril@95
   291
	void editXLink (int);
insilmaril@366
   292
    void testFunction();					// just testing new stuff
insilmaril@366
   293
											// set /mainwindo/showTestMenu=true...
insilmaril@0
   294
insilmaril@0
   295
protected:
insilmaril@408
   296
	virtual void contextMenuEvent ( QContextMenuEvent *e );
insilmaril@398
   297
    virtual void keyPressEvent(QKeyEvent*);
insilmaril@398
   298
    virtual void keyReleaseEvent(QKeyEvent*);
insilmaril@408
   299
    virtual void mousePressEvent(QMouseEvent*);
insilmaril@473
   300
    virtual void mouseMoveEvent(QMouseEvent*);
insilmaril@408
   301
    virtual void mouseReleaseEvent(QMouseEvent*);
insilmaril@408
   302
    virtual void mouseDoubleClickEvent(QMouseEvent*);
insilmaril@473
   303
    virtual void resizeEvent( QResizeEvent * );
insilmaril@0
   304
insilmaril@417
   305
	void dragEnterEvent (QDragEnterEvent *);
insilmaril@417
   306
	void dragMoveEvent (QDragMoveEvent *);
insilmaril@417
   307
	void dragLeaveEvent (QDragLeaveEvent *);
insilmaril@417
   308
	void dropEvent (QDropEvent *);
insilmaril@412
   309
insilmaril@473
   310
	void timerEvent(QTimerEvent *event);
insilmaril@473
   311
insilmaril@473
   312
private slots:	
insilmaril@473
   313
	void autosave ();
insilmaril@473
   314
insilmaril@0
   315
private:
insilmaril@491
   316
	State state;				// State of MapEditor
insilmaril@408
   317
	QGraphicsScene *mapScene;
insilmaril@0
   318
    MapCenterObj* mapCenter;
insilmaril@473
   319
	QTimer *autosaveTimer;
insilmaril@0
   320
insilmaril@0
   321
	bool adjustCanvasRequested;	// collect requests until end of user event
insilmaril@0
   322
	BranchObj *editingBO;		// entering Text into BO
insilmaril@0
   323
insilmaril@97
   324
	QColor defLinkColor;		// default color for links
insilmaril@97
   325
	QColor defXLinkColor;		// default color for xlinks
insilmaril@97
   326
	int defXLinkWidth;			// default width for xlinks
insilmaril@473
   327
	LinkableMapObj::ColorHint linkcolorhint;// use heading color or own color
insilmaril@473
   328
	LinkableMapObj::Style linkstyle;		// default style for links
insilmaril@0
   329
insilmaril@398
   330
    QCursor HandOpenCursor;		// cursor while moving canvas view
insilmaril@398
   331
	QCursor PickColorCursor;	// cursor while picking color 
insilmaril@398
   332
	QCursor CopyCursor;			// cursor while picking color 
insilmaril@398
   333
	QCursor XLinkCursor;		// cursor while picking color 
insilmaril@83
   334
	bool pickingColor;
insilmaril@83
   335
	bool drawingLink;			// true while creating a link
insilmaril@93
   336
	bool copyingObj;			// true while creating a link
insilmaril@95
   337
	XLinkObj* tmpXLink;
insilmaril@366
   338
insilmaril@424
   339
	Selection xelection;	
insilmaril@0
   340
    MapObj* movingObj;				// moving a MapObj
insilmaril@83
   341
	MapObj* linkingObj_src;			// part of a link
insilmaril@408
   342
    QPointF movingObj_orgPos;		// org. pos of mouse before move
insilmaril@408
   343
    QPointF movingObj_orgRelPos;	// org. relative pos of mouse before move
insilmaril@408
   344
    QPointF movingObj_start;		// rel. pos of mouse to absPos 
insilmaril@408
   345
    QPointF movingCont_start;		// inital pos of moving Content or
insilmaril@408
   346
    QPointF movingVec;				// how far has Content moved
insilmaril@0
   347
    QPrinter* printer;				// Printing
insilmaril@0
   348
insilmaril@0
   349
    bool mapDefault;				// Flag if map is untouched
insilmaril@0
   350
    bool mapChanged;				// Flag if undo is possible
insilmaril@0
   351
	bool mapUnsaved;				// Flag if map should be saved
insilmaril@0
   352
insilmaril@432
   353
	Parser parser;				// Parser stuff for scripting
insilmaril@432
   354
insilmaril@0
   355
	bool printFrame;			// Print frame around map
insilmaril@0
   356
	bool printFooter;			// Print footer below map
insilmaril@0
   357
insilmaril@0
   358
	bool zipped;				// should map be zipped
insilmaril@393
   359
	static	int mapNum;			// unique number for Editor
insilmaril@0
   360
	QString fileName;			// short name of file (for tab)
insilmaril@0
   361
	QString filePath;			// path to file which will be saved
insilmaril@0
   362
	QString fileDir;			// dir where file is saved
insilmaril@0
   363
	QString destPath;			// path to .vym file (needed for vymlinks)
insilmaril@0
   364
	QString mapName;			// fileName without ".vym"
insilmaril@0
   365
insilmaril@377
   366
	QString tmpMapDir;			// tmp directory with undo history
insilmaril@366
   367
	QString histPath;			// Path to history file
insilmaril@381
   368
	int stepsTotal;				// total number of steps (undos+redos) 
insilmaril@366
   369
	SimpleSettings undoSet;		// undo/redo commands
insilmaril@139
   370
	bool blockReposition;		// block while load or undo
insilmaril@139
   371
	bool blockSaveState;		// block while load or undo
insilmaril@0
   372
insilmaril@0
   373
	BranchObj* itFind;			// next object in find process
insilmaril@0
   374
	bool EOFind;				// true, if search failed
insilmaril@0
   375
insilmaril@0
   376
	QPoint exportOffset;		// set before export, used in save
insilmaril@473
   377
	BranchObj::HideTmpMode hidemode;	// true while exporting to hide some stuff
insilmaril@473
   378
insilmaril@473
   379
	int timerId;				// animation timer
insilmaril@473
   380
	QList <MapObj*> animObjList;// list with animated objects
insilmaril@0
   381
};
insilmaril@0
   382
#endif
insilmaril@0
   383