diff --git a/development/scons/scons_manifest.py b/development/scons/scons_manifest.py index 20183e3491..e17bcc25ce 100644 --- a/development/scons/scons_manifest.py +++ b/development/scons/scons_manifest.py @@ -761,7 +761,7 @@ src_frontends_qt4_header_files = Split(''' PanelStack.h TocModel.h TocWidget.h - ToolbarBackend.h + Toolbars.h Validator.h qt_helpers.h qt_i18n.h @@ -852,7 +852,7 @@ src_frontends_qt4_files = Split(''' PanelStack.cpp TocModel.cpp TocWidget.cpp - ToolbarBackend.cpp + Toolbars.cpp Validator.cpp qt_helpers.cpp ''') diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp index 8ef56090ad..7b8556da2d 100644 --- a/src/frontends/qt4/GuiApplication.cpp +++ b/src/frontends/qt4/GuiApplication.cpp @@ -22,7 +22,7 @@ #include "GuiView.h" #include "Menus.h" #include "qt_helpers.h" -#include "ToolbarBackend.h" +#include "Toolbars.h" #include "frontends/alert.h" #include "frontends/Application.h" @@ -356,6 +356,10 @@ struct GuiApplication::Private QHash socket_notifiers_; /// Menus menus_; + /// + /// The global instance + Toolbars toolbars_; + /// this timer is used for any regular events one wants to /// perform. at present it is used to check if forked processes /// are done. @@ -706,6 +710,18 @@ FontLoader & GuiApplication::fontLoader() } +Toolbars const & GuiApplication::toolbars() const +{ + return d->toolbars_; +} + + +Toolbars & GuiApplication::toolbars() +{ + return d->toolbars_; +} + + Menus const & GuiApplication::menus() const { return d->menus_; @@ -1107,11 +1123,11 @@ bool GuiApplication::readUIFile(QString const & name, bool include) break; case ui_toolbarset: - toolbarbackend.readToolbars(lex); + d->toolbars_.readToolbars(lex); break; case ui_toolbars: - toolbarbackend.readToolbarSettings(lex); + d->toolbars_.readToolbarSettings(lex); break; default: diff --git a/src/frontends/qt4/GuiApplication.h b/src/frontends/qt4/GuiApplication.h index e0e3517a42..4387aa5702 100644 --- a/src/frontends/qt4/GuiApplication.h +++ b/src/frontends/qt4/GuiApplication.h @@ -36,6 +36,7 @@ class GlobalMenuBar; class GuiWorkArea; class Menus; class SocketNotifier; +class Toolbars; /// The Qt main application class /** @@ -71,6 +72,8 @@ public: Buffer const * updateInset(Inset const * inset) const; //@} + Toolbars const & toolbars() const; + Toolbars & toolbars(); Menus const & menus() const; Menus & menus(); /// Methods inherited from \c QApplication class diff --git a/src/frontends/qt4/GuiToolbar.cpp b/src/frontends/qt4/GuiToolbar.cpp index 22225003cb..f83d2ec46c 100644 --- a/src/frontends/qt4/GuiToolbar.cpp +++ b/src/frontends/qt4/GuiToolbar.cpp @@ -15,13 +15,16 @@ #include -#include "GuiView.h" -#include "GuiCommandBuffer.h" #include "GuiToolbar.h" -#include "LyXAction.h" + #include "Action.h" -#include "qt_helpers.h" +#include "GuiApplication.h" +#include "GuiCommandBuffer.h" +#include "GuiView.h" +#include "IconPalette.h" #include "InsertTableWidget.h" +#include "qt_helpers.h" +#include "Toolbars.h" #include "Buffer.h" #include "BufferParams.h" @@ -29,13 +32,12 @@ #include "Cursor.h" #include "FuncRequest.h" #include "FuncStatus.h" -#include "IconPalette.h" #include "Layout.h" +#include "LyXAction.h" #include "LyXFunc.h" #include "LyXRC.h" #include "Paragraph.h" #include "TextClass.h" -#include "ToolbarBackend.h" #include "support/debug.h" #include "support/filetools.h" @@ -881,7 +883,7 @@ public: this, SLOT(setIconSize(QSize))); setCheckable(true); ToolbarInfo const * tbinfo = - toolbarbackend.getDefinedToolbarInfo(tbitem_.name_); + guiApp->toolbars().getDefinedToolbarInfo(tbitem_.name_); if (tbinfo) // use the icon of first action for the toolbar button setIcon(getIcon(tbinfo->items.begin()->func_, true)); @@ -897,7 +899,7 @@ public: initialized_ = true; ToolbarInfo const * tbinfo = - toolbarbackend.getDefinedToolbarInfo(tbitem_.name_); + guiApp->toolbars().getDefinedToolbarInfo(tbitem_.name_); if (!tbinfo) { lyxerr << "Unknown toolbar " << tbitem_.name_ << endl; return; @@ -952,7 +954,7 @@ public: m->setTearOffEnabled(true); connect(bar_, SIGNAL(updated()), m, SLOT(updateParent())); ToolbarInfo const * tbinfo = - toolbarbackend.getDefinedToolbarInfo(tbitem_.name_); + guiApp->toolbars().getDefinedToolbarInfo(tbitem_.name_); if (!tbinfo) { lyxerr << "Unknown toolbar " << tbitem_.name_ << endl; return; diff --git a/src/frontends/qt4/GuiToolbar.h b/src/frontends/qt4/GuiToolbar.h index 57650ac8ef..382440bf90 100644 --- a/src/frontends/qt4/GuiToolbar.h +++ b/src/frontends/qt4/GuiToolbar.h @@ -30,15 +30,17 @@ namespace lyx { class DocumentClass; class Inset; -class ToolbarItem; namespace frontend { class Action; class GuiCommandBuffer; class GuiLayoutFilterModel; +class GuiToolbar; class GuiView; class LayoutItemDelegate; +class ToolbarInfo; +class ToolbarItem; class GuiLayoutBox : public QComboBox { diff --git a/src/frontends/qt4/GuiToolbars.cpp b/src/frontends/qt4/GuiToolbars.cpp index c1e5733707..de07ffea49 100644 --- a/src/frontends/qt4/GuiToolbars.cpp +++ b/src/frontends/qt4/GuiToolbars.cpp @@ -14,9 +14,11 @@ #include "GuiToolbars.h" +#include "GuiApplication.h" #include "GuiCommandBuffer.h" #include "GuiToolbar.h" #include "GuiView.h" +#include "Toolbars.h" #include "Buffer.h" #include "BufferParams.h" @@ -26,7 +28,6 @@ #include "LyX.h" #include "LyXFunc.h" #include "TextClass.h" -#include "ToolbarBackend.h" #include "support/debug.h" #include "support/gettext.h" @@ -95,33 +96,33 @@ void GuiToolbars::initFlags(ToolbarInfo & tbinfo) } /* cout << "State " << info.state << " FLAGS: " << flags - << " ON:" << (flags & ToolbarBackend::ON) - << " OFF:" << (flags & ToolbarBackend::OFF) - << " L:" << (flags & ToolbarBackend::LEFT) - << " R:" << (flags & ToolbarBackend::RIGHT) - << " T:" << (flags & ToolbarBackend::TOP) - << " B:" << (flags & ToolbarBackend::BOTTOM) - << " MA:" << (flags & ToolbarBackend::MATH) - << " RE:" << (flags & ToolbarBackend::REVIEW) - << " TB:" << (flags & ToolbarBackend::TABLE) - << " AU:" << (flags & ToolbarBackend::AUTO) + << " ON:" << (flags & Toolbars::ON) + << " OFF:" << (flags & Toolbars::OFF) + << " L:" << (flags & Toolbars::LEFT) + << " R:" << (flags & Toolbars::RIGHT) + << " T:" << (flags & Toolbars::TOP) + << " B:" << (flags & Toolbars::BOTTOM) + << " MA:" << (flags & Toolbars::MATH) + << " RE:" << (flags & Toolbars::REVIEW) + << " TB:" << (flags & Toolbars::TABLE) + << " AU:" << (flags & Toolbars::AUTO) << endl; */ // now set the flags - tbinfo.flags = static_cast(flags); + tbinfo.flags = static_cast(flags); } void GuiToolbars::init() { - ToolbarsMap::const_iterator it = toolbars_.begin(); + ToolbarsMap::iterator it = toolbars_.begin(); for (; it != toolbars_.end(); ++it) delete it->second; toolbars_.clear(); // extracts the toolbars from the backend - ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin(); - ToolbarBackend::Toolbars::iterator end = toolbarbackend.end(); + Toolbars::Infos::iterator cit = guiApp->toolbars().begin(); + Toolbars::Infos::iterator end = guiApp->toolbars().end(); // init flags will also add these toolbars to session if they // are not already there (e.g. first run of lyx). @@ -149,7 +150,7 @@ void GuiToolbars::init() (last_loc == ToolbarSection::ToolbarInfo::LEFT && tb->info.posx != last_posx) || (last_loc == ToolbarSection::ToolbarInfo::RIGHT && tb->info.posx != last_posx) ); // find the backend item and add - for (cit = toolbarbackend.begin(); cit != end; ++cit) + for (cit = guiApp->toolbars().begin(); cit != end; ++cit) if (cit->name == tb->key) { add(*cit, newline); last_loc = tb->info.location; @@ -163,8 +164,8 @@ void GuiToolbars::init() void GuiToolbars::display(string const & name, bool show) { - ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin(); - ToolbarBackend::Toolbars::iterator end = toolbarbackend.end(); + Toolbars::Infos::iterator cit = guiApp->toolbars().begin(); + Toolbars::Infos::iterator end = guiApp->toolbars().end(); for (; cit != end; ++cit) { if (cit->name == name) { @@ -176,7 +177,7 @@ void GuiToolbars::display(string const & name, bool show) TurnOnFlag(ON); else TurnOnFlag(OFF); - cit->flags = static_cast(flags); + cit->flags = static_cast(flags); displayToolbar(*cit, show); } } @@ -187,13 +188,13 @@ void GuiToolbars::display(string const & name, bool show) ToolbarInfo * GuiToolbars::getToolbarInfo(string const & name) { - return toolbarbackend.getUsedToolbarInfo(name); + return guiApp->toolbars().getUsedToolbarInfo(name); } void GuiToolbars::toggleToolbarState(string const & name, bool allowauto) { - ToolbarInfo * tbi = toolbarbackend.getUsedToolbarInfo(name); + ToolbarInfo * tbi = guiApp->toolbars().getUsedToolbarInfo(name); if (!tbi) { LYXERR(Debug::GUI, "Toolbar::display: no toolbar named " << name); @@ -230,17 +231,17 @@ void GuiToolbars::toggleFullScreen(bool start_full_screen) { // we need to know number of fullscreens until every // LyXView has its own toolbar configuration - toolbarbackend.fullScreenWindows += start_full_screen ? 1 : -1; + guiApp->toolbars().fullScreenWindows += start_full_screen ? 1 : -1; // extracts the toolbars from the backend - ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin(); - ToolbarBackend::Toolbars::iterator end = toolbarbackend.end(); + Toolbars::Infos::iterator cit = guiApp->toolbars().begin(); + Toolbars::Infos::iterator end = guiApp->toolbars().end(); int flags = 0; for (; cit != end; ++cit) { if (start_full_screen) { - if (toolbarbackend.fullScreenWindows == 1) + if (guiApp->toolbars().fullScreenWindows == 1) flags = cit->before_fullscreen = cit->flags; TurnOffFlag(ON); TurnOffFlag(AUTO); @@ -261,8 +262,8 @@ void GuiToolbars::update(bool in_math, bool in_table, bool review, updateIcons(); // extracts the toolbars from the backend - ToolbarBackend::Toolbars::const_iterator cit = toolbarbackend.begin(); - ToolbarBackend::Toolbars::const_iterator end = toolbarbackend.end(); + Toolbars::Infos::const_iterator cit = guiApp->toolbars().begin(); + Toolbars::Infos::const_iterator end = guiApp->toolbars().end(); for (; cit != end; ++cit) { if (cit->flags & ToolbarInfo::ON) @@ -295,8 +296,8 @@ void GuiToolbars::saveToolbarInfo() { ToolbarSection & tb = LyX::ref().session().toolbars(); - for (ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin(); - cit != toolbarbackend.end(); ++cit) { + for (Toolbars::Infos::iterator cit = guiApp->toolbars().begin(); + cit != guiApp->toolbars().end(); ++cit) { ToolbarsMap::iterator it = toolbars_.find(cit->name); LASSERT(it != toolbars_.end(), /**/); // get toolbar info from session. @@ -317,7 +318,7 @@ void GuiToolbars::saveToolbarInfo() flags &= ~(info.state == ToolbarSection::ToolbarInfo::ON ? ToolbarInfo::OFF : ToolbarInfo::ON); flags |= (info.state == ToolbarSection::ToolbarInfo::ON ? ToolbarInfo::ON : ToolbarInfo::OFF); if (info.state == ToolbarSection::ToolbarInfo::ON) - cit->flags = static_cast(flags); + cit->flags = static_cast(flags); } */ } diff --git a/src/frontends/qt4/GuiToolbars.h b/src/frontends/qt4/GuiToolbars.h index 49ac3a5af3..1afad34ee3 100644 --- a/src/frontends/qt4/GuiToolbars.h +++ b/src/frontends/qt4/GuiToolbars.h @@ -21,12 +21,12 @@ namespace lyx { class DocumentClass; -class ToolbarInfo; namespace frontend { class GuiToolbar; class GuiView; +class ToolbarInfo; class GuiToolbars { diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index feba1f57dc..323f61646a 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -52,7 +52,7 @@ #include "Paragraph.h" #include "TextClass.h" #include "Text.h" -#include "ToolbarBackend.h" +#include "Toolbars.h" #include "version.h" #include "support/lassert.h" @@ -1749,7 +1749,7 @@ bool GuiView::dispatch(FuncRequest const & cmd) string const name = cmd.getArg(0); bool const allowauto = cmd.getArg(1) == "allowauto"; // it is possible to get current toolbar status like this,... - // but I decide to obey the order of ToolbarBackend::flags + // but I decide to obey the order of Toolbars::flags // and disregard real toolbar status. // toolbars_->saveToolbarInfo(); // diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index 7f5b14b93e..dee533fec7 100644 --- a/src/frontends/qt4/GuiView.h +++ b/src/frontends/qt4/GuiView.h @@ -32,7 +32,6 @@ class QShowEvent; namespace lyx { class Cursor; -class ToolbarInfo; namespace frontend { @@ -42,6 +41,7 @@ class GuiToolbar; class GuiWorkArea; class TabWorkArea; class TocModels; +class ToolbarInfo; /** * GuiView - Qt4 implementation of LyXView diff --git a/src/frontends/qt4/Makefile.am b/src/frontends/qt4/Makefile.am index 997c071088..cb7bf6770c 100644 --- a/src/frontends/qt4/Makefile.am +++ b/src/frontends/qt4/Makefile.am @@ -132,7 +132,7 @@ SOURCEFILES = \ qt_helpers.cpp \ TocModel.cpp \ TocWidget.cpp \ - ToolbarBackend.cpp \ + Toolbars.cpp \ Validator.cpp NOMOCHEADER = \ @@ -153,7 +153,7 @@ NOMOCHEADER = \ LaTeXHighlighter.h \ qt_i18n.h \ qt_helpers.h \ - ToolbarBackend.h + Toolbars.h MOCHEADER = \ Action.h \ diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index cebd8975eb..c8ee95464d 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -46,7 +46,7 @@ #include "Session.h" #include "TextClass.h" #include "TocBackend.h" -#include "ToolbarBackend.h" +#include "Toolbars.h" #include "insets/Inset.h" #include "insets/InsetCitation.h" @@ -1012,13 +1012,13 @@ void MenuDefinition::expandToolbars() { // // extracts the toolbars from the backend - ToolbarBackend::Toolbars::const_iterator cit = toolbarbackend.begin(); - ToolbarBackend::Toolbars::const_iterator end = toolbarbackend.end(); + Toolbars::Infos::const_iterator cit = guiApp->toolbars().begin(); + Toolbars::Infos::const_iterator end = guiApp->toolbars().end(); for (; cit != end; ++cit) { QString label = qt_(cit->gui_name); // frontends are not supposed to turn on/off toolbars, - // if they cannot update ToolbarBackend::flags. That + // if they cannot update Toolbars::flags. That // is to say, ToolbarsBackend::flags should reflect // the true state of toolbars. // diff --git a/src/frontends/qt4/ToolbarBackend.cpp b/src/frontends/qt4/Toolbars.cpp similarity index 87% rename from src/frontends/qt4/ToolbarBackend.cpp rename to src/frontends/qt4/Toolbars.cpp index 419f0518f4..99ece2f2b1 100644 --- a/src/frontends/qt4/ToolbarBackend.cpp +++ b/src/frontends/qt4/Toolbars.cpp @@ -1,5 +1,5 @@ /** - * \file ToolbarBackend.cpp + * \file Toolbars.cpp * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * @@ -11,7 +11,7 @@ #include -#include "ToolbarBackend.h" +#include "Toolbars.h" #include "FuncRequest.h" #include "Lexer.h" #include "LyXAction.h" @@ -28,6 +28,7 @@ using namespace std; using namespace lyx::support; namespace lyx { +namespace frontend { namespace { @@ -46,9 +47,6 @@ private: } // namespace anon -ToolbarBackend toolbarbackend; - - ///////////////////////////////////////////////////////////////////////// // // ToolbarItem @@ -204,18 +202,18 @@ ToolbarInfo & ToolbarInfo::read(Lexer & lex) ///////////////////////////////////////////////////////////////////////// // -// ToolbarBackend +// Toolbars // ///////////////////////////////////////////////////////////////////////// -ToolbarBackend::ToolbarBackend() +Toolbars::Toolbars() { fullScreenWindows = 0; } -void ToolbarBackend::readToolbars(Lexer & lex) +void Toolbars::readToolbars(Lexer & lex) { enum { TO_TOOLBAR = 1, @@ -229,7 +227,7 @@ void ToolbarBackend::readToolbars(Lexer & lex) //consistency check if (compare_ascii_no_case(lex.getString(), "toolbarset")) { - LYXERR0("ToolbarBackend::readToolbars: ERROR wrong token:`" + LYXERR0("Toolbars::readToolbars: ERROR wrong token:`" << lex.getString() << '\''); } @@ -251,7 +249,7 @@ void ToolbarBackend::readToolbars(Lexer & lex) quit = true; break; default: - lex.printError("ToolbarBackend::readToolbars: " + lex.printError("Toolbars::readToolbars: " "Unknown toolbar tag: `$$Token'"); break; } @@ -261,11 +259,11 @@ void ToolbarBackend::readToolbars(Lexer & lex) } -void ToolbarBackend::readToolbarSettings(Lexer & lex) +void Toolbars::readToolbarSettings(Lexer & lex) { //consistency check if (compare_ascii_no_case(lex.getString(), "toolbars")) { - LYXERR0("ToolbarBackend::readToolbarSettings: ERROR wrong token:`" + LYXERR0("Toolbars::readToolbarSettings: ERROR wrong token:`" << lex.getString() << '\''); } @@ -278,15 +276,15 @@ void ToolbarBackend::readToolbarSettings(Lexer & lex) if (!compare_ascii_no_case(name, "end")) return; - Toolbars::iterator tcit = toolbars.begin(); - Toolbars::iterator tend = toolbars.end(); + Infos::iterator tcit = toolbars.begin(); + Infos::iterator tend = toolbars.end(); for (; tcit != tend; ++tcit) { if (tcit->name == name) break; } if (tcit == tend) { - LYXERR0("ToolbarBackend: undefined toolbar " << name); + LYXERR0("Toolbars: undefined toolbar " << name); return; } @@ -324,7 +322,7 @@ void ToolbarBackend::readToolbarSettings(Lexer & lex) flag = ToolbarInfo::AUTO; else { LYXERR(Debug::ANY, - "ToolbarBackend::readToolbarSettings: unrecognised token:`" + "Toolbars::readToolbarSettings: unrecognised token:`" << *cit << '\''); } tcit->flags = static_cast(tcit->flags | flag); @@ -335,21 +333,22 @@ void ToolbarBackend::readToolbarSettings(Lexer & lex) } -ToolbarInfo const * ToolbarBackend::getDefinedToolbarInfo(string const & name) const +ToolbarInfo const * Toolbars::getDefinedToolbarInfo(string const & name) const { - Toolbars::const_iterator it = find_if(toolbars.begin(), toolbars.end(), ToolbarNamesEqual(name)); + Infos::const_iterator it = find_if(toolbars.begin(), toolbars.end(), ToolbarNamesEqual(name)); if (it == toolbars.end()) return 0; return &(*it); } -ToolbarInfo * ToolbarBackend::getUsedToolbarInfo(string const &name) +ToolbarInfo * Toolbars::getUsedToolbarInfo(string const &name) { - Toolbars::iterator it = find_if(usedtoolbars.begin(), usedtoolbars.end(), ToolbarNamesEqual(name)); + Infos::iterator it = find_if(usedtoolbars.begin(), usedtoolbars.end(), ToolbarNamesEqual(name)); if (it == usedtoolbars.end()) return 0; return &(*it); } +} // namespace frontend } // namespace lyx diff --git a/src/frontends/qt4/ToolbarBackend.h b/src/frontends/qt4/Toolbars.h similarity index 85% rename from src/frontends/qt4/ToolbarBackend.h rename to src/frontends/qt4/Toolbars.h index 8845b5ddb8..b4a9182e64 100644 --- a/src/frontends/qt4/ToolbarBackend.h +++ b/src/frontends/qt4/Toolbars.h @@ -1,6 +1,6 @@ // -*- C++ -*- /** - * \file ToolbarBackend.h + * \file Toolbars.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * @@ -20,9 +20,10 @@ namespace lyx { - class Lexer; +namespace frontend { + class ToolbarItem { public: enum Type { @@ -109,20 +110,20 @@ private: /// -class ToolbarBackend { +class Toolbars { public: - typedef std::vector Toolbars; + typedef std::vector Infos; - ToolbarBackend(); + Toolbars(); /// iterator for all toolbars - Toolbars::const_iterator begin() const { return usedtoolbars.begin(); } + Infos::const_iterator begin() const { return usedtoolbars.begin(); } - Toolbars::const_iterator end() const { return usedtoolbars.end(); } + Infos::const_iterator end() const { return usedtoolbars.end(); } - Toolbars::iterator begin() { return usedtoolbars.begin(); } + Infos::iterator begin() { return usedtoolbars.begin(); } - Toolbars::iterator end() { return usedtoolbars.end(); } + Infos::iterator end() { return usedtoolbars.end(); } /// read toolbars from the file void readToolbars(Lexer &); @@ -141,17 +142,13 @@ public: private: /// all the defined toolbars - Toolbars toolbars; + Infos toolbars; /// toolbars listed - Toolbars usedtoolbars; + Infos usedtoolbars; }; -/// The global instance -extern ToolbarBackend toolbarbackend; - - - +} // namespace frontend } // namespace lyx #endif // TOOLBAR_BACKEND_H