]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Dialogs.cpp
next one
[lyx.git] / src / frontends / Dialogs.cpp
index 92d4fdd2adc912acda5bacb7887debdf05337e0e..9095d9236926810c0d55db67fa47260c91bc48de 100644 (file)
@@ -14,8 +14,6 @@
 
 #include "Dialogs.h"
 
-#include "callback.h"
-
 #include "controllers/Dialog.h"
 
 #include <boost/signal.hpp>
@@ -25,12 +23,13 @@ using std::string;
 
 namespace lyx {
 
+extern bool quitting;
+
 namespace frontend {
 
 Dialogs::Dialogs(LyXView & lyxview)
        : lyxview_(lyxview), in_show_(false)
-{
-}
+{}
 
 
 Dialog * Dialogs::find_or_build(string const & name)
@@ -44,37 +43,22 @@ Dialog * Dialogs::find_or_build(string const & name)
        if (it != dialogs_.end())
                return it->second.get();
 
-       dialogs_[name] = build(name);
+       dialogs_[name].reset(build(name));
        return dialogs_[name].get();
 }
 
 
-void Dialogs::show(string const & name, string const & data)
-{
-       if (in_show_) {
-               return;
-       }
-       in_show_ = true;
-       Dialog * dialog = find_or_build(name);
-       if (dialog) {
-               // FIXME! Should check that the dialog is NOT an inset dialog.
-               dialog->show(data);
-       }
-       in_show_ = false;
-}
-
-
 void Dialogs::show(string const & name, string const & data, Inset * inset)
 {
-       if (in_show_) {
+       if (in_show_)
                return;
-       }
+
        in_show_ = true;
        Dialog * dialog = find_or_build(name);
        if (dialog) {
-               // FIXME! Should check that the dialog IS an inset dialog.
-               dialog->show(data);
-               open_insets_[name] = inset;
+               dialog->showData(data);
+               if (inset)
+                       open_insets_[name] = inset;
        }
        in_show_ = false;
 }
@@ -86,7 +70,7 @@ bool Dialogs::visible(string const & name) const
                dialogs_.find(name);
        if (it == dialogs_.end())
                return false;
-       return it->second.get()->isVisible();
+       return it->second.get()->isVisibleView();
 }
 
 
@@ -98,8 +82,8 @@ void Dialogs::update(string const & name, string const & data)
                return;
 
        Dialog * const dialog = it->second.get();
-       if (dialog->isVisible())
-               dialog->update(data);
+       if (dialog->isVisibleView())
+               dialog->updateData(data);
 }
 
 
@@ -121,7 +105,7 @@ void Dialogs::hide(string const & name, Inset* inset)
                return;
 
        Dialog * const dialog = it->second.get();
-       if (dialog->isVisible())
+       if (dialog->isVisibleView())
                dialog->hide();
        open_insets_[name] = 0;
 }
@@ -153,9 +137,8 @@ void Dialogs::hideAll() const
        std::map<string, DialogPtr>::const_iterator it  = dialogs_.begin();
        std::map<string, DialogPtr>::const_iterator end = dialogs_.end();
 
-       for(; it != end; ++it) {
+       for(; it != end; ++it)
                it->second->hide();
-       }
 }
 
 
@@ -165,7 +148,7 @@ void Dialogs::hideBufferDependent() const
        std::map<string, DialogPtr>::const_iterator end = dialogs_.end();
 
        for(; it != end; ++it) {
-               Dialog * dialog =  it->second.get();
+               Dialog * dialog = it->second.get();
                if (dialog->controller().isBufferDependent())
                        dialog->hide();
        }
@@ -178,17 +161,17 @@ void Dialogs::updateBufferDependent(bool switched) const
        std::map<string, DialogPtr>::const_iterator end = dialogs_.end();
 
        for(; it != end; ++it) {
-               Dialog * dialog =  it->second.get();
+               Dialog * dialog = it->second.get();
                if (switched && dialog->controller().isBufferDependent()) {
-                       if (dialog->isVisible() && dialog->controller().initialiseParams(""))
-                               dialog->view().update();
+                       if (dialog->isVisibleView() && dialog->controller().initialiseParams(""))
+                               dialog->updateView();
                        else
                                dialog->hide();
                } else {
                        // A bit clunky, but the dialog will request
                        // that the kernel provides it with the necessary
                        // data.
-                       dialog->RestoreButton();
+                       dialog->slotRestore();
                }
        }
 }
@@ -199,9 +182,8 @@ void Dialogs::redraw() const
        std::map<string, DialogPtr>::const_iterator it  = dialogs_.begin();
        std::map<string, DialogPtr>::const_iterator end = dialogs_.end();
 
-       for(; it != end; ++it) {
+       for(; it != end; ++it)
                it->second->redraw();
-       }
 }
 
 
@@ -212,7 +194,7 @@ void Dialogs::checkStatus()
 
        for(; it != end; ++it) {
                Dialog * const dialog = it->second.get();
-               if (dialog->isVisible())
+               if (dialog && dialog->isVisibleView())
                        dialog->checkStatus();
        }
 }