diff --git a/src/frontends/qt4/Dialogs.cpp b/src/frontends/qt4/Dialogs.cpp index 619e0ed6ac..977d7f3345 100644 --- a/src/frontends/qt4/Dialogs.cpp +++ b/src/frontends/qt4/Dialogs.cpp @@ -243,14 +243,8 @@ Dialogs::DialogPtr Dialogs::build(string const & name) QViewSource * qvs = new QViewSource(*dialog); dialog->setController(qvs); GuiView & gui_view = static_cast(lyxview_); -#ifdef Q_WS_MACX - // Mac uses a drawer that should be on the right. - dialog->setView(new DockView( - *dialog, qvs, &gui_view, _("LaTeX Source"))); -#else dialog->setView(new DockView( *dialog, qvs, &gui_view, _("LaTeX Source"), Qt::BottomDockWidgetArea)); -#endif dialog->bc().bp(new OkCancelPolicy); } else if (name == "mathdelimiter") { dialog->setController(new ControlMath(*dialog)); @@ -311,8 +305,14 @@ Dialogs::DialogPtr Dialogs::build(string const & name) GuiView & gui_view = static_cast(lyxview_); QToc * qtoc = new QToc(*dialog, &gui_view); dialog->setController(qtoc); +#ifdef Q_WS_MACX + // On Mac show as a drawer at the right + dialog->setView(new DockView( + *dialog, qtoc, &gui_view, _("Outline"), Qt::RightDockWidgetArea, Qt::Drawer)); +#else dialog->setView(new DockView( *dialog, qtoc, &gui_view, _("Outline"))); +#endif dialog->bc().bp(new OkCancelPolicy); } else if (name == "url") { dialog->setController(new ControlCommand(*dialog, name, name)); diff --git a/src/frontends/qt4/DockView.h b/src/frontends/qt4/DockView.h index d582081c71..d83b75814b 100644 --- a/src/frontends/qt4/DockView.h +++ b/src/frontends/qt4/DockView.h @@ -35,10 +35,14 @@ public: Controller * form, ///< Associated model/controller QMainWindow * parent, ///< the main window where to dock. docstring const & title, ///< Window title (shown in the top title bar). - Qt::DockWidgetArea area = Qt::LeftDockWidgetArea + Qt::DockWidgetArea area = Qt::LeftDockWidgetArea, ///< Position of the dock (and also drawer) + Qt::WindowFlags flags = 0 ) - : QDockWidget(toqstr(title), parent), Dialog::View(dialog, title) + : QDockWidget(toqstr(title), parent, flags), + Dialog::View(dialog, title) { + if (flags & Qt::Drawer) + setFeatures(QDockWidget::NoDockWidgetFeatures); widget_.reset(new Widget(form)); setWidget(widget_.get()); parent->addDockWidget(area, this);