]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiToc.cpp
Move the buffer related part from GuiView::renameBuffer to Buffer::saveAs.
[lyx.git] / src / frontends / qt4 / GuiToc.cpp
index 3ba5df32c80ef33f48a3734552d22ead0f526252..9711bb68f6c8be99d9c71f82dc97f4dc35c32ab0 100644 (file)
@@ -33,10 +33,11 @@ namespace lyx {
 namespace frontend {
 
 GuiToc::GuiToc(GuiView & parent, Qt::DockWidgetArea area, Qt::WindowFlags flags)
-       : DockView(parent, "toc", qt_("Outline"), area, flags)
+       : DockView(parent, "toc", qt_("Outline"), area, flags), is_closing_(false)
 {
        widget_ = new TocWidget(parent, this);
        setWidget(widget_);
+       setFocusProxy(widget_);
 }
 
 
@@ -48,27 +49,8 @@ GuiToc::~GuiToc()
 
 void GuiToc::updateView()
 {
-#ifndef Q_WS_MACX
        widget_->updateView();
        return;
-#endif
-
-       widget_->updateView();
-
-       // For Mac: switch to a docked TOC in fullscreen mode.
-       // We use the features() here instead of WindowFlags because
-       // the latter are not reliable (always returns Qt::Drawer).
-       if (!(features() & DockWidgetClosable) && lyxview().isFullScreen()) {
-               setWindowFlags(Qt::Widget);
-               setFeatures(DockWidgetClosable);
-               // Setting features hides the dialog, see Qt's doc.
-               show();
-       } else if ((features() & DockWidgetClosable) && !lyxview().isFullScreen()) {
-               setWindowFlags(Qt::Drawer);
-               setFeatures(NoDockWidgetFeatures);
-               // Setting features hides the dialog, see Qt's doc.
-               show();
-       }
 }
 
 
@@ -91,21 +73,39 @@ void GuiToc::enableView(bool enable)
                widget_->updateView();
 }
 
+
+void GuiToc::closeEvent(QCloseEvent * /*event*/)
+{
+       is_closing_ = true;
+       ((GuiView *)parent())->updateToolbars();
+       is_closing_ = false;
+}
+
+
 void GuiToc::doDispatch(Cursor & cur, FuncRequest const & cmd)
 {
        widget_->doDispatch(cur, cmd);
 }
 
 
+bool GuiToc::getStatus(Cursor & cur, FuncRequest const & cmd,
+       FuncStatus & status) const
+{
+       return widget_->getStatus(cur, cmd, status);
+}
+
+
 Dialog * createGuiToc(GuiView & lv)
 {
-       GuiView & guiview = static_cast<GuiView &>(lv);
+       GuiToc * toc;
 #ifdef Q_WS_MACX
-       // On Mac show as a drawer at the right
-       return new GuiToc(guiview, Qt::RightDockWidgetArea, Qt::Drawer);
+       // On Mac show at the right and floating
+       toc = new GuiToc(lv, Qt::RightDockWidgetArea);
+       toc->setFloating(true);
 #else
-       return new GuiToc(guiview);
+       toc = new GuiToc(lv);
 #endif
+       return toc;
 }