Subversion Repositories Scribus

Rev

Rev 4664 | Rev 4680 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
3 paul 7
/***************************************************************************
8
                          scribus.h  -  description
9
                             -------------------
10
    begin                : Fre Apr  6 21:09:31 CEST 2001
11
    copyright            : (C) 2001 by Franz Schmid
12
    email                : Franz.Schmid@altmuehlnet.de
13
 ***************************************************************************/
14
 
15
/***************************************************************************
16
 *                                                                         *
17
 *   This program is free software; you can redistribute it and/or modify  *
18
 *   it under the terms of the GNU General Public License as published by  *
19
 *   the Free Software Foundation; either version 2 of the License, or     *
20
 *   (at your option) any later version.                                   *
21
 *                                                                         *
22
 ***************************************************************************/
23
 
24
#ifndef SCRIBUS_H
25
#define SCRIBUS_H
26
 
516 fschmid 27
#define VERS13x
3 paul 28
 
326 Franz 29
// include from stl
30
#include <vector>
31
 
3 paul 32
// include files for QT
33
#include <qapplication.h>
34
#include <qmainwindow.h>
35
#include <qaction.h>
36
#include <qmenubar.h>
37
#include <qpopupmenu.h>
38
#include <qtoolbar.h>
39
#include <qtoolbutton.h>
40
#include <qstatusbar.h>
41
#include <qtooltip.h>
42
#include <qstring.h>
43
#include <qpixmap.h>
44
#include <qmessagebox.h>
45
#include <qpainter.h>
46
#include <qmap.h>
1208 cbradney 47
#include <qdict.h>
1478 cbradney 48
#include <qguardedptr.h>
3 paul 49
#include <qfont.h>
50
#include <qtimer.h>
51
#include <qintdict.h>
52
#include <qprogressdialog.h>
53
#include <qprogressbar.h>
54
#include <qworkspace.h>
55
#include <qptrlist.h>
56
#include <qclipboard.h>
1155 fschmid 57
#include <qprocess.h>
3 paul 58
 
59
// application specific includes
2969 craig 60
#include "scribusapi.h"
3 paul 61
#include "scribusview.h"
62
#include "scribusdoc.h"
1429 subik 63
#include "scribusstructs.h"
1208 cbradney 64
 
3699 cbradney 65
class ActionManager;
66
class AlignDistributePalette;
169 Franz 67
class Autoforms;
3699 cbradney 68
class Biblio;
69
class BookPalette;
70
class CheckDocument;
71
class FileWatcher;
169 Franz 72
class FontCombo;
3699 cbradney 73
class LayerPalette;
225 Franz 74
class LineFormate;
265 Franz 75
class Mpalette;
284 Franz 76
class Measurements;
1208 cbradney 77
class MenuManager;
3699 cbradney 78
class NodePalette;
79
class PageItem;
80
class PagePalette;
1549 subik 81
class PluginManager;
2834 cbradney 82
class PrefsManager;
3251 craig 83
class PrefsContext;
3699 cbradney 84
class PSLib;
85
class ScrAction;
4026 craig 86
class ScribusMainWindow;
3627 cbradney 87
class ScribusQApp;
3699 cbradney 88
class ScribusWin;
4541 tsoots 89
class ScToolBar;
3699 cbradney 90
class SimpleState;
91
class SplashScreen;
92
class StilFormate;
93
class StoryEditor;
94
class TOCGenerator;
95
class Tree;
96
class UndoManager;
97
class UndoPalette;
98
class UndoState;
99
class WerkToolB;
100
class WerkToolBP;
3205 craig 101
 
4194 fschmid 102
extern SCRIBUS_API ScribusQApp* ScQApp;
103
extern SCRIBUS_API ScribusMainWindow* ScMW;
3205 craig 104
 
3 paul 105
/**
4650 subik 106
  * \brief This Class is the base class for your application. It sets up the main
3 paul 107
  * window and providing a menubar, toolbar
108
  * and statusbar. For the main view, an instance of class ScribusView is
109
  * created which creates your view.
110
  */
4026 craig 111
class SCRIBUS_API ScribusMainWindow : public QMainWindow, public UndoObject
3 paul 112
{
162 Franz 113
        Q_OBJECT
1429 subik 114
 
168 Franz 115
public:
4650 subik 116
        /** \brief constructor */
4026 craig 117
        ScribusMainWindow();
4650 subik 118
        /** \brief destructor */
4208 craig 119
        ~ScribusMainWindow();
4650 subik 120
        /*!
121
        * \retval 0 - ok, 1 - no fonts, ...
122
        */
3873 subik 123
        int initScribus(bool showSplash, bool showFontInfo, const QString newGuiLanguage, const QString prefsUserFile);
2835 cbradney 124
        void showSplash(bool);
3171 craig 125
        bool splashShowing() const;
2707 subik 126
        void closeSplash();
3566 fschmid 127
        void setSplashStatus(const QString&);
770 cbradney 128
        const QString getGuiLanguage();
1525 cbradney 129
        bool warningVersion(QWidget *parent);
162 Franz 130
        void SetShortCut();
2833 fschmid 131
        void startUpDialog();
2859 cbradney 132
        void setDefaultPrinter(const QString&, const QString&, const QString&);
133
        void getDefaultPrinter(QString*, QString*, QString*);
3020 cbradney 134
        const bool fileWatcherActive();
3873 subik 135
 
2150 cbradney 136
        bool doFileNew(double width, double h, double tpr, double lr, double rr, double br, double ab, double sp,
3778 cbradney 137
                                        bool atf, int fp, int einh, int firstleft, int Ori, int SNr, const QString&, int pageCount=1);
162 Franz 138
        bool DoFileSave(QString fn);
139
        void closeEvent(QCloseEvent *ce);
140
        void keyPressEvent(QKeyEvent *k);
1204 tsoots 141
        void keyReleaseEvent(QKeyEvent *k);
1814 cbradney 142
        void mouseReleaseEvent(QMouseEvent *m);
162 Franz 143
        void wheelEvent(QWheelEvent *w);
1957 cbradney 144
        void setTBvals(PageItem *currItem);
162 Franz 145
        void ShowSubs();
146
        void applyNewMaster(QString name);
1208 cbradney 147
        void updateRecent(QString fn);
369 Franz 148
        QString GetLang(QString inLang);
4264 craig 149
        bool getPDFDriver(const QString & fn, const QString & nam,
150
                                          int Components, const std::vector<int> & pageNs,
151
                                          const QMap<int,QPixmap> & thumbs);
162 Franz 152
        bool DoSaveAsEps(QString fn);
415 Franz 153
        QString CFileDialog(QString wDir = ".", QString caption = "", QString filter = "", QString defNa = "",
1325 cbradney 154
                                                bool Pre = false, bool mod = true, bool comp = false, bool cod = false,
155
                                                bool onlyDirs = false, bool *docom = 0, bool *doFont = 0);
162 Franz 156
        void GetCMSProfiles();
157
        void GetCMSProfilesDir(QString pfad);
4650 subik 158
        /*! \brief Recalculate the colors after changing CMS settings.
159
        Call the appropriate document function and then update the GUI elements.
160
        \param dia optional progress widget */
3123 cbradney 161
        void recalcColors(QProgressBar *dia = 0);
162 Franz 162
        void SwitchWin();
163
        void RestoreBookMarks();
164
        void ReorgFonts();
2536 cbradney 165
 
162 Franz 166
        void emergencySave();
3873 subik 167
 
1204 tsoots 168
        /**
169
         * @brief Returns true if an arrow key is pressed down.
170
         * @return true if an arrow key is pressed down otherwise returns false
171
         */
172
        bool arrowKeyDown();
1549 subik 173
        /**
1443 tsoots 174
         * @brief Returns true if application is in object specific undo mode, other wise returns false.
175
         * @return true if application is in object specific undo mode, other wise returns false
176
         */
177
        bool isObjectSpecificUndo();
1293 tsoots 178
        void restore(UndoState* state, bool isUndo);
179
        void restoreGroupping(SimpleState *state, bool isUndo);
180
        void restoreUngroupping(SimpleState *state, bool isUndo);
1658 tsoots 181
        void restoreAddPage(SimpleState *state, bool isUndo);
1663 tsoots 182
        void restoreDeletePage(SimpleState *state, bool isUndo);
1065 cbradney 183
        struct CopyPasteBuffer Buffer;
4579 cbradney 184
        struct CopyContentsBuffer contentsBuffer;
162 Franz 185
        QString Buffer2;
186
        QString Buffer3;
187
        bool BuFromApp;
2891 cbradney 188
        ProfilesL InputProfiles;
2989 fschmid 189
        ProfilesL InputProfilesCMYK;
162 Franz 190
        ProfilesL MonitorProfiles;
191
        ProfilesL PrinterProfiles;
192
        ProfilesL PDFXProfiles;
193
        double DispX;
194
        double DispY;
195
        int HaveDoc;
2894 fschmid 196
        QString noneString;
415 Franz 197
        PrefsContext* dirs;
4650 subik 198
        /** \brief view is the main widget which represents your working area. The View
162 Franz 199
         * class should handle all events of the view widget.  It is kept empty so
200
         * you can create your view according to your application's needs by
201
         * changing the view class.
202
         */
203
        ScribusView *view;
4650 subik 204
        /** \brief doc represents your actual document and is created only once. It keeps
162 Franz 205
         * information such as filename and does the serialization of your files.
206
         */
207
        ScribusDoc *doc;
4650 subik 208
    /** \brief the splash screen */
669 cbradney 209
        SplashScreen *splashScreen;
2433 cbradney 210
        QLabel* mainWindowStatusLabel;
211
        QProgressBar* mainWindowProgressBar;
212
        QLabel* mainWindowXPosLabel;
213
        QLabel* mainWindowXPosDataLabel;
214
        QLabel* mainWindowYPosLabel;
215
        QLabel* mainWindowYPosDataLabel;
1545 cbradney 216
        Mpalette *propertiesPalette;
217
        NodePalette *nodePalette;
218
        Tree *outlinePalette;
219
        Biblio *scrapbookPalette;
220
        LayerPalette* layerPalette;
3623 cbradney 221
        PagePalette *pagePalette;
1545 cbradney 222
        BookPalette *bookmarkPalette;
223
        Measurements* measurementPalette;
224
        CheckDocument * docCheckerPalette;
1114 tsoots 225
        UndoPalette* undoPalette;
2355 cbradney 226
        AlignDistributePalette *alignDistributePalette;
2494 cbradney 227
        StoryEditor* storyEditor;
355 Franz 228
        StoryEditor* CurrStED;
162 Franz 229
        QMap<QString,QString> Sprachen;
230
        QWorkspace *wsp;
231
        ScribusWin* ActWin;
232
        QString PrefsPfad;
233
        QClipboard *ClipB;
234
        QString LoadEnc;
235
        bool singleClose;
173 Franz 236
        bool ScriptRunning;
188 Franz 237
        Autoforms* SCustom;
2859 cbradney 238
        WerkToolB* mainToolBar;
214 Franz 239
        int HavePngAlpha;
3169 fschmid 240
        int HaveTiffSep;
1208 cbradney 241
 
369 Franz 242
        QMap<QString, QStringList> InstLang;
243
        QMap<QString,QString> LangTransl;
1151 fschmid 244
        FileWatcher* fileWatcher;
1155 fschmid 245
        QProcess *ExternalApp;
1478 cbradney 246
 
247
        QMap<QString, QGuardedPtr<ScrAction> > scrActions;
248
        QMap<QString, QGuardedPtr<ScrAction> > scrRecentFileActions;
249
        QMap<QString, QGuardedPtr<ScrAction> > scrWindowsActions;
2408 cbradney 250
        QMap<QString, QGuardedPtr<ScrAction> > scrLayersActions;
1325 cbradney 251
        QDict<QActionGroup> scrActionGroups;
1208 cbradney 252
        MenuManager* scrMenuMgr;
1993 cbradney 253
        ActionManager* actionManager;
1549 subik 254
        PluginManager* pluginManager;
2833 fschmid 255
        QStringList RecentDocs;
3 paul 256
 
162 Franz 257
public slots:
2161 cbradney 258
        void languageChange();
1903 cbradney 259
        void specialActionKeyEvent(QString actionName, int unicodevalue);
1330 fschmid 260
        void newView();
1525 cbradney 261
        void ToggleAllGuides();
356 Franz 262
        void ToggleAllPalettes();
162 Franz 263
        void slotStoryEditor();
1202 fschmid 264
        void slotCharSelect();
2056 fschmid 265
        void ImageEffects();
3020 cbradney 266
        QString Collect(const bool compress = false, const bool withFonts = false, const QString& newDirectory=QString::null);
162 Franz 267
        void AddBookMark(PageItem *ite);
268
        void DelBookMark(PageItem *ite);
269
        void BookMarkTxT(PageItem *ite);
270
        void StoreBookmarks();
271
        void ManageGuides();
2026 cbradney 272
        void setItemFillTransparency(double t);
273
        void setItemLineTransparency(double t);
2150 cbradney 274
        void setMousePositionOnStatusBar(double xp, double yp);
162 Franz 275
        bool DoFileClose();
4051 cbradney 276
        //bool DoSaveClose();
162 Franz 277
        void windowsMenuAboutToShow();
278
        void newActWin(QWidget *w);
3565 cbradney 279
        void closeActiveWindowMasterPageEditor();
280
        void updateActiveWindowCaption(const QString &newCaption);
162 Franz 281
        void windowsMenuActivated(int id);
282
        void UnDoAction();
1114 tsoots 283
        void RedoAction();
162 Franz 284
        void doHyphenate();
2621 fschmid 285
        void doDeHyphenate();
162 Franz 286
        void slotTest();
287
        void slotTest2();
1981 cbradney 288
        void PutScrap();
2952 cbradney 289
        void changeLayer(int);
162 Franz 290
        void showLayer();
216 Franz 291
        void LayerRemove(int l, bool dl = false);
162 Franz 292
        void ManageJava();
2093 cbradney 293
        void manageMasterPages(QString temp = "");
294
        void manageMasterPagesEnd();
4650 subik 295
        /** \brief generate a new document in the current view */
162 Franz 296
        bool slotFileNew();
2093 cbradney 297
        bool slotPageImport();
2150 cbradney 298
        bool loadPage(QString fileName, int Nr, bool Mpa);
4650 subik 299
 
4026 craig 300
        void slotGetContent();
4650 subik 301
        /*!
302
        \author Franz Schmid
303
        \brief Appends a Textfile to the Text in the selected Textframe at the Cursorposition
304
        */
218 Franz 305
        void slotFileAppend();
4650 subik 306
 
1208 cbradney 307
        void removeRecent(QString fn);
308
        void loadRecent(QString fn);
309
        void rebuildRecentFileMenu();
2408 cbradney 310
        void rebuildLayersList();
162 Franz 311
        bool slotDocOpen();
2150 cbradney 312
        bool loadDoc(QString);
3650 cbradney 313
        /**
314
         * @brief Do post loading functions
315
         */
316
        bool postLoadDoc();
162 Franz 317
        void slotAutoSaved();
4650 subik 318
        /** \brief save a document */
268 Franz 319
        bool slotFileSave();
4650 subik 320
        /** \brief save a document under a different filename*/
268 Franz 321
        bool slotFileSaveAs();
162 Franz 322
        void slotFileRevert();
4650 subik 323
        /** \brief Sichert den Text eines Elements */
162 Franz 324
        void SaveText();
4650 subik 325
        /** \brief close the actual file */
162 Franz 326
        bool slotFileClose();
4650 subik 327
        /** \brief print the actual file */
162 Franz 328
        void slotFilePrint();
1825 fschmid 329
        void slotReallyPrint();
4650 subik 330
        /*!
331
        \author Franz Schmid
332
        \brief Generate and print PostScript from a doc
333
        \param options PrintOptions struct to control all settings
334
        \sa ScribusMainWindow::slotFilePrint()
335
        \retval bool True for success */
411 Franz 336
        bool doPrint(PrintOptions *options);
4650 subik 337
        /** \brief exits the application */
162 Franz 338
        void slotFileQuit();
4650 subik 339
        /** \brief put the marked text/object into the clipboard and remove
162 Franz 340
         * it from the document */
341
        void slotEditCut();
4650 subik 342
        /** \brief put the marked text/object into the clipboard*/
162 Franz 343
        void slotEditCopy();
4650 subik 344
        /** \brief paste the clipboard into the document*/
162 Franz 345
        void slotEditPaste();
4579 cbradney 346
        void slotEditCopyContents();
347
        void slotEditPasteContents();
162 Franz 348
        void EnableTxEdit();
349
        void DisableTxEdit();
350
        void SelectAll();
1837 cbradney 351
        void deselectAll();
162 Franz 352
        void ClipChange();
1963 cbradney 353
        void clearContents();
4650 subik 354
        /** \brief shows an about dialog*/
162 Franz 355
        void slotHelpAbout();
3247 craig 356
        void slotHelpAboutPlugins();
3 paul 357
    void slotHelpAboutQt();
162 Franz 358
        void slotOnlineHelp();
359
        void ToggleTips();
4650 subik 360
        /** \brief Erzeugt eine neue Seite */
3 paul 361
        void slotNewPageP(int wo, QString templ);
162 Franz 362
        void slotNewPageM();
3787 cbradney 363
        void slotNewMasterPage(int w, const QString &);
3860 cbradney 364
        void slotNewPage(int w, const QString& masterPageName=QString::null, bool mov = true);
3187 fschmid 365
        void duplicateToMasterPage();
4650 subik 366
        /** \brief Loescht die aktuelle Seite */
162 Franz 367
        void DeletePage();
2246 subik 368
        /**
4650 subik 369
         * \brief Delete pages
1658 tsoots 370
         * @param from First page to delete
371
         * @param to Last page to delete
372
         */
373
        void DeletePage(int from, int to);
3 paul 374
        void DeletePage2(int pg);
4650 subik 375
        /** \brief Verschiebt Seiten */
162 Franz 376
        void MovePage();
377
        void CopyPage();
2777 fschmid 378
        void changePageMargins();
4650 subik 379
        /*!
380
        \author Craig Bradney
381
        \date Sun 30 Jan 2005
382
        \brief Zoom the view.
383
        Take the ScMW zoom actions and pass the view a %. Actions have whole number values like 20.0, 100.0, etc. Zoom to Fit uses -100 as a marker.
384
        \param zoomFactor Value stored in the ScrAction.
385
         */
1326 cbradney 386
        void slotZoom(double zoomFactor); // 20, 50, 100, or -100 for Fit
4650 subik 387
        /** \brief Schaltet Raender ein/aus */
3 paul 388
        void ToggleMarks();
389
        void ToggleFrames();
705 fschmid 390
        void ToggleTextLinks();
2353 fschmid 391
        void ToggleTextControls();
4651 cbradney 392
        void ToggleRulers();
393
        void ToggleRulerMode();
4650 subik 394
        /* Schaltet Masspalette ein/aus */
2144 cbradney 395
        //void togglePropertiesPalette();
4650 subik 396
        /* Schaltet Uebersichtspalette ein/aus*/
2144 cbradney 397
        //void toggleOutlinePalette();
398
        //void toggleScrapbookPalette();
399
        //void toggleLayerPalette();
1545 cbradney 400
        void togglePagePalette();
401
        void setPagePalette(bool visible);
2144 cbradney 402
        //void toggleBookmarkPalette();
1545 cbradney 403
        void toggleUndoPalette();
1114 tsoots 404
        void setUndoPalette(bool visible);
1493 cbradney 405
        void toggleCheckPal();
4650 subik 406
        /** \brief Schaltet M_ViewShowImages ein/aus */
3 paul 407
        void TogglePics();
4650 subik 408
        /** \brief Schaltet Raster ein/aus */
3 paul 409
        void ToggleRaster();
4650 subik 410
        /** \brief Schaltet Rasterbenutzung ein/aus */
3 paul 411
        void ToggleURaster();
4650 subik 412
        /** \brief Schaltet Rahmenbearbeitung ein/aus */
3 paul 413
        void ToggleFrameEdit();
414
        void slotSelect();
4650 subik 415
        /** \brief Switch appMode
416
        \param mode TODO learn modes*/
3 paul 417
        void setAppMode(int mode);
1525 cbradney 418
        void setAppModeByToggle(bool isOn, int newMode);
4650 subik 419
        /** \brief Neues Dokument erzeugt */
3 paul 420
        void HaveNewDoc();
421
        void HaveNewSel(int Nr);
4522 cbradney 422
        void rebuildStyleMenu(int itemType);
3 paul 423
        /** Dokument ist geaendert worden */
424
        void slotDocCh(bool reb = true);
425
        /** Setzt die Farbe */
426
        void setItemFarbe(int id);
427
        /** Setzt die Abstufung */
428
        void setItemShade(int id);
429
        /** Setzt den Font */
430
        void setItemFont(int id);
169 Franz 431
        void setItemFont2(int id);
3 paul 432
        /** Korrigiert das FontMenu */
433
        void AdjustFontMenu(QString nf);
3135 cbradney 434
        void SetNewFont(const QString& nf);
3 paul 435
        /** Setz die Zeichensatzgroesse */
436
        void setItemFSize(int id);
437
        void setFSizeMenu(int size);
438
        /** Farbeditor */
439
        void slotEditColors();
440
        /** Setzt den Pen-Tonwert */
441
        void setPenShade(int sh);
442
        /** Setzt den Brush-Tonwert */
443
        void setBrushShade(int sh);
295 Franz 444
        void setGradFill(int typ);
445
        void updtGradFill();
3 paul 446
        /** Setzt die Pen-Farbe */
447
        void setPenFarbe(QString farbe);
448
        /** Setzt die Brush-Farbe */
449
        void setBrushFarbe(QString farbe);
450
        void setCSMenu(QString f, QString l, int fs, int ls);
451
        /** Fragt nach den Farben */
452
        void GetBrushPen();
169 Franz 453
        /** Erzeugt einen Rahmen */
454
        void MakeFrame(int f, int c, double *vals);
3 paul 455
        /** Loescht ein Element */
456
        void DeleteObjekt();
457
        /** Dupliziert das Element */
458
        void ObjektDup();
459
        /** Dupliziert das Element mehrfach*/
460
        void ObjektDupM();
461
        /** Reformatiert das Dokument */
3784 cbradney 462
        bool slotDocSetup();
1644 cbradney 463
        void objectAttributes();
3706 fschmid 464
        void getImageInfo();
1694 cbradney 465
        void generateTableOfContents();
770 cbradney 466
        void buildFontMenu();
3 paul 467
        void slotPrefsOrg();
468
        void slotEditStyles();
222 Franz 469
        void saveStyles(StilFormate *dia);
27 Franz 470
        void slotEditLineStyles();
225 Franz 471
        void saveLStyles(LineFormate *dia);
3 paul 472
        void setNewAbStyle(int a);
473
        void setAbsValue(int a);
4679 fschmid 474
        void selectItemsFromOutlines(PageItem *ite);
3025 cbradney 475
        void selectItemsFromOutlines(int Page, int Item, bool single = false);
476
        void selectPagesFromOutlines(int Page);
3165 fschmid 477
        void doPrintPreview();
478
        void printPreview();
3 paul 479
        void SaveAsEps();
1825 fschmid 480
        void reallySaveAsEps();
3 paul 481
        void SaveAsPDF();
1816 fschmid 482
        void doSaveAsPDF();
3135 cbradney 483
        void setMainWindowActive();
3 paul 484
        void setItemHoch(int h);
485
        void setStilvalue(int s);
486
        void setItemTypeStyle(int id);
3743 fschmid 487
        void slotElemRead(QString Name, double x, double y, bool art, bool loca, ScribusDoc* docc, ScribusView* vie);
51 Franz 488
        void slotChangeUnit(int art, bool draw = true);
3 paul 489
        void NoFrameEdit();
4650 subik 490
        /*!
491
         * @brief Apply master pages from the Apply Master Page dialog
492
         * @todo Make this work with real page numbers, negative numbers and document sections when they are implemented
493
        */
2093 cbradney 494
        void ApplyMasterPage();
495
        void Apply_MasterPage(QString in, int Snr, bool reb = true);
1293 tsoots 496
        void GroupObj(bool showLockDia = true);
3 paul 497
        void UnGroupObj();
498
        void StatusPic();
499
        void ModifyAnnot();
500
        void ToggleGuides();
241 Franz 501
        void ToggleBase();
3 paul 502
        void ToggleUGuides();
27 Franz 503
        void HaveRaster(bool art);
140 Franz 504
        void EditTabs();
164 Franz 505
        void SearchText();
2150 cbradney 506
        void imageEditorExited();
4650 subik 507
        /*! \brief call gimp and wait upon completion */
2150 cbradney 508
        void callImageEditor();
1825 fschmid 509
        void docCheckToggle(bool visible);
1232 fschmid 510
        void scanDocument();
1443 tsoots 511
        void setUndoMode(bool isObjectSpecific);
4650 subik 512
        //! \brief Apply a Lorem Ipsum to the each item in a selection
1818 cbradney 513
        void insertSampleText();
2408 cbradney 514
        void sendToLayer(int layerNumber);
515
        void updateItemLayerList();
3 paul 516
 
517
signals:
518
        void TextISize(int);
519
        void TextIFont(QString);
2382 fschmid 520
        void TextUSval(int);
3 paul 521
        void TextStil(int);
522
        void TextFarben(QString, QString, int, int);
68 Franz 523
        void TextScale(int);
2230 fschmid 524
        void TextScaleV(int);
2234 fschmid 525
        void TextBase(int);
2247 fschmid 526
        void TextShadow(int, int);
2257 fschmid 527
        void TextOutline(int);
2262 fschmid 528
        void TextUnderline(int, int);
2272 fschmid 529
        void TextStrike(int, int);
1549 subik 530
 
1441 cbradney 531
        void prefsChanged();
1549 subik 532
 
1493 cbradney 533
protected:
4650 subik 534
        /*!
535
        \brief Receive key events from palettes such as palette hiding events. Possibly easier way but this is cleaner than before. No need to modify all those palettes and each new one in future.
536
         */
1493 cbradney 537
        bool eventFilter( QObject *o, QEvent *e );
4556 cbradney 538
        virtual void dragEnterEvent( QDragEnterEvent* e);
539
        virtual void dropEvent( QDropEvent* e);
80 Franz 540
 
3 paul 541
private:
188 Franz 542
    /** init methods */
767 cbradney 543
        void initSplash(bool showSplash);
544
        void initMenuBar(); // initMenuBar creates the menu_bar and inserts the menuitems
3097 cbradney 545
        void addDefaultWindowMenuItems(); // addDefaultWindowMenuItems adds the basic Windows menu items, excluding the actual list of windows
767 cbradney 546
        void initStatusBar(); // setup the statusbar
547
        void initToolBars(); // setup the toolbars
4650 subik 548
        //Returns false when there are no fonts
2870 cbradney 549
        const bool initFonts(const bool showFontInfo);
767 cbradney 550
        void initHyphenator();
801 cbradney 551
        void initDefaultValues();
552
        void initKeyboardShortcuts();
553
        void initPalettes();
554
        void initScrapbook();
803 cbradney 555
        void initCMS();
3034 cbradney 556
        void updateColorMenu(QProgressBar* progressBar=NULL);
767 cbradney 557
 
770 cbradney 558
        QString guiLanguage;
1208 cbradney 559
        QString recentFileMenuName;
2408 cbradney 560
        QString layerMenuName;
3580 avox 561
        QPixmap noIcon;
2199 cbradney 562
        bool scribusInitialized;
162 Franz 563
        QComboBox *ColorMenC;
564
        /** ShapeMenu enthaelt die Rahmenformen */
565
        QPopupMenu *ShapeMenu;
566
        /** FontMenu enthaelt die Fonts */
567
        QPopupMenu *FontMenu;
247 Franz 568
        FontCombo* FontSub;
4541 tsoots 569
        ScToolBar *fileToolBar;
570
        ScToolBar *editToolBar;
2859 cbradney 571
        WerkToolBP* pdfToolBar;
162 Franz 572
        QToolButton* DatOpe;
573
        QToolButton* DatSav;
574
        QToolButton* DatClo;
575
        QToolButton* DatPri;
576
        QToolButton* DatPDF;
577
        QToolButton* DatNeu;
247 Franz 578
        int toolbarMenuTools;
579
        int toolbarMenuPDFTools;
580
        int viewToolbars;
1545 cbradney 581
        int viewPropertiesPalette;
582
        int viewOutlinePalette;
583
        int viewNodePalette;
162 Franz 584
        int viewBpal;
1545 cbradney 585
        int viewLayerPalette;
586
        int viewPagePalette;
162 Franz 587
        int viewBopal;
1114 tsoots 588
        int viewUndoPalette;
1325 cbradney 589
 
4651 cbradney 590
        bool palettesStatus[10];
591
        bool guidesStatus[10];
1325 cbradney 592
 
162 Franz 593
        bool keyrep;
1204 tsoots 594
        /** @brief Tells if an arrow key is pressed down */
595
        bool _arrowKeyDown;
1443 tsoots 596
        /** @brief tells the undo mode */
597
        bool objectSpecificUndo;
1325 cbradney 598
 
3032 fschmid 599
        void addNewPages(int wo, int where, int numPages, double height, double width, int orient, QString siz, bool mov, QStringList* basedOn = 0);
162 Franz 600
        QMap<int,QString> FontID;
601
        int HaveGS;
602
        void *PSDriver;
603
        int DocNr;
1247 tsoots 604
        UndoManager *undoManager;
2834 cbradney 605
        PrefsManager *prefsManager;
162 Franz 606
        bool PrinterUsed;
1429 subik 607
        struct PDe {
168 Franz 608
                                        QString Pname;
1325 cbradney 609
                                        QString Dname;
610
                                        QString Command;
4361 cbradney 611
                                        QByteArray DevMode;
1325 cbradney 612
                                } PDef ;
2441 cbradney 613
        TOCGenerator *tocGenerator;
4664 fschmid 614
        int storedPageNum;
615
        int storedViewXCoor;
616
        int storedViewYCoor;
617
        double storedViewScale;
3 paul 618
};
3207 craig 619
 
1429 subik 620
#endif
767 cbradney 621