X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FLyXView.C;h=d805fee37175cec6c713a1110dd7bc6ae9d9a885;hb=c5058bffd88b5eb000ffd11d5729fbec0f34fb0f;hp=37092cc3962e0794f71b6beedddcb240db0c92c5;hpb=91bcdf564a791d3d017355f9966e4fdaa4e64145;p=lyx.git diff --git a/src/frontends/LyXView.C b/src/frontends/LyXView.C index 37092cc396..d805fee371 100644 --- a/src/frontends/LyXView.C +++ b/src/frontends/LyXView.C @@ -1,10 +1,12 @@ /** * \file LyXView.C - * Copyright 1995-2002 the LyX Team - * Read the file COPYING + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjornes - * \author John Levon + * \author Lars Gullik Bjønnes + * \author John Levon + * + * Full author contact details are available in file CREDITS */ #include @@ -14,7 +16,6 @@ #endif #include "LyXView.h" -#include "MiniBuffer.h" #include "debug.h" #include "intl.h" #include "lyxrc.h" @@ -23,15 +24,16 @@ #include "MenuBackend.h" #include "gettext.h" #include "lyxfunc.h" +#include "funcrequest.h" #include "lyx_cb.h" #include "BufferView.h" #include "bufferview_funcs.h" -#include "lyxtextclasslist.h" -#include "frontends/Dialogs.h" -#include "frontends/Toolbar.h" -#include "frontends/Timeout.h" -#include "frontends/Menubar.h" +#include "Dialogs.h" +#include "Toolbar.h" +#include "Timeout.h" +#include "Menubar.h" +#include "controllers/ControlCommandBuffer.h" #include "support/filetools.h" // OnlyFilename() @@ -46,16 +48,13 @@ string current_layout; LyXView::LyXView() + : intl_(new Intl), + autosave_timeout_(new Timeout(5000)), + lyxfunc_(new LyXFunc(this)), + dialogs_(new Dialogs(*this)), + controlcommand_(new ControlCommandBuffer(getLyXFunc())) { lyxerr[Debug::INIT] << "Initializing LyXFunc" << endl; - - lyxfunc_.reset(new LyXFunc(this)); - intl_.reset(new Intl); - - // Give the timeout some default sensible value. - autosave_timeout_.reset(new Timeout(5000)); - - dialogs_.reset(new Dialogs(this)); } @@ -71,6 +70,7 @@ void LyXView::init() // Start autosave timer if (lyxrc.autosave) { + autosave_timeout_->timeout.connect(boost::bind(&LyXView::autoSave, this)); autosave_timeout_->setTimeout(lyxrc.autosave * 1000); autosave_timeout_->start(); } @@ -85,15 +85,9 @@ Buffer * LyXView::buffer() const } -BufferView * LyXView::view() const +boost::shared_ptr const & LyXView::view() const { - return bufferview_.get(); -} - - -Toolbar * LyXView::getToolbar() const -{ - return toolbar_.get(); + return bufferview_; } @@ -109,66 +103,18 @@ void LyXView::updateToolbar() } -LyXFunc * LyXView::getLyXFunc() const -{ - return lyxfunc_.get(); -} - - -MiniBuffer * LyXView::getMiniBuffer() const -{ - return minibuffer_.get(); -} - - -void LyXView::message(string const & str) -{ - minibuffer_->message(str); -} - - -void LyXView::messagePush(string const & str) -{ - minibuffer_->messagePush(str); -} - - -void LyXView::messagePop() -{ - minibuffer_->messagePop(); -} - - -Menubar * LyXView::getMenubar() const -{ - return menubar_.get(); -} - - void LyXView::updateMenubar() { - if (!view()->buffer() && menubackend.hasMenu("main_nobuffer")) { - menubar_->set("main_nobuffer"); - } else { - menubar_->set("main"); - } - menubar_->update(); } -Intl * LyXView::getIntl() const -{ - return intl_.get(); -} - - void LyXView::autoSave() { lyxerr[Debug::INFO] << "Running autoSave()" << endl; if (view()->available()) { - ::AutoSave(view()); + ::AutoSave(view().get()); } } @@ -190,7 +136,7 @@ void LyXView::updateLayoutChoice() // update the layout display if (toolbar_->updateLayoutList(buffer()->params.textclass)) { - current_layout = textclasslist[buffer()->params.textclass].defaultLayoutName(); + current_layout = buffer()->params.getLyXTextClass().defaultLayoutName(); } string const & layout = @@ -206,24 +152,34 @@ void LyXView::updateLayoutChoice() void LyXView::updateWindowTitle() { static string last_title = "LyX"; - string title = "LyX"; - string icon_title = "LyX"; + string maximize_title = "LyX"; + string minimize_title = "LyX"; if (view()->available()) { string const cur_title = buffer()->fileName(); if (!cur_title.empty()) { - title += ": " + MakeDisplayPath(cur_title, 30); - if (!buffer()->isLyxClean()) - title += _(" (changed)"); + maximize_title += ": " + MakeDisplayPath(cur_title, 30); + minimize_title = OnlyFilename(cur_title); + if (!buffer()->isClean()) { + maximize_title += _(" (changed)"); + minimize_title += '*'; + } if (buffer()->isReadonly()) - title += _(" (read only)"); - // Show only the filename if it's available - icon_title = OnlyFilename(cur_title); + maximize_title += _(" (read only)"); } } - if (title != last_title) { - setWindowTitle(title, icon_title); - last_title = title; + if (maximize_title != last_title) { + setWindowTitle(maximize_title, minimize_title); + last_title = maximize_title; } } + + +void LyXView::dispatch(FuncRequest const & req) +{ + // substitute the correct BufferView here + FuncRequest r = req; + r.setView(view().get()); + getLyXFunc().dispatch(r); +}