#include "GuiCounter.h"
+#include "GuiView.h"
#include "qt_helpers.h"
#include "Buffer.h"
#include "insets/InsetCommandParams.h"
#include "support/convert.h"
+#include "support/debug.h"
#include "support/gettext.h"
#include "support/lstrings.h"
this, SIGNAL(changed()));
// These are hardcoded and do not change
- std::map<std::string, std::string> const & ct =
+ std::vector<std::pair<std::string, std::string>> const & ct =
InsetCounter::counterTable;
actionCB->clear();
for (auto const & c : ct) {
Counters const & cntrs =
bv->buffer().params().documentClass().counters();
std::vector<docstring> counts = cntrs.listOfCounters();
+ // We use an intermediate map in order to sort at translated GUI strings.
+ QMap<QString, QString> items;
for (auto const & c : counts) {
docstring const & guiname = cntrs.guiName(c);
- counterCB->addItem(toqstr(guiname), toqstr(c));
+ items.insert(qt_(toqstr(guiname)), toqstr(c));
}
+ for (QMap<QString, QString>::const_iterator it = items.constBegin();
+ it != items.constEnd(); ++it)
+ counterCB->addItem(it.key(), it.value());
}
counterCB->setEnabled(!readonly);
actionCB->setEnabled(!readonly);
valueSB->setEnabled(!readonly && (cmdIsSet || cmdIsAddTo));
- if (cmdIsAddTo)
- valueSB->setRange(-10000, 10000);
- else
- valueSB->setRange(0, 10000);
+ // enumi, for example, can be negative.
+ valueSB->setRange(-10000, 10000);
return InsetParamsWidget::checkWidgets() && !readonly &&
!counterCB->currentText().isEmpty() &&