aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorin1tiate <32779090+in1tiate@users.noreply.github.com>2021-01-09 09:11:57 -0600
committerGitHub <noreply@github.com>2021-01-09 18:11:57 +0300
commitfc4e707381d6524ea3f413b49f486b44daae47b7 (patch)
treed667931f5c1d2ea83dcd8ac18116eff5153a3976
parent079c45e298e4198b9c6828603a3e9a71b07a08a7 (diff)
Move user-made iniswaps to a global configuration file and make character folder iniswap files immutable (#350)
* add default iniswap file * switch to using base/iniswaps.ini for user iniswaps
-rw-r--r--src/courtroom.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index e1ac8e47..9b69bd9b 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -697,7 +697,7 @@ void Courtroom::set_widgets()
tr("Set an 'iniswap', or an alternative character folder to refer to "
"from your current character.\n"
"Edit by typing and pressing Enter, [X] to remove. This saves to your "
- "base/characters/<charname>/iniswaps.ini"));
+ "base/iniswaps.ini"));
set_size_and_pos(ui_iniswap_remove, "iniswap_remove");
ui_iniswap_remove->setText("X");
@@ -3814,7 +3814,8 @@ void Courtroom::set_iniswap_dropdown()
return;
}
QStringList iniswaps = ao_app->get_list_file(
- ao_app->get_character_path(char_list.at(m_cid).name, "iniswaps.ini"));
+ ao_app->get_character_path(char_list.at(m_cid).name, "iniswaps.ini")) + ao_app->get_list_file(ao_app->get_base_path() + "iniswaps.ini");
+ iniswaps.removeDuplicates();
iniswaps.prepend(char_list.at(m_cid).name);
if (iniswaps.size() <= 0) {
ui_iniswap_dropdown->hide();
@@ -3844,14 +3845,15 @@ void Courtroom::on_iniswap_dropdown_changed(int p_index)
ao_app->set_char_ini(char_list.at(m_cid).name, iniswap, "name", "Options");
QStringList swaplist;
+ QStringList defswaplist = ao_app->get_list_file(ao_app->get_character_path(char_list.at(m_cid).name, "iniswaps.ini"));
for (int i = 0; i < ui_iniswap_dropdown->count(); ++i) {
QString entry = ui_iniswap_dropdown->itemText(i);
- if (!swaplist.contains(entry) && entry != char_list.at(m_cid).name)
+ if (!swaplist.contains(entry) && entry != char_list.at(m_cid).name && !defswaplist.contains(entry))
swaplist.append(entry);
}
ao_app->write_to_file(
swaplist.join("\n"),
- ao_app->get_character_path(char_list.at(m_cid).name, "iniswaps.ini"));
+ ao_app->get_base_path() + "iniswaps.ini");
ui_iniswap_dropdown->blockSignals(true);
ui_iniswap_dropdown->setCurrentIndex(p_index);
ui_iniswap_dropdown->blockSignals(false);