]> git.lyx.org Git - features.git/commitdiff
mainly reduce include dependencies
authorAndré Pönitz <poenitz@gmx.net>
Mon, 15 Oct 2007 22:43:55 +0000 (22:43 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Mon, 15 Oct 2007 22:43:55 +0000 (22:43 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20976 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/Action.cpp
src/frontends/qt4/Action.h
src/frontends/qt4/GuiPopupMenu.cpp
src/frontends/qt4/GuiToolbar.cpp
src/frontends/qt4/GuiToolbar.h
src/frontends/qt4/GuiToolbars.cpp
src/frontends/qt4/GuiToolbars.h
src/frontends/qt4/GuiView.cpp

index 63a05c68eb702517f847f96d900b6e9334efce32..bf18bef6db267122161dae252f5053e96be57a5e 100644 (file)
@@ -27,7 +27,7 @@ namespace lyx {
 namespace frontend {
 
 
-Action::Action(GuiViewBase & lyxView, QString const & icon,
+Action::Action(GuiViewBase & lyxView, QIcon const & icon,
          QString const & text, FuncRequest const & func,
          QString const & tooltip)
        : QAction(&lyxView), func_(func), lyxView_(lyxView)
@@ -36,7 +36,7 @@ Action::Action(GuiViewBase & lyxView, QString const & icon,
        // only Qt/Mac handles that
        setMenuRole(NoRole);
 #endif
-       setIcon(QPixmap(icon));
+       setIcon(icon);
        setText(text);
        setToolTip(tooltip);
        setStatusTip(tooltip);
index ecefbfe958d56e83f109ae324e7ce77c58edda95..28ab3df4e05b3ac544f9b28cdb301a0f9dd7737c 100644 (file)
@@ -14,6 +14,8 @@
 
 #include <QAction>
 
+class QIcon;
+
 namespace lyx {
 
 class FuncRequest;
@@ -32,7 +34,7 @@ class Action : public QAction
        Q_OBJECT
 
 public:
-       Action(GuiViewBase & lyxView, QString const & icon, QString const & text,
+       Action(GuiViewBase & lyxView, QIcon const & icon, QString const & text,
                FuncRequest const & func, QString const & tooltip);
 
        void update();
index 1c2c104fc36c1a18aad3739b9812e301a9e82568..16c5368fa98cfef070b9bf1d64ac89020149dcae 100644 (file)
@@ -106,7 +106,7 @@ void GuiPopupMenu::populate(QMenu * qMenu, Menu * menu)
                        addBinding(label, *m);
 
                        Action * action = new Action(*(owner_->view()),
-                               QString(), toqstr(label), m->func(), QString());
+                               QIcon(), toqstr(label), m->func(), QString());
                        qMenu->addAction(action);
                }
        }
index 06e3eedc8404727bf6c1257b18e72c66006f0109..2539b89f905f17085608393b0cceadb33fd0762a 100644 (file)
@@ -56,6 +56,153 @@ using support::compare;
 
 namespace frontend {
 
+
+namespace {
+
+struct PngMap {
+       char const * key;
+       char const * value;
+};
+
+
+bool operator<(PngMap const & lhs, PngMap const & rhs)
+{
+               return compare(lhs.key, rhs.key) < 0;
+}
+
+
+class CompareKey {
+public:
+       CompareKey(string const & name) : name_(name) {}
+       bool operator()(PngMap const & other) const { return other.key == name_; }
+private:
+       string const name_;
+};
+
+
+PngMap sorted_png_map[] = {
+       { "Bumpeq", "bumpeq2" },
+       { "Cap", "cap2" },
+       { "Cup", "cup2" },
+       { "Delta", "delta2" },
+       { "Downarrow", "downarrow2" },
+       { "Gamma", "gamma2" },
+       { "Lambda", "lambda2" },
+       { "Leftarrow", "leftarrow2" },
+       { "Leftrightarrow", "leftrightarrow2" },
+       { "Longleftarrow", "longleftarrow2" },
+       { "Longleftrightarrow", "longleftrightarrow2" },
+       { "Longrightarrow", "longrightarrow2" },
+       { "Omega", "omega2" },
+       { "Phi", "phi2" },
+       { "Pi", "pi2" },
+       { "Psi", "psi2" },
+       { "Rightarrow", "rightarrow2" },
+       { "Sigma", "sigma2" },
+       { "Subset", "subset2" },
+       { "Supset", "supset2" },
+       { "Theta", "theta2" },
+       { "Uparrow", "uparrow2" },
+       { "Updownarrow", "updownarrow2" },
+       { "Upsilon", "upsilon2" },
+       { "Vdash", "vdash3" },
+       { "Xi", "xi2" },
+       { "nLeftarrow", "nleftarrow2" },
+       { "nLeftrightarrow", "nleftrightarrow2" },
+       { "nRightarrow", "nrightarrow2" },
+       { "nVDash", "nvdash3" },
+       { "nvDash", "nvdash2" },
+       { "textrm \\AA", "textrm_AA"},
+       { "textrm \\O", "textrm_Oe"},
+       { "vDash", "vdash2" }
+};
+
+size_t const nr_sorted_png_map = sizeof(sorted_png_map) / sizeof(PngMap);
+
+
+string const find_png(string const & name)
+{
+       PngMap const * const begin = sorted_png_map;
+       PngMap const * const end = begin + nr_sorted_png_map;
+       BOOST_ASSERT(sorted(begin, end));
+
+       PngMap const * const it = std::find_if(begin, end, CompareKey(name));
+
+       string png_name;
+       if (it != end)
+               png_name = it->value;
+       else {
+               png_name = subst(name, "_", "underscore");
+               png_name = subst(png_name, ' ', '_');
+
+               // This way we can have "math-delim { }" on the toolbar.
+               png_name = subst(png_name, "(", "lparen");
+               png_name = subst(png_name, ")", "rparen");
+               png_name = subst(png_name, "[", "lbracket");
+               png_name = subst(png_name, "]", "rbracket");
+               png_name = subst(png_name, "{", "lbrace");
+               png_name = subst(png_name, "}", "rbrace");
+               png_name = subst(png_name, "|", "bars");
+               png_name = subst(png_name, ",", "thinspace");
+               png_name = subst(png_name, ":", "mediumspace");
+               png_name = subst(png_name, ";", "thickspace");
+               png_name = subst(png_name, "!", "negthinspace");
+       }
+
+       LYXERR(Debug::GUI) << "find_png(" << name << ")\n"
+                          << "Looking for math PNG called \""
+                          << png_name << '"' << std::endl;
+
+       return libFileSearch("images/math/", png_name, "png").absFilename();
+}
+
+} // namespace anon
+
+
+/// return a icon for the given action
+static QIcon getIcon(FuncRequest const & f, bool unknown)
+{
+       string fullname;
+
+       switch (f.action) {
+       case LFUN_MATH_INSERT:
+               if (!f.argument().empty())
+                       fullname = find_png(to_utf8(f.argument()).substr(1));
+               break;
+       case LFUN_MATH_DELIM:
+       case LFUN_MATH_BIGDELIM:
+               fullname = find_png(to_utf8(f.argument()));
+               break;
+       default:
+               string const name = lyxaction.getActionName(f.action);
+               string png_name = name;
+
+               if (!f.argument().empty())
+                       png_name = subst(name + ' ' + to_utf8(f.argument()), ' ', '_');
+
+               fullname = libFileSearch("images", png_name, "png").absFilename();
+
+               if (fullname.empty()) {
+                       // try without the argument
+                       fullname = libFileSearch("images", name, "png").absFilename();
+               }
+       }
+
+       if (!fullname.empty()) {
+               LYXERR(Debug::GUI) << "Full icon name is `"
+                                  << fullname << '\'' << endl;
+               return QIcon(toqstr(fullname));
+       }
+
+       LYXERR(Debug::GUI) << "Cannot find icon for command \""
+                          << lyxaction.getActionName(f.action)
+                          << '(' << to_utf8(f.argument()) << ")\"" << endl;
+       if (unknown)
+               return QIcon(toqstr(libFileSearch("images", "unknown", "png").absFilename()));
+       return QIcon();
+}
+
+
 static TextClass const & textClass(LyXView const & lv)
 {
        return lv.buffer()->params().getTextClass();
@@ -176,7 +323,7 @@ GuiToolbar::GuiToolbar(ToolbarInfo const & tbinfo, GuiViewBase & owner)
 Action * GuiToolbar::addItem(ToolbarItem const & item)
 {
        Action * act = new Action(owner_,
-               getIcon(item.func_, false).c_str(),
+               getIcon(item.func_, false),
          toqstr(item.label_), item.func_, toqstr(item.label_));
        actions_.append(act);
        return act;
@@ -202,7 +349,7 @@ void GuiToolbar::add(ToolbarItem const & item)
        case ToolbarItem::TABLEINSERT: {
                QToolButton * tb = new QToolButton;
                tb->setCheckable(true);
-               tb->setIcon(QPixmap(toqstr(getIcon(FuncRequest(LFUN_TABULAR_INSERT)))));
+               tb->setIcon(getIcon(FuncRequest(LFUN_TABULAR_INSERT), true));
                tb->setToolTip(qt_(to_ascii(item.label_)));
                tb->setStatusTip(qt_(to_ascii(item.label_)));
                tb->setText(qt_(to_ascii(item.label_)));
@@ -235,7 +382,7 @@ void GuiToolbar::add(ToolbarItem const & item)
                                panel->addButton(addItem(*it));
                                // use the icon of first action for the toolbar button
                                if (it == tbinfo->items.begin())
-                                       tb->setIcon(QPixmap(getIcon(it->func_).c_str()));
+                                       tb->setIcon(getIcon(it->func_, true));
                        }
                tb->setCheckable(true);
                connect(tb, SIGNAL(clicked(bool)), panel, SLOT(setVisible(bool)));
@@ -329,151 +476,6 @@ void GuiToolbar::updateContents()
 }
 
 
-namespace {
-
-struct PngMap {
-       char const * key;
-       char const * value;
-};
-
-
-bool operator<(PngMap const & lhs, PngMap const & rhs)
-{
-               return compare(lhs.key, rhs.key) < 0;
-}
-
-
-class CompareKey {
-public:
-       CompareKey(string const & name) : name_(name) {}
-       bool operator()(PngMap const & other) const { return other.key == name_; }
-private:
-       string const name_;
-};
-
-
-PngMap sorted_png_map[] = {
-       { "Bumpeq", "bumpeq2" },
-       { "Cap", "cap2" },
-       { "Cup", "cup2" },
-       { "Delta", "delta2" },
-       { "Downarrow", "downarrow2" },
-       { "Gamma", "gamma2" },
-       { "Lambda", "lambda2" },
-       { "Leftarrow", "leftarrow2" },
-       { "Leftrightarrow", "leftrightarrow2" },
-       { "Longleftarrow", "longleftarrow2" },
-       { "Longleftrightarrow", "longleftrightarrow2" },
-       { "Longrightarrow", "longrightarrow2" },
-       { "Omega", "omega2" },
-       { "Phi", "phi2" },
-       { "Pi", "pi2" },
-       { "Psi", "psi2" },
-       { "Rightarrow", "rightarrow2" },
-       { "Sigma", "sigma2" },
-       { "Subset", "subset2" },
-       { "Supset", "supset2" },
-       { "Theta", "theta2" },
-       { "Uparrow", "uparrow2" },
-       { "Updownarrow", "updownarrow2" },
-       { "Upsilon", "upsilon2" },
-       { "Vdash", "vdash3" },
-       { "Xi", "xi2" },
-       { "nLeftarrow", "nleftarrow2" },
-       { "nLeftrightarrow", "nleftrightarrow2" },
-       { "nRightarrow", "nrightarrow2" },
-       { "nVDash", "nvdash3" },
-       { "nvDash", "nvdash2" },
-       { "textrm \\AA", "textrm_AA"},
-       { "textrm \\O", "textrm_Oe"},
-       { "vDash", "vdash2" }
-};
-
-size_t const nr_sorted_png_map = sizeof(sorted_png_map) / sizeof(PngMap);
-
-
-string const find_png(string const & name)
-{
-       PngMap const * const begin = sorted_png_map;
-       PngMap const * const end = begin + nr_sorted_png_map;
-       BOOST_ASSERT(sorted(begin, end));
-
-       PngMap const * const it = std::find_if(begin, end, CompareKey(name));
-
-       string png_name;
-       if (it != end)
-               png_name = it->value;
-       else {
-               png_name = subst(name, "_", "underscore");
-               png_name = subst(png_name, ' ', '_');
-
-               // This way we can have "math-delim { }" on the toolbar.
-               png_name = subst(png_name, "(", "lparen");
-               png_name = subst(png_name, ")", "rparen");
-               png_name = subst(png_name, "[", "lbracket");
-               png_name = subst(png_name, "]", "rbracket");
-               png_name = subst(png_name, "{", "lbrace");
-               png_name = subst(png_name, "}", "rbrace");
-               png_name = subst(png_name, "|", "bars");
-               png_name = subst(png_name, ",", "thinspace");
-               png_name = subst(png_name, ":", "mediumspace");
-               png_name = subst(png_name, ";", "thickspace");
-               png_name = subst(png_name, "!", "negthinspace");
-       }
-
-       LYXERR(Debug::GUI) << "find_png(" << name << ")\n"
-                          << "Looking for math PNG called \""
-                          << png_name << '"' << std::endl;
-
-       return libFileSearch("images/math/", png_name, "png").absFilename();
-}
-
-} // namespace anon
-
-
-string const getIcon(FuncRequest const & f, bool unknown)
-{
-       string fullname;
-
-       switch (f.action) {
-       case LFUN_MATH_INSERT:
-               if (!f.argument().empty())
-                       fullname = find_png(to_utf8(f.argument()).substr(1));
-               break;
-       case LFUN_MATH_DELIM:
-       case LFUN_MATH_BIGDELIM:
-               fullname = find_png(to_utf8(f.argument()));
-               break;
-       default:
-               string const name = lyxaction.getActionName(f.action);
-               string png_name = name;
-
-               if (!f.argument().empty())
-                       png_name = subst(name + ' ' + to_utf8(f.argument()), ' ', '_');
-
-               fullname = libFileSearch("images", png_name, "png").absFilename();
-
-               if (fullname.empty()) {
-                       // try without the argument
-                       fullname = libFileSearch("images", name, "png").absFilename();
-               }
-       }
-
-       if (!fullname.empty()) {
-               LYXERR(Debug::GUI) << "Full icon name is `"
-                                  << fullname << '\'' << endl;
-               return fullname;
-       }
-
-       LYXERR(Debug::GUI) << "Cannot find icon for command \""
-                          << lyxaction.getActionName(f.action)
-                          << '(' << to_utf8(f.argument()) << ")\"" << endl;
-       if (unknown)
-               return libFileSearch("images", "unknown", "png").absFilename();
-       else
-               return string();
-}
-
 
 } // namespace frontend
 } // namespace lyx
index 7751474d3f842a468f1584c1b3ac176293edb58a..ca4703ca0a9a0758a03ae59331095f4f6e60140c 100644 (file)
@@ -16,8 +16,6 @@
 #ifndef GUITOOLBAR_H
 #define GUITOOLBAR_H
 
-#include "GuiCommandBuffer.h"
-
 #include "Session.h"
 
 #include <QList>
 
 namespace lyx {
 
-class FuncRequest;
 class ToolbarItem;
 
 namespace frontend {
 
+class GuiCommandBuffer;
 class GuiViewBase;
 class Action;
 
@@ -43,7 +41,7 @@ public:
 
        /// select the right layout in the combobox.
        void set(docstring const & layout);
-       /// Populate the layout combox.
+       /// Populate the layout combobox.
        void updateContents();
 
 private Q_SLOTS:
@@ -85,9 +83,6 @@ private:
        GuiCommandBuffer * command_buffer_;
 };
 
-/// return a full path of an .png for the given action
-std::string const getIcon(FuncRequest const & f, bool unknown = true);
-
 } // namespace frontend
 } // namespace lyx
 
index 8bf24294edc0a2444a9b65f7d135875230a0350b..c2c26cfe9fee743d747c77b5df9ed2ac850091da 100644 (file)
@@ -14,6 +14,7 @@
 
 #include "GuiToolbars.h"
 
+#include "GuiCommandBuffer.h"
 #include "GuiToolbar.h"
 #include "GuiView.h"
 
@@ -27,6 +28,7 @@
 #include "LyX.h"
 #include "LyXFunc.h"
 #include "TextClass.h"
+#include "ToolbarBackend.h"
 
 
 using std::endl;
index d427132e7855f9b4b513f1552dc46094cac6a7db..af9c4b9bab3537a514711f0c877cd406a2e390b4 100644 (file)
 #define GUI_TOOLBARS_H
 
 #include "TextClass.h"
-#include "ToolbarBackend.h"
-#include "Session.h"
 
 #include <map>
 
 namespace lyx {
+
+class ToolbarInfo;
+
 namespace frontend {
 
 class GuiLayoutBox;
index 7b475f8bff45c52cdb0c5f39526ed568e3e500f1..7e0ced1ae2ab923b6accc3485849e3c14e14df0b 100644 (file)
@@ -47,6 +47,7 @@
 #include "MenuBackend.h"
 #include "Paragraph.h"
 #include "Session.h"
+#include "ToolbarBackend.h"
 #include "version.h"
 
 #include <boost/current_function.hpp>