mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 05:33:33 +00:00
* copy icon size to new GuiView from the last GuiView
* use small Mac combobox widget for small icon size. Otherwise the combobox is bigger than the icons. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23720 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
6688fc1f1e
commit
dd9a03b910
@ -315,16 +315,25 @@ static void updateIds(map<int, GuiView *> const & stdmap, vector<int> & ids)
|
||||
|
||||
void GuiApplication::createView(QString const & geometry_arg)
|
||||
{
|
||||
if (global_menubar_)
|
||||
global_menubar_->releaseKeyboard();
|
||||
|
||||
// create new view
|
||||
updateIds(views_, view_ids_);
|
||||
int id = 0;
|
||||
while (views_.find(id) != views_.end())
|
||||
id++;
|
||||
views_[id] = new GuiView(id);
|
||||
GuiView * view = new GuiView(id);
|
||||
|
||||
// copy the icon size from old view
|
||||
if (viewCount() > 0)
|
||||
view->setIconSize(current_view_->iconSize());
|
||||
|
||||
// register view
|
||||
views_[id] = view;
|
||||
updateIds(views_, view_ids_);
|
||||
|
||||
GuiView * view = views_[id];
|
||||
theLyXFunc().setLyXView(view);
|
||||
|
||||
view->show();
|
||||
if (!geometry_arg.isEmpty()) {
|
||||
#ifdef Q_WS_WIN
|
||||
|
@ -464,8 +464,9 @@ public:
|
||||
};
|
||||
|
||||
|
||||
GuiLayoutBox::GuiLayoutBox(GuiView & owner)
|
||||
: owner_(owner), lastSel_(-1), layoutItemDelegate_(new LayoutItemDelegate(this)),
|
||||
GuiLayoutBox::GuiLayoutBox(GuiToolbar * bar, GuiView & owner)
|
||||
: owner_(owner), bar_(bar), lastSel_(-1),
|
||||
layoutItemDelegate_(new LayoutItemDelegate(this)),
|
||||
visibleCategories_(0), inShowPopup_(false)
|
||||
{
|
||||
setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
@ -487,6 +488,9 @@ GuiLayoutBox::GuiLayoutBox(GuiView & owner)
|
||||
|
||||
QObject::connect(this, SIGNAL(activated(int)),
|
||||
this, SLOT(selected(int)));
|
||||
QObject::connect(bar_, SIGNAL(iconSizeChanged(QSize)),
|
||||
this, SLOT(setIconSize(QSize)));
|
||||
|
||||
owner_.setLayoutDialog(this);
|
||||
updateContents(true);
|
||||
}
|
||||
@ -653,6 +657,14 @@ bool GuiLayoutBox::eventFilter(QObject * o, QEvent * e)
|
||||
}
|
||||
|
||||
|
||||
void GuiLayoutBox::setIconSize(QSize size)
|
||||
{
|
||||
bool small = size.height() < 20;
|
||||
setAttribute(Qt::WA_MacSmallSize, small);
|
||||
setAttribute(Qt::WA_MacNormalSize, !small);
|
||||
}
|
||||
|
||||
|
||||
void GuiLayoutBox::set(docstring const & layout)
|
||||
{
|
||||
resetFilter();
|
||||
@ -962,7 +974,7 @@ void GuiToolbar::add(ToolbarItem const & item)
|
||||
addSeparator();
|
||||
break;
|
||||
case ToolbarItem::LAYOUTS:
|
||||
layout_ = new GuiLayoutBox(owner_);
|
||||
layout_ = new GuiLayoutBox(this, owner_);
|
||||
addWidget(layout_);
|
||||
break;
|
||||
case ToolbarItem::MINIBUFFER:
|
||||
|
@ -44,7 +44,7 @@ class GuiLayoutBox : public QComboBox
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
GuiLayoutBox(GuiView &);
|
||||
GuiLayoutBox(GuiToolbar * bar, GuiView &);
|
||||
|
||||
/// select the right layout in the combobox.
|
||||
void set(docstring const & layout);
|
||||
@ -65,6 +65,8 @@ public:
|
||||
private Q_SLOTS:
|
||||
///
|
||||
void selected(int index);
|
||||
///
|
||||
void setIconSize(QSize size);
|
||||
|
||||
private:
|
||||
friend class LayoutItemDelegate;
|
||||
@ -81,6 +83,8 @@ private:
|
||||
///
|
||||
GuiView & owner_;
|
||||
///
|
||||
GuiToolbar * bar_;
|
||||
///
|
||||
DocumentClass const * text_class_;
|
||||
///
|
||||
Inset const * inset_;
|
||||
@ -119,17 +123,22 @@ public:
|
||||
///
|
||||
GuiCommandBuffer * commandBuffer() { return command_buffer_; }
|
||||
|
||||
///
|
||||
Action * addItem(ToolbarItem const & item);
|
||||
|
||||
Q_SIGNALS:
|
||||
///
|
||||
void updated();
|
||||
|
||||
private:
|
||||
|
||||
///
|
||||
QList<Action *> actions_;
|
||||
///
|
||||
GuiView & owner_;
|
||||
|
||||
///
|
||||
GuiLayoutBox * layout_;
|
||||
///
|
||||
GuiCommandBuffer * command_buffer_;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user