X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiView.h;h=061060a8c30dba2c7110976352352f1148c04f89;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=78e5e3dceb07aa8900a628ff6ff8b919105d3b1b;hpb=57f1c5859855fb851ce7ca7cf9b1a8878dd89746;p=lyx.git diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index 78e5e3dceb..061060a8c3 100644 --- a/src/frontends/qt4/GuiView.h +++ b/src/frontends/qt4/GuiView.h @@ -62,61 +62,70 @@ public: ~GuiView(); - /// + /// \name LyXView inherited methods. + //@{ int id() const { return id_; } - void setFocus(); void setBusy(bool); - /// returns true if this view has the focus. - bool hasFocus() const; + BufferView * currentBufferView(); + BufferView const * currentBufferView() const; + BufferView * documentBufferView(); + BufferView const * documentBufferView() const; + void newDocument(std::string const & filename, + bool fromTemplate); + + /// could be called from any thread + void message(docstring const &); + /// must be called from GUI thread + void updateMessage(QString const & str); + + bool getStatus(FuncRequest const & cmd, FuncStatus & flag); + void dispatch(FuncRequest const & cmd, DispatchResult & dr); + void restartCursor(); + void updateCompletion(Cursor & cur, bool start, bool keep); + void setFocus(); + //@} + + /// + void focusInEvent(QFocusEvent * e); + /// set a buffer to the current workarea. + void setBuffer(Buffer * b); ///< \c Buffer to set. + + /// load a document into the current workarea. + Buffer * loadDocument( + support::FileName const & name, ///< File to load. + bool tolastfiles = true ///< append to the "Open recent" menu? + ); /// add toolbar, if newline==true, add a toolbar break before the toolbar GuiToolbar * makeToolbar(ToolbarInfo const & tbinfo, bool newline); - virtual void updateStatusBar(); - virtual void message(docstring const & str); + void updateStatusBar(); /// updates the possible layouts selectable void updateLayoutList(); void updateToolbars(); QMenu * createPopupMenu(); - bool getStatus(FuncRequest const & cmd, FuncStatus & flag); - bool dispatch(FuncRequest const & cmd); /// LayoutBox * getLayoutDialog() const; - /// \return the buffer currently selected in this window - virtual Buffer * buffer(); - virtual Buffer const * buffer() const; - - /// \return the document buffer in this window - virtual Buffer * documentBuffer(); - virtual Buffer const * documentBuffer() const; - - /// set a buffer to the current workarea. - void setBuffer(Buffer * b); ///< \c Buffer to set. - /// closes the current active buffer - bool closeBuffer(); /// hides the workarea and makes sure it is clean bool hideWorkArea(GuiWorkArea * wa); /// closes the workarea bool closeWorkArea(GuiWorkArea * wa); - /// load a document into the current workarea. - Buffer * loadDocument(support::FileName const & name, ///< File to load. - bool tolastfiles = true); ///< append to the "Open recent" menu? + /// closes the buffer + bool closeBuffer(Buffer & buf); /// void openDocument(std::string const & filename); /// void importDocument(std::string const &); - /// - void newDocument(std::string const & filename, bool fromTemplate); - /// GuiBufferDelegate. - ///@{ + /// \name GuiBufferDelegate. + //@{ void resetAutosaveTimers(); void errors(std::string const &, bool from_master = false); void structureChanged(); void updateTocItem(std::string const &, DocIterator const &); - ///@} + //@} /// TocModels & tocModels(); @@ -124,17 +133,13 @@ public: /// called on timeout void autoSave(); - /// \return the currently selected buffer view. - BufferView * view(); - /// \return the current document buffer view. - BufferView * documentBufferView(); + /// check for external change of any opened buffer, mainly for svn usage + void checkExternallyModifiedBuffers(); /** redraw \c inset in all the BufferViews in which it is currently * visible. If successful return a pointer to the owning Buffer. */ Buffer const * updateInset(Inset const *); - /// - void restartCursor(); /// \return the \c Workarea associated to \p Buffer /// \retval 0 if no \c WorkArea is found. @@ -160,6 +165,7 @@ public: Q_SIGNALS: void closing(int); + void triggerShowDialog(QString const & qname, QString const & qdata, Inset * inset); public Q_SLOTS: /// idle timeout. @@ -182,7 +188,20 @@ private Q_SLOTS: void normalSizedIcons(); void bigSizedIcons(); + /// For completion of autosave or exporrt threads. + void threadFinished(); + + /// must be called in GUI thread + void doShowDialog(QString const & qname, QString const & qdata, + Inset * inset); + private: + /// Open given child document in current buffer directory. + void openChildDocument(std::string const & filename); + /// Close current document buffer. + bool closeBuffer(); + /// Close all document buffers. + bool closeBufferAll(); /// TabWorkArea * addTabWorkArea(); @@ -207,6 +226,9 @@ private: bool event(QEvent * e); bool focusNextPrevChild(bool); + /// + bool goToFileRow(std::string const & argument); + /// struct GuiViewPrivate; GuiViewPrivate & d; @@ -233,7 +255,8 @@ public: */ void updateDialogs(); - /** \param name == "bibtex", "citation" etc; an identifier used to + /** Show dialog could be called from arbitrary threads. + \param name == "bibtex", "citation" etc; an identifier used to launch a particular dialog. \param data is a string representation of the Inset contents. It is often little more than the output from Inset::write. @@ -262,9 +285,6 @@ public: /// void disconnectDialog(std::string const & name); - /// - void updateCompletion(Cursor & cur, bool start, bool keep); - private: /// void saveLayout() const; @@ -314,8 +334,6 @@ private: /// or to discard the changes. If hiding is true, the /// document will be reloaded. bool saveBufferIfNeeded(Buffer & buf, bool hiding); - /// closes all workareas and all hidden buffers - bool closeBufferAll(); /// closes all workareas bool closeWorkAreaAll(); /// write all open workareas into the session file @@ -333,15 +351,18 @@ private: /// void gotoNextOrPreviousBuffer(NextOrPrevious np); - /// - Inset * getOpenInset(std::string const & name) const; - /// Is the dialog currently visible? bool isDialogVisible(std::string const & name) const; /// Dialog * findOrBuild(std::string const & name, bool hide_it); /// Dialog * build(std::string const & name); + /// + void reloadBuffer(); + /// + void dispatchVC(FuncRequest const & cmd); + /// + void showMessage(); /// This view ID. int id_;