]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiSendto.cpp
Use <cstdint> instead of <boost/cstdint.hpp>
[lyx.git] / src / frontends / qt4 / GuiSendto.cpp
index 408b5a4f124534cfce20e894b7cf47636f23f980..a42bbb472cc03bdca08c88367cb5f83039702232 100644 (file)
 
 #include "Buffer.h"
 #include "BufferParams.h"
+#include "Converter.h"
 #include "Format.h"
 #include "FuncRequest.h"
 
-#include "support/qstring_helpers.h"
 #include "support/filetools.h"
+#include "support/gettext.h"
+#include "support/qstring_helpers.h"
+
+#include <algorithm>
 
 #include <QLineEdit>
 #include <QListWidget>
@@ -34,13 +38,12 @@ namespace frontend {
 
 
 GuiSendTo::GuiSendTo(GuiView & lv)
-       : GuiDialog(lv, "sendto", qt_("Export or Send Document"))
+       : GuiDialog(lv, "sendto", qt_("Export or Send Document")), format_(0)
 {
        setupUi(this);
 
-       connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK()));
-       connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply()));
-       connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose()));
+       connect(buttonBox, SIGNAL(clicked(QAbstractButton *)),
+               this, SLOT(slotButtonBox(QAbstractButton *)));
 
        connect(formatLW, SIGNAL(itemClicked(QListWidgetItem *)),
                this, SLOT(slotFormatHighlighted(QListWidgetItem *)));
@@ -50,13 +53,13 @@ GuiSendTo::GuiSendTo(GuiView & lv)
                this, SLOT(changed_adaptor()));
        connect(formatLW, SIGNAL(itemSelectionChanged()),
                this, SLOT(changed_adaptor()));
-       connect(commandCO, SIGNAL(textChanged(QString)),
+       connect(commandCO, SIGNAL(editTextChanged(QString)),
                this, SLOT(changed_adaptor()));
 
        bc().setPolicy(ButtonPolicy::OkApplyCancelPolicy);
-       bc().setOK(okPB);
-       bc().setApply(applyPB);
-       bc().setCancel(closePB);
+       bc().setOK(buttonBox->button(QDialogButtonBox::Ok));
+       bc().setApply(buttonBox->button(QDialogButtonBox::Apply));
+       bc().setCancel(buttonBox->button(QDialogButtonBox::Cancel));
 }
 
 
@@ -68,43 +71,22 @@ void GuiSendTo::changed_adaptor()
 
 void GuiSendTo::updateContents()
 {
-       all_formats_ = buffer().params().exportableFormats(false);
-
+       FormatList const & all_formats =
+           buffer().params().exportableFormats(false);
        // Save the current selection if any
-       Format const * current_format = 0;
+       Format const * current_format = nullptr;
        int const line = formatLW->currentRow();
-       if (line >= 0 && line <= formatLW->count()
+       if (line >= 0 && static_cast<unsigned int>(line) < all_formats.size()
            && formatLW->selectedItems().size() > 0)
-               current_format = all_formats_[line];
-
-       // Check whether the current contents of the browser will be
-       // changed by loading the contents of formats
-       vector<string> keys;
-       keys.resize(all_formats_.size());
-
-       vector<string>::iterator result = keys.begin();
-       vector<Format const *>::const_iterator it  = all_formats_.begin();
-       vector<Format const *>::const_iterator end = all_formats_.end();
-
-       int current_line = -1;
-       for (int ln = 0; it != end; ++it, ++result, ++ln) {
-               *result = (*it)->prettyname();
-               if (current_format 
-                   && (*it)->prettyname() == current_format->prettyname())
-                       current_line = ln;
-       }
-
-       // Reload the browser
+               current_format = all_formats[line];
+       // Reset the list widget
        formatLW->clear();
-
-       for (vector<string>::const_iterator it = keys.begin();
-            it != keys.end(); ++it) {
-               formatLW->addItem(qt_(*it));
+       for (Format const * f : all_formats) {
+               formatLW->addItem(toqstr(translateIfPossible(f->prettyname())));
+               // Restore the selection
+               if (current_format && f->prettyname() == current_format->prettyname())
+                       formatLW->setCurrentRow(formatLW->count() - 1);
        }
-
-       // Restore the selection
-       if (current_line > -1)
-               formatLW->setCurrentItem(formatLW->item(current_line));
 }
 
 
@@ -119,7 +101,9 @@ void GuiSendTo::applyView()
        if (line < 0 || line > formatLW->count())
                return;
 
-       format_ = all_formats_[line];
+       FormatList const & all_formats =
+           buffer().params().exportableFormats(false);
+       format_ = all_formats[line];
        command_ = command;
 }
 
@@ -128,7 +112,7 @@ bool GuiSendTo::isValid()
 {
        int const line = formatLW->currentRow();
 
-       if (line < 0 || line > int(formatLW->count()))
+       if (line < 0 || (line > int(formatLW->count())))
                return false;
 
        return (formatLW->selectedItems().size() > 0
@@ -158,14 +142,14 @@ void GuiSendTo::dispatchParams()
        if (!format_ || format_->name().empty())
                return;
 
-       string data = format_->name();
+       string sdata = format_->name();
        if (!command_.isEmpty())
-               data += " " + fromqstr(command_);
+               sdata += " " + fromqstr(command_);
 
        FuncCode const lfun = command_.isEmpty() ?
                LFUN_BUFFER_EXPORT : getLfun();
 
-       dispatch(FuncRequest(lfun, data));
+       dispatch(FuncRequest(lfun, sdata));
 }
 
 Dialog * createGuiSendTo(GuiView & lv) { return new GuiSendTo(lv); }