]> 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 24d072081bf57fd54f6475146f022f353a19f029..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,24 +49,8 @@ GuiToc::~GuiToc()
 
 void GuiToc::updateView()
 {
-#ifndef Q_WS_MACX
-               widget_->updateView();
-               return;
-#endif
-
        widget_->updateView();
-       // Special code for Mac drawer.
-       if (windowFlags() & Qt::Drawer && lyxview().isFullScreen()) {
-               setWindowFlags(Qt::Widget);
-               setFeatures(DockWidgetClosable);
-               // Setting features hides the dialog, see Qt's doc.
-               show();
-       } else if (!(windowFlags() & Qt::Drawer)) {
-               setWindowFlags(Qt::Drawer);
-               setFeatures(NoDockWidgetFeatures);
-               // Setting features hides the dialog, see Qt's doc.
-               show();
-       }
+       return;
 }
 
 
@@ -83,23 +68,48 @@ void GuiToc::dispatchParams()
 
 void GuiToc::enableView(bool enable)
 {
-       widget_->setEnabled(enable);
+       if (!enable)
+               // In the opposite case, updateView() will be called anyway.
+               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;
 }
 
 
 } // namespace frontend
 } // namespace lyx
 
-#include "GuiToc_moc.cpp"
+#include "moc_GuiToc.cpp"