#include "FuncRequest.h"
#include "FuncStatus.h"
#include "KeyMap.h"
-#include "LyXFunc.h"
+#include "LyX.h"
#include "LyXRC.h"
#include "support/debug.h"
#include "support/lstrings.h"
#include <QSettings>
+#include <QShowEvent>
#include <QString>
#include <QToolBar>
#include <QToolButton>
GuiToolbar::GuiToolbar(ToolbarInfo const & tbinfo, GuiView & owner)
: QToolBar(toqstr(tbinfo.gui_name), &owner), visibility_(0),
- allowauto_(false), owner_(owner), layout_(0), 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 *)));
case ToolbarItem::SEPARATOR:
addSeparator();
break;
- case ToolbarItem::LAYOUTS:
- layout_ = new LayoutBox(this, owner_);
- addWidget(layout_);
+ case ToolbarItem::LAYOUTS: {
+ LayoutBox * layout = owner_.getLayoutDialog();
+ QObject::connect(this, SIGNAL(iconSizeChanged(QSize)),
+ layout, SLOT(setIconSize(QSize)));
+ QAction * action = addWidget(layout);
+ action->setVisible(true);
break;
+ }
case ToolbarItem::MINIBUFFER:
command_buffer_ = new GuiCommandBuffer(&owner_);
addWidget(command_buffer_);
for (int i = 0; i < actions_.size(); ++i)
actions_[i]->update();
- if (layout_)
- layout_->setEnabled(lyx::getStatus(FuncRequest(LFUN_LAYOUT)).enabled());
+ LayoutBox * layout = owner_.getLayoutDialog();
+ if (layout)
+ layout->setEnabled(lyx::getStatus(FuncRequest(LFUN_LAYOUT)).enabled());
// emit signal
updated();
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();