* 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);
dialog->setController(qvs);
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, 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<GuiView &>(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<QToc, TocWidget>(
*dialog, qtoc, &gui_view, _("Outline"), Qt::RightDockWidgetArea, Qt::Drawer));
#else
dialog->setView(new DockView<QToc, TocWidget>(
*dialog, qtoc, &gui_view, _("Outline")));
#endif
dialog->bc().bp(new OkCancelPolicy);
} else if (name == "url") {
dialog->setController(new ControlCommand(*dialog, name, name));

View File

@ -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);