#include "FuncRequest.h"
#include "FuncStatus.h"
#include "KeyMap.h"
-#include "LyXFunc.h"
+#include "LyX.h"
#include "LyXRC.h"
#include "support/debug.h"
GuiToolbar::GuiToolbar(ToolbarInfo const & tbinfo, GuiView & owner)
: QToolBar(toqstr(tbinfo.gui_name), &owner), visibility_(0),
- allowauto_(false), owner_(owner), command_buffer_(0),
- tbinfo_(tbinfo), filled_(false)
+ owner_(owner), command_buffer_(0), tbinfo_(tbinfo), filled_(false)
{
setIconSize(owner.iconSize());
connect(&owner, SIGNAL(iconSizeChanged(QSize)), this,
void GuiToolbar::setVisibility(int visibility)
{
visibility_ = visibility;
- allowauto_ = visibility_ >= Toolbars::MATH;
}
setToolTip(label);
setStatusTip(label);
setText(label);
- setIcon(QIcon(getPixmap("images/math/", toqstr(tbitem_.name_), "png")));
+ QString const name = toqstr(tbitem_.name_);
+ QString imagedir = "images/math/";
+ FileName const fname = imageLibFileSearch(imagedir, name, "png");
+ if (fname.exists()) {
+ setIcon(QIcon(getPixmap(imagedir, name, "png")));
+ } else {
+ imagedir = "images/";
+ imageLibFileSearch(imagedir, name, "png");
+ setIcon(QIcon(getPixmap(imagedir, name, "png")));
+ }
if (sticky)
connect(this, SIGNAL(triggered(QAction *)),
this, SLOT(actionTriggered(QAction *)));
void GuiToolbar::restoreSession()
{
QSettings settings;
- setVisibility(settings.value(sessionKey() + "/visibility").toInt());
+ int const error_val = -1;
+ int visibility =
+ settings.value(sessionKey() + "/visibility", error_val).toInt();
+ if (visibility == error_val || visibility == 0) {
+ // This should not happen, but in case we use the defaults
+ LYXERR0("Session settings could not be found! Defaults are used instead.");
+ visibility =
+ guiApp->toolbars().defaultVisibility(fromqstr(objectName()));
+ }
+ setVisibility(visibility);
}
void GuiToolbar::toggle()
{
docstring state;
- if (allowauto_) {
+ if (visibility_ & Toolbars::ALLOWAUTO) {
if (!(visibility_ & Toolbars::AUTO)) {
visibility_ |= Toolbars::AUTO;
hide();