diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-10-19 01:34:57 +0300 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-10-19 14:04:38 +0300 |
commit | e9673938fb886a829e64ac595f96611dd14934fc (patch) | |
tree | 78809d1cb46232cf9f8a7615635c979478162623 | |
parent | 305a35a48c17b1e5fa26347a1f4006033c827b6c (diff) | |
download | subsurface-e9673938fb886a829e64ac595f96611dd14934fc.tar.gz |
printoptions.cpp: correctly remember the last selected template
To find the last selected template index in the combo box,
comparing against `printOptions->p_template` would work fine,
except the `on_printTemplate_currentIndexChanged()` slot updates
`printOptions->p_template` each time QComboBox::addItem() is
called. This makes the `for` loop to add new combo box items
and find the index of the last selected template not possible.
To work around the issue, a local QString variable `storedTemplate`
is introduced and it does not change during the `for` loop.
Fixes #595
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
-rw-r--r-- | desktop-widgets/printoptions.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/desktop-widgets/printoptions.cpp b/desktop-widgets/printoptions.cpp index 77920f888..b4862e79e 100644 --- a/desktop-widgets/printoptions.cpp +++ b/desktop-widgets/printoptions.cpp @@ -53,13 +53,15 @@ void PrintOptions::setupTemplates() QStringList currList = printOptions->type == print_options::DIVELIST ? grantlee_templates : grantlee_statistics_templates; + // temp. store the template from options, as addItem() updates it via: + // on_printTemplate_currentIndexChanged() + QString storedTemplate = printOptions->p_template; qSort(currList); int current_index = 0; ui.printTemplate->clear(); Q_FOREACH(const QString& theme, currList) { - if (theme == printOptions->p_template){ + if (theme == storedTemplate) // find the stored template in the list current_index = currList.indexOf(theme); - } ui.printTemplate->addItem(theme.split('.')[0], theme); } ui.printTemplate->setCurrentIndex(current_index); |