From 309232d26b903b5ce363b586a5ede3ab82d84b83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Mon, 12 Nov 2007 23:23:19 +0000 Subject: [PATCH] make LyXView almost pure virtual. Merge implementation with GuiView git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21566 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/LyXView.cpp | 283 --------------------------------- src/frontends/LyXView.h | 72 ++++----- src/frontends/Makefile.am | 1 - src/frontends/qt4/GuiView.cpp | 288 +++++++++++++++++++++++++++++++--- src/frontends/qt4/GuiView.h | 81 +++++++++- 5 files changed, 365 insertions(+), 360 deletions(-) delete mode 100644 src/frontends/LyXView.cpp diff --git a/src/frontends/LyXView.cpp b/src/frontends/LyXView.cpp deleted file mode 100644 index eeceb2f2fb..0000000000 --- a/src/frontends/LyXView.cpp +++ /dev/null @@ -1,283 +0,0 @@ -/** - * \file LyXView.cpp - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Lars Gullik Bjønnes - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "LyXView.h" - -#include "Dialogs.h" -#include "WorkArea.h" -#include "Gui.h" - -#include "Buffer.h" -#include "buffer_funcs.h" -#include "BufferList.h" -#include "BufferParams.h" -#include "BufferView.h" -#include "Cursor.h" -#include "debug.h" -#include "ErrorList.h" -#include "FuncRequest.h" -#include "gettext.h" -#include "Intl.h" -#include "Layout.h" -#include "LyX.h" -#include "LyXFunc.h" -#include "LyXRC.h" -#include "MenuBackend.h" -#include "Paragraph.h" -#include "Session.h" -#include "Text.h" - -#include "support/lstrings.h" -#include "support/filetools.h" // OnlyFilename() -#include "support/Timeout.h" - -#include - - -#ifdef HAVE_SYS_TIME_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif - -using std::endl; -using std::string; - -namespace lyx { - -using support::bformat; -using support::FileName; -using support::makeDisplayPath; -using support::onlyFilename; - -namespace frontend { - -LyXView::LyXView(int id) - : autosave_timeout_(new Timeout(5000)), - dialogs_(new Dialogs(*this)), - id_(id) -{ - // Start autosave timer - if (lyxrc.autosave) { - autosave_timeout_->timeout.connect(boost::bind(&LyXView::autoSave, this)); - autosave_timeout_->setTimeout(lyxrc.autosave * 1000); - autosave_timeout_->start(); - } -} - - -LyXView::~LyXView() -{ - delete dialogs_; - delete autosave_timeout_; -} - - -Buffer * LyXView::buffer() -{ - WorkArea * work_area = currentWorkArea(); - if (work_area) - return &work_area->bufferView().buffer(); - return 0; -} - - -Buffer const * LyXView::buffer() const -{ - WorkArea const * work_area = currentWorkArea(); - if (work_area) - return &work_area->bufferView().buffer(); - return 0; -} - - -void LyXView::setBuffer(Buffer * newBuffer) -{ - BOOST_ASSERT(newBuffer); - setBusy(true); - - WorkArea * wa = workArea(*newBuffer); - if (wa == 0) { - updateLabels(*newBuffer->masterBuffer()); - wa = addWorkArea(*newBuffer); - } else { - //Disconnect the old buffer...there's no new one. - disconnectBuffer(); - } - connectBuffer(*newBuffer); - connectBufferView(wa->bufferView()); - setCurrentWorkArea(wa); - - setBusy(false); -} - - -Buffer * LyXView::loadLyXFile(FileName const & filename, bool tolastfiles) -{ - setBusy(true); - - Buffer * newBuffer = checkAndLoadLyXFile(filename); - - if (!newBuffer) { - message(_("Document not loaded.")); - updateStatusBar(); - setBusy(false); - return 0; - } - - WorkArea * wa = workArea(*newBuffer); - if (wa == 0) - wa = addWorkArea(*newBuffer); - - // scroll to the position when the file was last closed - if (lyxrc.use_lastfilepos) { - LastFilePosSection::FilePos filepos = - LyX::ref().session().lastFilePos().load(filename); - // if successfully move to pit (returned par_id is not zero), - // update metrics and reset font - wa->bufferView().moveToPosition(filepos.pit, filepos.pos, 0, 0); - } - - if (tolastfiles) - LyX::ref().session().lastFiles().add(filename); - - setBusy(false); - return newBuffer; -} - - -void LyXView::connectBuffer(Buffer & buf) -{ - buf.setGuiDelegate(this); -} - - -void LyXView::disconnectBuffer() -{ - if (WorkArea * work_area = currentWorkArea()) - work_area->bufferView().setGuiDelegate(0); -} - - -void LyXView::connectBufferView(BufferView & bv) -{ - bv.setGuiDelegate(this); -} - - -void LyXView::disconnectBufferView() -{ - if (WorkArea * work_area = currentWorkArea()) - work_area->bufferView().setGuiDelegate(0); -} - - -void LyXView::showErrorList(string const & error_type) -{ - ErrorList & el = buffer()->errorList(error_type); - if (!el.empty()) - getDialogs().show("errorlist", error_type); -} - - -void LyXView::showDialog(string const & name) -{ - getDialogs().show(name); -} - - -void LyXView::showDialogWithData(string const & name, string const & data) -{ - getDialogs().show(name, data); -} - - -void LyXView::showInsetDialog(string const & name, string const & data, - Inset * inset) -{ - getDialogs().show(name, data, inset); -} - - -void LyXView::updateDialog(string const & name, string const & data) -{ - if (getDialogs().visible(name)) - getDialogs().update(name, data); -} - - -BufferView * LyXView::view() -{ - WorkArea * wa = currentWorkArea(); - return wa? &wa->bufferView() : 0; -} - - -void LyXView::updateToc() -{ - updateDialog("toc", ""); -} - - -void LyXView::updateEmbeddedFiles() -{ - updateDialog("embedding", ""); -} - - -void LyXView::autoSave() -{ - LYXERR(Debug::INFO) << "Running autoSave()" << endl; - - if (buffer()) - view()->buffer().autoSave(); -} - - -void LyXView::resetAutosaveTimer() -{ - if (lyxrc.autosave) - autosave_timeout_->restart(); -} - - -void LyXView::dispatch(FuncRequest const & cmd) -{ - string const argument = to_utf8(cmd.argument()); - switch(cmd.action) { - case LFUN_BUFFER_SWITCH: - setBuffer(theBufferList().getBuffer(to_utf8(cmd.argument()))); - break; - default: - theLyXFunc().setLyXView(this); - lyx::dispatch(cmd); - } -} - - -Buffer const * LyXView::updateInset(Inset const * inset) -{ - WorkArea * work_area = currentWorkArea(); - if (!work_area) - return 0; - - if (inset) { - BOOST_ASSERT(work_area); - work_area->scheduleRedraw(); - } - return &work_area->bufferView().buffer(); -} - -} // namespace frontend -} // namespace lyx diff --git a/src/frontends/LyXView.h b/src/frontends/LyXView.h index 58d461f5cc..c52f2dbd0b 100644 --- a/src/frontends/LyXView.h +++ b/src/frontends/LyXView.h @@ -13,9 +13,8 @@ #ifndef LYXVIEW_H #define LYXVIEW_H -#include "frontends/Application.h" #include "frontends/Delegates.h" -#include "support/docstring.h" +#include "support/strfwd.h" #include @@ -23,12 +22,10 @@ namespace lyx { namespace support { class FileName; } -class Font; class Buffer; class BufferView; class FuncRequest; class Inset; -class Timeout; class ToolbarInfo; namespace frontend { @@ -54,7 +51,7 @@ class LyXView { public: /// - LyXView(int id); + LyXView(int id) : id_(id) {} /// virtual ~LyXView(); /// @@ -110,11 +107,13 @@ public: //@{ generic accessor functions /// \return the current buffer view. - BufferView * view(); + virtual BufferView * view() = 0; /// \return the buffer currently shown in this window - Buffer * buffer(); - Buffer const * buffer() const; + virtual Buffer * buffer() = 0; + virtual Buffer const * buffer() const = 0; + /// set a buffer to the current workarea. + virtual void setBuffer(Buffer * b) = 0; ///< \c Buffer to set. /// virtual void openLayoutList() = 0; @@ -125,18 +124,15 @@ public: virtual void openMenu(docstring const & name) = 0; /// get access to the dialogs - Dialogs & getDialogs() { return *dialogs_; } + virtual Dialogs & getDialogs() = 0; /// - Dialogs const & getDialogs() const { return *dialogs_; } + virtual Dialogs const & getDialogs() const = 0; //@} /// load a buffer into the current workarea. - Buffer * loadLyXFile(support::FileName const & name, ///< File to load. - bool tolastfiles = true); ///< append to the "Open recent" menu? - - /// set a buffer to the current workarea. - void setBuffer(Buffer * b); ///< \c Buffer to set. + virtual Buffer * loadLyXFile(support::FileName const & name, ///< File to load. + bool tolastfiles = true) = 0; ///< append to the "Open recent" menu? /// updates the possible layouts selectable virtual void updateLayoutChoice(bool force) = 0; @@ -157,72 +153,58 @@ public: virtual void clearMessage() = 0; /// reset autosave timer - void resetAutosaveTimer(); + virtual void resetAutosaveTimer() = 0; /// dispatch to current BufferView - void dispatch(FuncRequest const & cmd); + virtual void dispatch(FuncRequest const & cmd) = 0; /** 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 *); + virtual Buffer const * updateInset(Inset const *) = 0; /// returns true if this view has the focus. virtual bool hasFocus() const = 0; /// show the error list to the user - void showErrorList(std::string const &); + virtual void showErrorList(std::string const &) = 0; // // GuiBufferDelegate // /// This function is called when the buffer structure is changed. - void structureChanged() { updateToc(); } + virtual void structureChanged() = 0; /// This function is called when some parsing error shows up. void errors(std::string const & err) { showErrorList(err); } /// Reset autosave timers for all users. void resetAutosaveTimers() { resetAutosaveTimer(); } /// connect to signals in the given BufferView - void connectBufferView(BufferView & bv); + virtual void connectBufferView(BufferView & bv) = 0; /// disconnect from signals in the given BufferView - void disconnectBufferView(); + virtual void disconnectBufferView() = 0; /// connect to signals in the given buffer - void connectBuffer(Buffer & buf); + virtual void connectBuffer(Buffer & buf) = 0; /// disconnect from signals in the given buffer - void disconnectBuffer(); + virtual void disconnectBuffer() = 0; private: /// noncopyable LyXView(LyXView const &); void operator=(LyXView const &); - /// called on timeout - void autoSave(); - - /// auto-saving of buffers - Timeout * const autosave_timeout_; - /// dialogs for this view - Dialogs * dialogs_; - /// Bind methods for BufferView messages signal connection //@{ - void showDialog(std::string const & name); - void showDialogWithData(std::string const & name, - std::string const & data); - void showInsetDialog(std::string const & name, - std::string const & data, Inset * inset); - void updateDialog(std::string const & name, - std::string const & data); + virtual void showDialog(std::string const & name) = 0; + virtual void showDialogWithData(std::string const & name, + std::string const & data) = 0; + virtual void showInsetDialog(std::string const & name, + std::string const & data, Inset * inset) = 0; + virtual void updateDialog(std::string const & name, + std::string const & data) = 0; //@} -protected: - /// - void updateToc(); - /// - void updateEmbeddedFiles(); - private: int id_; }; diff --git a/src/frontends/Makefile.am b/src/frontends/Makefile.am index eabbacbe08..c67e83a72b 100644 --- a/src/frontends/Makefile.am +++ b/src/frontends/Makefile.am @@ -27,7 +27,6 @@ liblyxfrontends_la_SOURCES = \ FontMetrics.h \ KeyModifier.h \ KeySymbol.h \ - LyXView.cpp \ LyXView.h \ Painter.cpp \ Painter.h \ diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index 9fed4ddbc2..962e22fe95 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -21,6 +21,10 @@ #include "GuiMenubar.h" #include "GuiToolbar.h" #include "GuiToolbars.h" +#include "Dialogs.h" +#include "WorkArea.h" +#include "Gui.h" + #include "qt_helpers.h" #include "frontends/Application.h" @@ -33,24 +37,33 @@ #include "support/lstrings.h" #include "support/os.h" +#include "buffer_funcs.h" #include "Buffer.h" +#include "BufferList.h" #include "BufferParams.h" #include "BufferView.h" -#include "BufferList.h" #include "Cursor.h" #include "debug.h" +#include "ErrorList.h" #include "FuncRequest.h" +#include "gettext.h" +#include "Intl.h" #include "Layout.h" -#include "LyX.h" #include "LyXFunc.h" +#include "LyX.h" #include "LyXRC.h" #include "MenuBackend.h" #include "Paragraph.h" #include "Session.h" #include "TextClass.h" +#include "Text.h" #include "ToolbarBackend.h" #include "version.h" +#include "support/lstrings.h" +#include "support/filetools.h" // OnlyFilename() +#include "support/Timeout.h" + #include #include #include @@ -68,8 +81,16 @@ #include #include +#include #include +#ifdef HAVE_SYS_TIME_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif + using std::endl; using std::string; using std::vector; @@ -80,6 +101,11 @@ extern bool quitting; namespace frontend { +using support::bformat; +using support::FileName; +using support::makeDisplayPath; +using support::onlyFilename; + namespace { int const statusbar_timer_value = 3000; @@ -126,22 +152,6 @@ private: struct GuiView::GuiViewPrivate { - string cur_title; - - int posx_offset; - int posy_offset; - - GuiWorkArea * current_work_area_; - QSplitter * splitter_; - QStackedWidget * stack_widget_; - BackgroundWidget * bg_widget_; - /// view's menubar - GuiMenubar * menubar_; - /// view's toolbars - GuiToolbars * toolbars_; - /// - docstring current_layout; - GuiViewPrivate() : current_work_area_(0), posx_offset(0), posy_offset(0) {} @@ -170,19 +180,22 @@ struct GuiView::GuiViewPrivate QAction * smallIcons = new QAction(iconSizeGroup); smallIcons->setText(qt_("Small-sized icons")); smallIcons->setCheckable(true); - QObject::connect(smallIcons, SIGNAL(triggered()), parent, SLOT(smallSizedIcons())); + QObject::connect(smallIcons, SIGNAL(triggered()), + parent, SLOT(smallSizedIcons())); menu->addAction(smallIcons); QAction * normalIcons = new QAction(iconSizeGroup); normalIcons->setText(qt_("Normal-sized icons")); normalIcons->setCheckable(true); - QObject::connect(normalIcons, SIGNAL(triggered()), parent, SLOT(normalSizedIcons())); + QObject::connect(normalIcons, SIGNAL(triggered()), + parent, SLOT(normalSizedIcons())); menu->addAction(normalIcons); QAction * bigIcons = new QAction(iconSizeGroup); bigIcons->setText(qt_("Big-sized icons")); bigIcons->setCheckable(true); - QObject::connect(bigIcons, SIGNAL(triggered()), parent, SLOT(bigSizedIcons())); + QObject::connect(bigIcons, SIGNAL(triggered()), + parent, SLOT(bigSizedIcons())); menu->addAction(bigIcons); unsigned int cur = parent->iconSize().width(); @@ -233,16 +246,48 @@ struct GuiView::GuiViewPrivate return tab_widget; } + +public: + /// + string cur_title; + + GuiWorkArea * current_work_area_; + int posx_offset; + int posy_offset; + + QSplitter * splitter_; + QStackedWidget * stack_widget_; + BackgroundWidget * bg_widget_; + /// view's menubar + GuiMenubar * menubar_; + /// view's toolbars + GuiToolbars * toolbars_; + /// + docstring current_layout; }; unsigned int GuiView::GuiViewPrivate::lastIconSize = 0; +/// FIXME +LyXView::~LyXView() {} + + GuiView::GuiView(int id) - : QMainWindow(), LyXView(id), quitting_by_menu_(false), - d(*new GuiViewPrivate) + : QMainWindow(), LyXView(id), + d(*new GuiViewPrivate), + quitting_by_menu_(false), + autosave_timeout_(new Timeout(5000)), + dialogs_(new Dialogs(*this)) { + // Start autosave timer + if (lyxrc.autosave) { + autosave_timeout_->timeout.connect(boost::bind(&GuiView::autoSave, this)); + autosave_timeout_->setTimeout(lyxrc.autosave * 1000); + autosave_timeout_->start(); + } + // Qt bug? signal lastWindowClosed does not work setAttribute(Qt::WA_QuitOnClose, false); setAttribute(Qt::WA_DeleteOnClose, true); @@ -275,6 +320,8 @@ GuiView::GuiView(int id) GuiView::~GuiView() { + delete dialogs_; + delete autosave_timeout_; delete &d; } @@ -1024,6 +1071,201 @@ void GuiView::toggleToolbarState(string const & name, bool allowauto) } +Buffer * GuiView::buffer() +{ + WorkArea * work_area = currentWorkArea(); + if (work_area) + return &work_area->bufferView().buffer(); + return 0; +} + + +Buffer const * GuiView::buffer() const +{ + WorkArea const * work_area = currentWorkArea(); + if (work_area) + return &work_area->bufferView().buffer(); + return 0; +} + + +void GuiView::setBuffer(Buffer * newBuffer) +{ + BOOST_ASSERT(newBuffer); + setBusy(true); + + WorkArea * wa = workArea(*newBuffer); + if (wa == 0) { + updateLabels(*newBuffer->masterBuffer()); + wa = addWorkArea(*newBuffer); + } else { + //Disconnect the old buffer...there's no new one. + disconnectBuffer(); + } + connectBuffer(*newBuffer); + connectBufferView(wa->bufferView()); + setCurrentWorkArea(wa); + + setBusy(false); +} + + +Buffer * GuiView::loadLyXFile(FileName const & filename, bool tolastfiles) +{ + setBusy(true); + + Buffer * newBuffer = checkAndLoadLyXFile(filename); + + if (!newBuffer) { + message(_("Document not loaded.")); + updateStatusBar(); + setBusy(false); + return 0; + } + + WorkArea * wa = workArea(*newBuffer); + if (wa == 0) + wa = addWorkArea(*newBuffer); + + // scroll to the position when the file was last closed + if (lyxrc.use_lastfilepos) { + LastFilePosSection::FilePos filepos = + LyX::ref().session().lastFilePos().load(filename); + // if successfully move to pit (returned par_id is not zero), + // update metrics and reset font + wa->bufferView().moveToPosition(filepos.pit, filepos.pos, 0, 0); + } + + if (tolastfiles) + LyX::ref().session().lastFiles().add(filename); + + setBusy(false); + return newBuffer; +} + + +void GuiView::connectBuffer(Buffer & buf) +{ + buf.setGuiDelegate(this); +} + + +void GuiView::disconnectBuffer() +{ + if (WorkArea * work_area = currentWorkArea()) + work_area->bufferView().setGuiDelegate(0); +} + + +void GuiView::connectBufferView(BufferView & bv) +{ + bv.setGuiDelegate(this); +} + + +void GuiView::disconnectBufferView() +{ + if (WorkArea * work_area = currentWorkArea()) + work_area->bufferView().setGuiDelegate(0); +} + + +void GuiView::showErrorList(string const & error_type) +{ + ErrorList & el = buffer()->errorList(error_type); + if (!el.empty()) + getDialogs().show("errorlist", error_type); +} + + +void GuiView::showDialog(string const & name) +{ + getDialogs().show(name); +} + + +void GuiView::showDialogWithData(string const & name, string const & data) +{ + getDialogs().show(name, data); +} + + +void GuiView::showInsetDialog(string const & name, string const & data, + Inset * inset) +{ + getDialogs().show(name, data, inset); +} + + +void GuiView::updateDialog(string const & name, string const & data) +{ + if (getDialogs().visible(name)) + getDialogs().update(name, data); +} + + +BufferView * GuiView::view() +{ + WorkArea * wa = currentWorkArea(); + return wa ? &wa->bufferView() : 0; +} + + +void GuiView::updateToc() +{ + updateDialog("toc", ""); +} + + +void GuiView::updateEmbeddedFiles() +{ + updateDialog("embedding", ""); +} + + +void GuiView::autoSave() +{ + LYXERR(Debug::INFO) << "Running autoSave()" << endl; + + if (buffer()) + view()->buffer().autoSave(); +} + + +void GuiView::resetAutosaveTimer() +{ + if (lyxrc.autosave) + autosave_timeout_->restart(); +} + + +void GuiView::dispatch(FuncRequest const & cmd) +{ + string const argument = to_utf8(cmd.argument()); + switch(cmd.action) { + case LFUN_BUFFER_SWITCH: + setBuffer(theBufferList().getBuffer(to_utf8(cmd.argument()))); + break; + default: + theLyXFunc().setLyXView(this); + lyx::dispatch(cmd); + } +} + + +Buffer const * GuiView::updateInset(Inset const * inset) +{ + WorkArea * work_area = currentWorkArea(); + if (!work_area) + return 0; + + if (inset) { + BOOST_ASSERT(work_area); + work_area->scheduleRedraw(); + } + return &work_area->bufferView().buffer(); +} + } // namespace frontend } // namespace lyx diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index b5b4466858..2c4daad81c 100644 --- a/src/frontends/qt4/GuiView.h +++ b/src/frontends/qt4/GuiView.h @@ -16,20 +16,20 @@ #define GUI_VIEW_H #include "frontends/LyXView.h" -#include "FuncRequest.h" -#include -#include #include -#include #include +class QCloseEvent; class QDragEnterEvent; class QDropEvent; class QMenu; -class QToolBar; + namespace lyx { + +class Timeout; + namespace frontend { class GuiToolbar; @@ -88,10 +88,21 @@ public: /// menu item has been selected void activated(FuncRequest const &); - QMenu* createPopupMenu(); + /// + QMenu * createPopupMenu(); + /// void addTabWorkArea(); + /// dispatch to current BufferView + void dispatch(FuncRequest const & cmd); + + /// \return the buffer currently shown in this window + Buffer * buffer(); + Buffer const * buffer() const; + /// set a buffer to the current workarea. + void setBuffer(Buffer * b); ///< \c Buffer to set. + Q_SIGNALS: void closing(int); @@ -110,7 +121,7 @@ public Q_SLOTS: void normalSizedIcons(); void bigSizedIcons(); -protected: +private: /// make sure we quit cleanly virtual void closeEvent(QCloseEvent * e); /// @@ -131,7 +142,32 @@ protected: WorkArea const * currentWorkArea() const; WorkArea * currentWorkArea(); -private: + /// + void resetAutosaveTimer(); + /// + void showErrorList(std::string const & error_type); + /// + void structureChanged() { updateToc(); } + /// + void connectBuffer(Buffer & buf); + /// + void disconnectBuffer(); + /// + void connectBufferView(BufferView & bv); + /// + void disconnectBufferView(); + //// + void showDialog(std::string const & name); + void showDialogWithData(std::string const & name, + std::string const & data); + void showInsetDialog(std::string const & name, + std::string const & data, Inset * inset); + void updateDialog(std::string const & name, + std::string const & data); + + /// + void updateToc(); + /// void dragEnterEvent(QDragEnterEvent * ev); /// @@ -142,6 +178,30 @@ private: bool focusNextPrevChild(bool); /// QRect updateFloatingGeometry(); + /// called on timeout + void autoSave(); + /// + void updateEmbeddedFiles(); + + /// \return the current buffer view. + BufferView * view(); + + /// get access to the dialogs + Dialogs & getDialogs() { return *dialogs_; } + /// + Dialogs const & getDialogs() const { return *dialogs_; } + + //@} + + /// load a buffer into the current workarea. + Buffer * loadLyXFile(support::FileName const & name, ///< File to load. + bool tolastfiles = true); ///< append to the "Open recent" menu? + + /** 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 *); + private: /// @@ -167,6 +227,11 @@ private: }; ToolbarSize toolbarSize_; + + /// auto-saving of buffers + Timeout * const autosave_timeout_; + /// dialogs for this view + Dialogs * dialogs_; }; -- 2.39.5