]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiView.h
Use <cstdint> instead of <boost/cstdint.hpp>
[lyx.git] / src / frontends / qt4 / GuiView.h
index c55d60bc089e4f0fe6510366b826a94dcaac8516..007e4f9c196e0a14729777e4b241b5b769221f60 100644 (file)
 #include "support/strfwd.h"
 
 #include <QMainWindow>
+#include <QMenu>
 
 class QCloseEvent;
 class QDragEnterEvent;
 class QDropEvent;
 class QLabel;
-class QMenu;
 class QShowEvent;
 
 
@@ -105,18 +105,19 @@ public:
        BufferView const * documentBufferView() const;
 
        void newDocument(std::string const & filename,
-               bool fromTemplate);
+                        std::string templatefile = std::string(),
+                        bool fromTemplate = false);
 
        /// display a message in the view
        /// could be called from any thread
        void message(docstring const &);
-       
+
        bool getStatus(FuncRequest const & cmd, FuncStatus & flag);
        /// dispatch command.
        /// \return true if the \c FuncRequest has been dispatched.
        void dispatch(FuncRequest const & cmd, DispatchResult & dr);
 
-       void restartCursor();
+       void restartCaret();
        /// Update the completion popup and the inline completion state.
        /// If \c start is true, then a new completion might be started.
        /// If \c keep is true, an active completion will be kept active
@@ -130,8 +131,10 @@ public:
 
        ///
        void focusInEvent(QFocusEvent * e);
-       /// set a buffer to the current workarea.
-       void setBuffer(Buffer * b); ///< \c Buffer to set.
+       /// Add a Buffer to the View
+       /// \param b Buffer to set.
+       /// \param switch_to Whether to set it to the current workarea.
+       void setBuffer(Buffer * b, bool switch_to = true);
 
        /// load a document into the current workarea.
        Buffer * loadDocument(
@@ -146,7 +149,6 @@ public:
        /// updates the possible layouts selectable
        void updateLayoutList();
        void updateToolbars();
-       QMenu * createPopupMenu();
 
        ///
        LayoutBox * getLayoutDialog() const;
@@ -165,6 +167,8 @@ public:
        /// \name GuiBufferDelegate.
        //@{
        void resetAutosaveTimers();
+       // shows an error list
+       // if from_master is true, show master's error list
        void errors(std::string const &, bool from_master = false);
        void structureChanged();
        void updateTocItem(std::string const &, DocIterator const &);
@@ -172,7 +176,7 @@ public:
 
        ///
        TocModels & tocModels();
-       
+
        /// called on timeout
        void autoSave();
 
@@ -190,7 +194,7 @@ public:
        /// \return the \c Workarea at index \c index
        GuiWorkArea * workArea(int index);
 
-       /// Add a \c WorkArea 
+       /// Add a \c WorkArea
        /// \return the \c Workarea associated to \p  Buffer
        /// \retval 0 if no \c WorkArea is found.
        GuiWorkArea * addWorkArea(Buffer & buffer);
@@ -207,13 +211,15 @@ public:
        GuiWorkArea const * currentMainWorkArea() const;
        /// return the current document WorkArea (it may not have the focus).
        GuiWorkArea * currentMainWorkArea();
-       
+
        /// Current ratio between physical pixels and device-independent pixels
        double pixelRatio() const;
 
 Q_SIGNALS:
        void closing(int);
        void triggerShowDialog(QString const & qname, QString const & qdata, Inset * inset);
+       // emitted when the work area or its buffer view changed
+       void bufferViewChanged();
 
 public Q_SLOTS:
        ///
@@ -223,23 +229,22 @@ public Q_SLOTS:
        void clearMessage();
        ///
        void updateWindowTitle(GuiWorkArea * wa);
+       ///
+       void disableShellEscape();
 
 private Q_SLOTS:
        ///
        void resetWindowTitle();
 
+       ///
+       void checkCancelBackground();
        ///
        void on_currentWorkAreaChanged(GuiWorkArea *);
        ///
+       void onBufferViewChanged();
+       ///
        void on_lastWorkAreaRemoved();
 
-       /// slots to change the icon size
-       void smallSizedIcons();
-       void normalSizedIcons();
-       void bigSizedIcons();
-       void hugeSizedIcons();
-       void giantSizedIcons();
-
        /// For completion of autosave or export threads.
        void processingThreadStarted();
        void processingThreadFinished();
@@ -253,6 +258,9 @@ private Q_SLOTS:
        void updateStatusBarMessage(QString const & str);
        void clearMessageText();
 
+       ///
+       void toolBarPopup(const QPoint &pos);
+
 private:
        /// Open given child document in current buffer directory.
        void openChildDocument(std::string const & filename);
@@ -303,7 +311,7 @@ public:
        void hideAll() const;
 
        /// Update all visible dialogs.
-       /** 
+       /**
         *  Check the status of all visible dialogs and disable or reenable
         *  them as appropriate.
         *
@@ -342,6 +350,8 @@ public:
        void hideDialog(std::string const & name, Inset * inset);
        ///
        void disconnectDialog(std::string const & name);
+       ///
+       bool develMode() const { return devel_mode_; }
 
 private:
        /// Saves the layout and geometry of the window
@@ -358,20 +368,29 @@ private:
        void initToolbars();
        ///
        void initToolbar(std::string const & name);
+       /// Update lock (all) toolbars position
+       void updateLockToolbars();
        ///
        bool lfunUiToggle(std::string const & ui_component);
        ///
        void toggleFullScreen();
        ///
-       void insertLyXFile(docstring const & fname);
+       void insertLyXFile(docstring const & fname, bool ignorelang = false);
        ///
        /// Open Export As ... dialog. \p iformat is the format the
        /// filter is initially set to.
        bool exportBufferAs(Buffer & b, docstring const & iformat);
 
        ///
-       enum RenameKind { LV_WRITE_AS, LV_VC_RENAME, LV_VC_COPY };
-       /// Save a buffer as a new file. 
+       enum RenameKind {
+               LV_WRITE_AS,
+               LV_WRITE_AS_TEMPLATE,
+               LV_VC_RENAME,
+               LV_VC_COPY,
+       };
+       /// Get a path for LFUN_BUFFER_WRITE_AS_TEMPLATE
+       std::string const getTemplatesPath(Buffer & buf);
+       /// Save a buffer as a new file.
        /**
        Write a buffer to a new file name and rename the buffer
     according to the new file name.
@@ -404,7 +423,7 @@ private:
        /// closes the tabworkarea and all tabs. If we are in a close event,
        /// all buffers will be closed, otherwise they will be hidden.
        bool closeTabWorkArea(TabWorkArea * twa);
-       /// gives the user the possibility to save his work 
+       /// gives the user the possibility to save his work
        /// or to discard the changes. If hiding is true, the
        /// document will be reloaded.
        bool saveBufferIfNeeded(Buffer & buf, bool hiding);
@@ -456,14 +475,35 @@ private:
        /// Request to give focus to minibuffer
        bool minibuffer_focus_;
 
+       /// Statusbar widget that shows shell-escape status
+       QLabel * shell_escape_;
        /// Statusbar widget that shows read-only status
        QLabel * read_only_;
        /// Statusbar widget that shows version control status
        QLabel * version_control_;
 
+       /// The rate from which the actual zoom value is calculated
+       /// from the default zoom pref
+       double zoom_ratio_ = 1.0;
        /// Minimum zoom percentage
-       unsigned int const zoom_min = 10;
+       static int const zoom_min_ = 10;
+
+       // movability flag of all toolbars
+       bool toolbarsMovable_;
+
+       // developer mode
+       bool devel_mode_;
+};
+
 
+class SEMenu : public QMenu
+{
+       Q_OBJECT
+public:
+       explicit SEMenu(QWidget * parent);
+
+public Q_SLOTS:
+       void showMenu(QPoint const &) { exec(QCursor::pos()); }
 };
 
 } // namespace frontend