]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiInclude.cpp
do what the FIXME suggested
[lyx.git] / src / frontends / qt4 / GuiInclude.cpp
index 66a49dfb8f007b300bc6dd8af0101e1375062457..23a79015f3b9ac670996f99e775a5c9d863690de 100644 (file)
 
 #include "GuiInclude.h"
 
-#include "frontend_helpers.h"
-
 #include "Buffer.h"
 #include "Format.h"
 #include "FuncRequest.h"
-#include "gettext.h"
+#include "support/gettext.h"
 #include "LyXRC.h"
 
 #include "qt_helpers.h"
 
 #include <QPushButton>
 #include <QCheckBox>
-#include <QCloseEvent>
 #include <QLineEdit>
 
 #include <utility>
 
-using std::string;
-using std::vector;
-using std::pair;
-using std::string;
-
+using namespace std;
+using namespace lyx::support;
+using namespace lyx::support::os;
 
 namespace lyx {
 namespace frontend {
 
-using support::FileFilterList;
-using support::FileName;
-using support::makeAbsPath;
-using support::onlyPath;
-using support::os::internal_path;
-using support::prefixIs;
-using support::getStringFromVector;
-using support::getVectorFromString;
-
 
-/// Flags what action is taken by Kernel::dispatch()
-static std::string const lfun_name_ = "include";
-
-
-GuiInclude::GuiInclude(LyXView & lv)
-       : GuiDialog(lv, "include"), params_(INCLUDE_CODE)
+GuiInclude::GuiInclude(GuiView & lv)
+       : GuiCommand(lv, "include", qt_("Child Document"))
 {
        setupUi(this);
-       setViewTitle(_("Child Document"));
 
        connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK()));
        connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose()));
@@ -77,6 +58,7 @@ GuiInclude::GuiInclude(LyXView & lv)
                this, SLOT(change_adaptor()));
        connect(editPB, SIGNAL(clicked()), this, SLOT(edit()));
        connect(browsePB, SIGNAL(clicked()), this, SLOT(browse()));
+       connect(embedCB, SIGNAL(toggled(bool)), this, SLOT(change_adaptor()));
        connect(typeCO, SIGNAL(activated(int)), this, SLOT(change_adaptor()));
        connect(typeCO, SIGNAL(activated(int)), this, SLOT(typeChanged(int)));
        connect(previewCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
@@ -144,13 +126,6 @@ void GuiInclude::set_listings_msg()
 }
 
 
-void GuiInclude::closeEvent(QCloseEvent * e)
-{
-       slotClose();
-       e->accept();
-}
-
-
 void GuiInclude::typeChanged(int v)
 {
        switch (v) {
@@ -195,6 +170,7 @@ void GuiInclude::typeChanged(int v)
 void GuiInclude::updateContents()
 {
        filenameED->setText(toqstr(params_["filename"]));
+       embedCB->setCheckState(params_["embed"].empty() ?  Qt::Unchecked : Qt::Checked);
 
        visiblespaceCB->setChecked(false);
        visiblespaceCB->setEnabled(false);
@@ -235,7 +211,7 @@ void GuiInclude::updateContents()
                typeCO->setCurrentIndex(3);
                listingsGB->setEnabled(true);
                listingsED->setEnabled(true);
-               InsetListingsParams par(params_.getOptions());
+               InsetListingsParams par(to_utf8(params_["lstparams"]));
                // extract caption and label and put them into their respective editboxes
                vector<string> pars = getVectorFromString(par.separatedParams(), "\n");
                for (vector<string>::iterator it = pars.begin();
@@ -264,6 +240,7 @@ void GuiInclude::updateContents()
 void GuiInclude::applyView()
 {
        params_["filename"] = from_utf8(internal_path(fromqstr(filenameED->text())));
+       params_["embed"] = embedCB->checkState() == Qt::Checked ? _("true") : _("false");
        params_.preview(previewCB->isChecked());
 
        int const item = typeCO->currentIndex();
@@ -281,7 +258,8 @@ void GuiInclude::applyView()
                        par.addParam("caption", "{" + caption + "}");
                if (!label.empty())
                        par.addParam("label", "{" + label + "}");
-               params_.setOptions(par.params());
+               string const listparams = par.params();
+               params_["lstparams"] = from_ascii(listparams);
        } else {
                if (visiblespaceCB->isChecked())
                        params_.setCmdName("verbatiminput*");
@@ -327,25 +305,6 @@ bool GuiInclude::isValid()
 }
 
 
-bool GuiInclude::initialiseParams(string const & data)
-{
-       InsetCommandMailer::string2params(lfun_name_, data, params_);
-       return true;
-}
-
-
-void GuiInclude::clearParams()
-{
-       params_.clear();
-}
-
-
-void GuiInclude::dispatchParams()
-{
-       dispatch(FuncRequest(getLfun(), InsetCommandMailer::params2string(lfun_name_, params_)));
-}
-
-
 docstring GuiInclude::browse(docstring const & in_name, Type in_type) const
 {
        docstring const title = _("Select document to include");
@@ -362,13 +321,10 @@ docstring GuiInclude::browse(docstring const & in_name, Type in_type) const
                break;
        }
 
-       pair<docstring, docstring> dir1(_("Documents|#o#O"),
-               from_utf8(lyxrc.document_path));
-
        docstring const docpath = from_utf8(onlyPath(buffer().absFileName()));
 
-       return browseRelFile(in_name, docpath, title,
-                            filters, false, dir1);
+       return browseRelFile(in_name, docpath, title, filters, false, 
+               _("Documents|#o#O"), from_utf8(lyxrc.document_path));
 }
 
 
@@ -385,7 +341,7 @@ void GuiInclude::edit(string const & file)
 }
 
 
-Dialog * createGuiInclude(LyXView & lv) { return new GuiInclude(lv); }
+Dialog * createGuiInclude(GuiView & lv) { return new GuiInclude(lv); }
 
 
 } // namespace frontend