aboutsummaryrefslogtreecommitdiff
path: root/text_file_functions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'text_file_functions.cpp')
-rw-r--r--text_file_functions.cpp418
1 files changed, 234 insertions, 184 deletions
diff --git a/text_file_functions.cpp b/text_file_functions.cpp
index 1aebc35e..afe8fc30 100644
--- a/text_file_functions.cpp
+++ b/text_file_functions.cpp
@@ -1,98 +1,72 @@
-#include "aoapplication.h"
+#include "text_file_functions.h"
-#include "file_functions.h"
-
-#include <QTextStream>
-#include <QStringList>
-#include <QVector>
-#include <QDebug>
-#include <QColor>
-
-QString AOApplication::read_config(QString searchline)
+QString AOApplication::read_theme()
{
- QString return_value = "";
-
- QFile config_file(get_base_path() + "config.ini");
- if (!config_file.open(QIODevice::ReadOnly))
- return return_value;
-
- QTextStream in(&config_file);
-
- while(!in.atEnd())
- {
- QString f_line = in.readLine().trimmed();
-
- if (!f_line.startsWith(searchline))
- continue;
-
- QStringList line_elements = f_line.split("=");
-
- if (line_elements.at(0).trimmed() != searchline)
- continue;
-
- if (line_elements.size() < 2)
- continue;
-
- return_value = line_elements.at(1).trimmed();
- break;
- }
-
- config_file.close();
-
- return return_value;
+ QString result = configini->value("theme", "default").value<QString>();
+ return result;
}
-QString AOApplication::read_theme()
+int AOApplication::read_blip_rate()
{
- QString result = read_config("theme");
-
- if (result == "")
- return "default";
- else
- return result;
+ int result = configini->value("blip_rate", 1).toInt();
+ return result;
}
QString AOApplication::get_ooc_name()
{
- return read_config("ooc_name");
+ QString result = configini->value("ooc_name").value<QString>();
+ return result;
}
-int AOApplication::read_blip_rate()
+int AOApplication::get_default_music()
{
- QString result = read_config("blip_rate");
+ int result = configini->value("default_music", 50).toInt();
+ return result;
+}
- //note: the empty string converted to int will return 0
- if (result.toInt() <= 0)
- return 1;
- else
- return result.toInt();
+int AOApplication::get_default_sfx()
+{
+ int result = configini->value("default_sfx", 50).toInt();
+ return result;
}
-int AOApplication::get_default_music()
+int AOApplication::get_default_blip()
{
- QString f_result = read_config("default_music");
+ int result = configini->value("default_blip", 50).toInt();
+ return result;
+}
- if (f_result == "")
- return 50;
- else return f_result.toInt();
+int AOApplication::get_max_log_size()
+{
+ int result = configini->value("log_maximum", 200).toInt();
+ return result;
}
-int AOApplication::get_default_sfx()
+bool AOApplication::get_log_goes_downwards()
{
- QString f_result = read_config("default_sfx");
+ QString result = configini->value("log_goes_downwards", "false").value<QString>();
+ return result.startsWith("true");
+}
- if (f_result == "")
- return 50;
- else return f_result.toInt();
+bool AOApplication::get_showname_enabled_by_default()
+{
+ QString result = configini->value("show_custom_shownames", "false").value<QString>();
+ return result.startsWith("true");
}
-int AOApplication::get_default_blip()
+QString AOApplication::get_default_username()
{
- QString f_result = read_config("default_blip");
+ QString result = configini->value("default_username", "").value<QString>();
+ if (result.isEmpty())
+ return get_ooc_name();
+ else
+ return result;
+}
- if (f_result == "")
- return 50;
- else return f_result.toInt();
+QString AOApplication::get_audio_output_device()
+{
+ QString result = configini->value("default_audio_device", "default").value<QString>();
+ return result;
}
QStringList AOApplication::get_call_words()
@@ -174,46 +148,19 @@ QVector<server_type> AOApplication::read_serverlist_txt()
QString AOApplication::read_design_ini(QString p_identifier, QString p_design_path)
{
- QFile design_ini;
-
- design_ini.setFileName(p_design_path);
-
- if (!design_ini.open(QIODevice::ReadOnly))
- {
- return "";
- }
- QTextStream in(&design_ini);
-
- QString result = "";
-
- while (!in.atEnd())
- {
- QString f_line = in.readLine().trimmed();
-
- if (!f_line.startsWith(p_identifier))
- continue;
-
- QStringList line_elements = f_line.split("=");
-
- if (line_elements.at(0).trimmed() != p_identifier)
- continue;
-
- if (line_elements.size() < 2)
- continue;
-
- result = line_elements.at(1).trimmed();
- break;
+ QSettings settings(p_design_path, QSettings::IniFormat);
+ QVariant value = settings.value(p_identifier);
+ if (value.type() == QVariant::StringList) {
+ return value.toStringList().join(",");
+ } else {
+ return value.toString();
}
-
- design_ini.close();
-
- return result;
}
QPoint AOApplication::get_button_spacing(QString p_identifier, QString p_file)
{
- QString design_ini_path = get_theme_path() + p_file;
- QString default_path = get_default_theme_path() + p_file;
+ QString design_ini_path = get_theme_path(p_file);
+ QString default_path = get_default_theme_path(p_file);
QString f_result = read_design_ini(p_identifier, design_ini_path);
QPoint return_value;
@@ -242,8 +189,8 @@ QPoint AOApplication::get_button_spacing(QString p_identifier, QString p_file)
pos_size_type AOApplication::get_element_dimensions(QString p_identifier, QString p_file)
{
- QString design_ini_path = get_theme_path() + p_file;
- QString default_path = get_default_theme_path() + p_file;
+ QString design_ini_path = get_theme_path(p_file);
+ QString default_path = get_default_theme_path(p_file);
QString f_result = read_design_ini(p_identifier, design_ini_path);
pos_size_type return_value;
@@ -276,8 +223,8 @@ pos_size_type AOApplication::get_element_dimensions(QString p_identifier, QStrin
int AOApplication::get_font_size(QString p_identifier, QString p_file)
{
- QString design_ini_path = get_theme_path() + p_file;
- QString default_path = get_default_theme_path() + p_file;
+ QString design_ini_path = get_theme_path(p_file);
+ QString default_path = get_default_theme_path(p_file);
QString f_result = read_design_ini(p_identifier, design_ini_path);
if (f_result == "")
@@ -293,12 +240,77 @@ int AOApplication::get_font_size(QString p_identifier, QString p_file)
QColor AOApplication::get_color(QString p_identifier, QString p_file)
{
- QString design_ini_path = get_theme_path() + p_file;
- QString default_path = get_default_theme_path() + p_file;
+ QString design_ini_path = get_theme_path(p_file);
+ QString default_path = get_default_theme_path(p_file);
QString f_result = read_design_ini(p_identifier, design_ini_path);
+ QColor return_color(0, 0, 0);
+
+ if (f_result == "")
+ {
+ f_result = read_design_ini(p_identifier, default_path);
+
+ if (f_result == "")
+ return return_color;
+ }
+
+ QStringList color_list = f_result.split(",");
+
+ if (color_list.size() < 3)
+ return return_color;
+
+ return_color.setRed(color_list.at(0).toInt());
+ return_color.setGreen(color_list.at(1).toInt());
+ return_color.setBlue(color_list.at(2).toInt());
+
+ return return_color;
+}
+
+QColor AOApplication::get_chat_color(QString p_identifier, QString p_chat)
+{
QColor return_color(255, 255, 255);
+ if (p_identifier == "_inline_grey")
+ {
+ return_color = QColor(187, 187, 187);
+ }
+ else
+ {
+ switch (p_identifier.toInt()) {
+ case 1:
+ return_color = QColor(0, 255, 0);
+ break;
+ case 2:
+ return_color = QColor(255, 0, 0);
+ break;
+ case 3:
+ return_color = QColor(255, 165, 0);
+ break;
+ case 4:
+ return_color = QColor(45, 150, 255);
+ break;
+ case 5:
+ return_color = QColor(255, 255, 0);
+ break;
+ case 7:
+ return_color = QColor(255, 192, 203);
+ break;
+ case 8:
+ return_color = QColor(0, 255, 255);
+ break;
+ case 0:
+ case 6: // 6 is rainbow.
+ default:
+ return_color = QColor(255, 255, 255);
+ break;
+ }
+ }
+
+ p_identifier = p_identifier.prepend("c");
+ QString design_ini_path = get_base_path() + "misc/" + p_chat + "/config.ini";
+ QString default_path = get_base_path() + "misc/default/config.ini";
+ QString f_result = read_design_ini(p_identifier, design_ini_path);
+
if (f_result == "")
{
f_result = read_design_ini(p_identifier, default_path);
@@ -321,8 +333,8 @@ QColor AOApplication::get_color(QString p_identifier, QString p_file)
QString AOApplication::get_sfx(QString p_identifier)
{
- QString design_ini_path = get_theme_path() + "courtroom_sounds.ini";
- QString default_path = get_default_theme_path() + "courtroom_sounds.ini";
+ QString design_ini_path = get_theme_path("courtroom_sounds.ini");
+ QString default_path = get_default_theme_path("courtroom_sounds.ini");
QString f_result = read_design_ini(p_identifier, design_ini_path);
QString return_sfx = "";
@@ -340,61 +352,46 @@ QString AOApplication::get_sfx(QString p_identifier)
return return_sfx;
}
-//returns whatever is to the right of "search_line =" within target_tag and terminator_tag, trimmed
-//returns the empty string if the search line couldnt be found
-QString AOApplication::read_char_ini(QString p_char, QString p_search_line, QString target_tag, QString terminator_tag)
+QString AOApplication::get_sfx_suffix(QString sound_to_check)
{
- QString char_ini_path = get_character_path(p_char) + "char.ini";
-
- QFile char_ini;
-
- char_ini.setFileName(char_ini_path);
-
- if (!char_ini.open(QIODevice::ReadOnly))
- return "";
-
- QTextStream in(&char_ini);
-
- bool tag_found = false;
-
- while(!in.atEnd())
- {
- QString line = in.readLine();
-
- if (QString::compare(line, terminator_tag, Qt::CaseInsensitive) == 0)
- break;
-
- if (line.startsWith(target_tag, Qt::CaseInsensitive))
+ QString mp3_check = get_sounds_path(sound_to_check + ".mp3");
+ QString opus_check = get_sounds_path(sound_to_check + ".opus");
+ if (file_exists(opus_check))
{
- tag_found = true;
- continue;
+ return sound_to_check + ".opus";
}
+ else if (file_exists(mp3_check))
+ {
+ return sound_to_check + ".mp3";
+ }
+ return sound_to_check + ".wav";
+}
- if (!line.startsWith(p_search_line, Qt::CaseInsensitive))
- continue;
-
- QStringList line_elements = line.split("=");
-
- if (QString::compare(line_elements.at(0).trimmed(), p_search_line, Qt::CaseInsensitive) != 0)
- continue;
-
- if (line_elements.size() < 2)
- continue;
-
- if (tag_found)
+QString AOApplication::get_image_suffix(QString path_to_check)
+{
+ QString apng_check = get_sounds_path(path_to_check + ".apng");
+ if (file_exists(apng_check))
{
- char_ini.close();
- return line_elements.at(1).trimmed();
+ return path_to_check + ".apng";
}
- }
+ return path_to_check + ".gif";
+}
- char_ini.close();
- return "";
+
+//returns whatever is to the right of "search_line =" within target_tag and terminator_tag, trimmed
+//returns the empty string if the search line couldnt be found
+QString AOApplication::read_char_ini(QString p_char, QString p_search_line, QString target_tag)
+{
+ QSettings settings(get_character_path(p_char, "char.ini"), QSettings::IniFormat);
+ settings.beginGroup(target_tag);
+ QString value = settings.value(p_search_line).toString();
+ settings.endGroup();
+ return value;
}
QString AOApplication::get_char_name(QString p_char)
{
- QString f_result = read_char_ini(p_char, "name", "[Options]", "[Time]");
+ QString f_result = read_char_ini(p_char, "name", "Options");
if (f_result == "")
return p_char;
@@ -403,8 +400,11 @@ QString AOApplication::get_char_name(QString p_char)
QString AOApplication::get_showname(QString p_char)
{
- QString f_result = read_char_ini(p_char, "showname", "[Options]", "[Time]");
+ QString f_result = read_char_ini(p_char, "showname", "Options");
+ QString f_needed = read_char_ini(p_char, "needs_showname", "Options");
+ if (f_needed.startsWith("false"))
+ return "";
if (f_result == "")
return p_char;
else return f_result;
@@ -412,7 +412,7 @@ QString AOApplication::get_showname(QString p_char)
QString AOApplication::get_char_side(QString p_char)
{
- QString f_result = read_char_ini(p_char, "side", "[Options]", "[Time]");
+ QString f_result = read_char_ini(p_char, "side", "Options");
if (f_result == "")
return "wit";
@@ -421,7 +421,7 @@ QString AOApplication::get_char_side(QString p_char)
QString AOApplication::get_gender(QString p_char)
{
- QString f_result = read_char_ini(p_char, "gender", "[Options]", "[Time]");
+ QString f_result = read_char_ini(p_char, "gender", "Options");
if (f_result == "")
return "male";
@@ -430,22 +430,22 @@ QString AOApplication::get_gender(QString p_char)
QString AOApplication::get_chat(QString p_char)
{
- QString f_result = read_char_ini(p_char, "chat", "[Options]", "[Time]");
+ QString f_result = read_char_ini(p_char, "chat", "Options");
//handling the correct order of chat is a bit complicated, we let the caller do it
- return f_result.toLower();
+ return f_result;
}
QString AOApplication::get_char_shouts(QString p_char)
{
- QString f_result = read_char_ini(p_char, "shouts", "[Options]", "[Time]");
+ QString f_result = read_char_ini(p_char, "shouts", "Options");
- return f_result.toLower();
+ return f_result;
}
int AOApplication::get_preanim_duration(QString p_char, QString p_emote)
{
- QString f_result = read_char_ini(p_char, p_emote, "[Time]", "[Emotions]");
+ QString f_result = read_char_ini(p_char, p_emote, "Time");
if (f_result == "")
return -1;
@@ -454,7 +454,7 @@ int AOApplication::get_preanim_duration(QString p_char, QString p_emote)
int AOApplication::get_ao2_preanim_duration(QString p_char, QString p_emote)
{
- QString f_result = read_char_ini(p_char, "%" + p_emote, "[Time]", "[Emotions]");
+ QString f_result = read_char_ini(p_char, "%" + p_emote, "Time");
if (f_result == "")
return -1;
@@ -463,7 +463,7 @@ int AOApplication::get_ao2_preanim_duration(QString p_char, QString p_emote)
int AOApplication::get_emote_number(QString p_char)
{
- QString f_result = read_char_ini(p_char, "number", "[Emotions]", "[SoundN]");
+ QString f_result = read_char_ini(p_char, "number", "Emotions");
if (f_result == "")
return 0;
@@ -472,7 +472,7 @@ int AOApplication::get_emote_number(QString p_char)
QString AOApplication::get_emote_comment(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "Emotions");
QStringList result_contents = f_result.split("#");
@@ -486,7 +486,7 @@ QString AOApplication::get_emote_comment(QString p_char, int p_emote)
QString AOApplication::get_pre_emote(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "Emotions");
QStringList result_contents = f_result.split("#");
@@ -500,7 +500,7 @@ QString AOApplication::get_pre_emote(QString p_char, int p_emote)
QString AOApplication::get_emote(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "Emotions");
QStringList result_contents = f_result.split("#");
@@ -514,7 +514,7 @@ QString AOApplication::get_emote(QString p_char, int p_emote)
int AOApplication::get_emote_mod(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "Emotions");
QStringList result_contents = f_result.split("#");
@@ -528,7 +528,7 @@ int AOApplication::get_emote_mod(QString p_char, int p_emote)
int AOApplication::get_desk_mod(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[Emotions]", "[SoundN]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "Emotions");
QStringList result_contents = f_result.split("#");
@@ -544,7 +544,7 @@ int AOApplication::get_desk_mod(QString p_char, int p_emote)
QString AOApplication::get_sfx_name(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[SoundN]", "[SoundT]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "SoundN");
if (f_result == "")
return "1";
@@ -553,7 +553,7 @@ QString AOApplication::get_sfx_name(QString p_char, int p_emote)
int AOApplication::get_sfx_delay(QString p_char, int p_emote)
{
- QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "[SoundT]", "[TextDelay]");
+ QString f_result = read_char_ini(p_char, QString::number(p_emote + 1), "SoundT");
if (f_result == "")
return 1;
@@ -562,28 +562,78 @@ int AOApplication::get_sfx_delay(QString p_char, int p_emote)
int AOApplication::get_text_delay(QString p_char, QString p_emote)
{
- QString f_result = read_char_ini(p_char, p_emote, "[TextDelay]", "END_OF_FILE");
+ QString f_result = read_char_ini(p_char, p_emote, "TextDelay");
if (f_result == "")
return -1;
else return f_result.toInt();
}
-bool AOApplication::get_blank_blip()
+QString AOApplication::get_custom_realization(QString p_char)
{
- QString f_result = read_config("blank_blip");
+ QString f_result = read_char_ini(p_char, "realization", "Options");
+
+ if (f_result == "")
+ return get_sfx("realization");
+ else return f_result;
+}
- return f_result.startsWith("true");
+bool AOApplication::get_blank_blip()
+{
+ QString result = configini->value("blank_blip", "false").value<QString>();
+ return result.startsWith("true");
}
bool AOApplication::is_discord_enabled()
{
- QString f_result = read_config("discord");
- return !f_result.startsWith("false");
+ QString result = configini->value("discord", "true").value<QString>();
+ return result.startsWith("true");
+}
+
+bool AOApplication::get_casing_enabled()
+{
+ QString result = configini->value("casing_enabled", "false").value<QString>();
+ return result.startsWith("true");
}
-bool AOApplication::ic_scroll_down_enabled()
+bool AOApplication::get_casing_defence_enabled()
{
- QString f_result = read_config("ic_scroll_down");
- return f_result.startsWith("true");
-} \ No newline at end of file
+ QString result = configini->value("casing_defence_enabled", "false").value<QString>();
+ return result.startsWith("true");
+}
+
+bool AOApplication::get_casing_prosecution_enabled()
+{
+ QString result = configini->value("casing_prosecution_enabled", "false").value<QString>();
+ return result.startsWith("true");
+}
+
+bool AOApplication::get_casing_judge_enabled()
+{
+ QString result = configini->value("casing_judge_enabled", "false").value<QString>();
+ return result.startsWith("true");
+}
+
+bool AOApplication::get_casing_juror_enabled()
+{
+ QString result = configini->value("casing_juror_enabled", "false").value<QString>();
+ return result.startsWith("true");
+}
+
+bool AOApplication::get_casing_steno_enabled()
+{
+ QString result = configini->value("casing_steno_enabled", "false").value<QString>();
+ return result.startsWith("true");
+}
+
+bool AOApplication::get_casing_cm_enabled()
+{
+ QString result = configini->value("casing_cm_enabled", "false").value<QString>();
+ return result.startsWith("true");
+}
+
+QString AOApplication::get_casing_can_host_cases()
+{
+ QString result = configini->value("casing_can_host_cases", "Turnabout Check Your Settings").value<QString>();
+ return result;
+}