* 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:
Stefan Schimanski 2008-03-14 16:39:34 +00:00
parent 6688fc1f1e
commit dd9a03b910
3 changed files with 40 additions and 10 deletions

View File

@ -315,16 +315,25 @@ static void updateIds(map<int, GuiView *> const & stdmap, vector<int> & ids)
void GuiApplication::createView(QString const & geometry_arg) void GuiApplication::createView(QString const & geometry_arg)
{ {
if (global_menubar_)
global_menubar_->releaseKeyboard();
// create new view
updateIds(views_, view_ids_); updateIds(views_, view_ids_);
int id = 0; int id = 0;
while (views_.find(id) != views_.end()) while (views_.find(id) != views_.end())
id++; 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_); updateIds(views_, view_ids_);
GuiView * view = views_[id];
theLyXFunc().setLyXView(view); theLyXFunc().setLyXView(view);
view->show(); view->show();
if (!geometry_arg.isEmpty()) { if (!geometry_arg.isEmpty()) {
#ifdef Q_WS_WIN #ifdef Q_WS_WIN

View File

@ -464,8 +464,9 @@ public:
}; };
GuiLayoutBox::GuiLayoutBox(GuiView & owner) GuiLayoutBox::GuiLayoutBox(GuiToolbar * bar, GuiView & owner)
: owner_(owner), lastSel_(-1), layoutItemDelegate_(new LayoutItemDelegate(this)), : owner_(owner), bar_(bar), lastSel_(-1),
layoutItemDelegate_(new LayoutItemDelegate(this)),
visibleCategories_(0), inShowPopup_(false) visibleCategories_(0), inShowPopup_(false)
{ {
setSizeAdjustPolicy(QComboBox::AdjustToContents); setSizeAdjustPolicy(QComboBox::AdjustToContents);
@ -486,7 +487,10 @@ GuiLayoutBox::GuiLayoutBox(GuiView & owner)
view()->setItemDelegateForColumn(0, layoutItemDelegate_); view()->setItemDelegateForColumn(0, layoutItemDelegate_);
QObject::connect(this, SIGNAL(activated(int)), QObject::connect(this, SIGNAL(activated(int)),
this, SLOT(selected(int))); this, SLOT(selected(int)));
QObject::connect(bar_, SIGNAL(iconSizeChanged(QSize)),
this, SLOT(setIconSize(QSize)));
owner_.setLayoutDialog(this); owner_.setLayoutDialog(this);
updateContents(true); updateContents(true);
} }
@ -652,6 +656,14 @@ bool GuiLayoutBox::eventFilter(QObject * o, QEvent * e)
return QComboBox::eventFilter(o, e); return QComboBox::eventFilter(o, 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) void GuiLayoutBox::set(docstring const & layout)
{ {
@ -962,7 +974,7 @@ void GuiToolbar::add(ToolbarItem const & item)
addSeparator(); addSeparator();
break; break;
case ToolbarItem::LAYOUTS: case ToolbarItem::LAYOUTS:
layout_ = new GuiLayoutBox(owner_); layout_ = new GuiLayoutBox(this, owner_);
addWidget(layout_); addWidget(layout_);
break; break;
case ToolbarItem::MINIBUFFER: case ToolbarItem::MINIBUFFER:

View File

@ -44,7 +44,7 @@ class GuiLayoutBox : public QComboBox
{ {
Q_OBJECT Q_OBJECT
public: public:
GuiLayoutBox(GuiView &); GuiLayoutBox(GuiToolbar * bar, GuiView &);
/// select the right layout in the combobox. /// select the right layout in the combobox.
void set(docstring const & layout); void set(docstring const & layout);
@ -65,6 +65,8 @@ public:
private Q_SLOTS: private Q_SLOTS:
/// ///
void selected(int index); void selected(int index);
///
void setIconSize(QSize size);
private: private:
friend class LayoutItemDelegate; friend class LayoutItemDelegate;
@ -81,6 +83,8 @@ private:
/// ///
GuiView & owner_; GuiView & owner_;
/// ///
GuiToolbar * bar_;
///
DocumentClass const * text_class_; DocumentClass const * text_class_;
/// ///
Inset const * inset_; Inset const * inset_;
@ -119,17 +123,22 @@ public:
/// ///
GuiCommandBuffer * commandBuffer() { return command_buffer_; } GuiCommandBuffer * commandBuffer() { return command_buffer_; }
///
Action * addItem(ToolbarItem const & item); Action * addItem(ToolbarItem const & item);
Q_SIGNALS: Q_SIGNALS:
///
void updated(); void updated();
private: private:
///
QList<Action *> actions_; QList<Action *> actions_;
///
GuiView & owner_; GuiView & owner_;
///
GuiLayoutBox * layout_; GuiLayoutBox * layout_;
///
GuiCommandBuffer * command_buffer_; GuiCommandBuffer * command_buffer_;
}; };