* added WidgetFlags argument to DockView to set Qt::Drawer flag where needed

* added Qt::Drawer flag to TOC
* reverted Jürgen's patch (i.e. the source view is docked below the text again),
  wide drawers are not Mac-like (tm)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18557 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Stefan Schimanski 2007-05-29 11:38:28 +00:00
parent e19509df72
commit 3033b52c1c
2 changed files with 12 additions and 8 deletions

View File

@ -243,14 +243,8 @@ Dialogs::DialogPtr Dialogs::build(string const & name)
QViewSource * qvs = new QViewSource(*dialog); QViewSource * qvs = new QViewSource(*dialog);
dialog->setController(qvs); dialog->setController(qvs);
GuiView & gui_view = static_cast<GuiView &>(lyxview_); GuiView & gui_view = static_cast<GuiView &>(lyxview_);
#ifdef Q_WS_MACX
// Mac uses a drawer that should be on the right.
dialog->setView(new DockView<QViewSource, QViewSourceDialog>(
*dialog, qvs, &gui_view, _("LaTeX Source")));
#else
dialog->setView(new DockView<QViewSource, QViewSourceDialog>( dialog->setView(new DockView<QViewSource, QViewSourceDialog>(
*dialog, qvs, &gui_view, _("LaTeX Source"), Qt::BottomDockWidgetArea)); *dialog, qvs, &gui_view, _("LaTeX Source"), Qt::BottomDockWidgetArea));
#endif
dialog->bc().bp(new OkCancelPolicy); dialog->bc().bp(new OkCancelPolicy);
} else if (name == "mathdelimiter") { } else if (name == "mathdelimiter") {
dialog->setController(new ControlMath(*dialog)); dialog->setController(new ControlMath(*dialog));
@ -311,8 +305,14 @@ Dialogs::DialogPtr Dialogs::build(string const & name)
GuiView & gui_view = static_cast<GuiView &>(lyxview_); GuiView & gui_view = static_cast<GuiView &>(lyxview_);
QToc * qtoc = new QToc(*dialog, &gui_view); QToc * qtoc = new QToc(*dialog, &gui_view);
dialog->setController(qtoc); dialog->setController(qtoc);
#ifdef Q_WS_MACX
// On Mac show as a drawer at the right
dialog->setView(new DockView<QToc, TocWidget>(
*dialog, qtoc, &gui_view, _("Outline"), Qt::RightDockWidgetArea, Qt::Drawer));
#else
dialog->setView(new DockView<QToc, TocWidget>( dialog->setView(new DockView<QToc, TocWidget>(
*dialog, qtoc, &gui_view, _("Outline"))); *dialog, qtoc, &gui_view, _("Outline")));
#endif
dialog->bc().bp(new OkCancelPolicy); dialog->bc().bp(new OkCancelPolicy);
} else if (name == "url") { } else if (name == "url") {
dialog->setController(new ControlCommand(*dialog, name, name)); dialog->setController(new ControlCommand(*dialog, name, name));

View File

@ -35,10 +35,14 @@ public:
Controller * form, ///< Associated model/controller Controller * form, ///< Associated model/controller
QMainWindow * parent, ///< the main window where to dock. QMainWindow * parent, ///< the main window where to dock.
docstring const & title, ///< Window title (shown in the top title bar). 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)); widget_.reset(new Widget(form));
setWidget(widget_.get()); setWidget(widget_.get());
parent->addDockWidget(area, this); parent->addDockWidget(area, this);