aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCerapter <cerap@protonmail.com>2018-09-04 18:15:39 +0200
committerCerapter <cerap@protonmail.com>2018-09-04 18:15:39 +0200
commitcf87d39150a5a6ba850f77a8467ab21e00f1f8db (patch)
tree338cf75c50f64e7e1dd3676e2edb4beed2708e69
parenta88de1563b5699ef16d73cbcdfd867da9d887795 (diff)
Finished the moving of ini handling to QSettings.
Though this was started before anything on our end, still, this finish is once again 100% Gameboyprinter's work, it's just reimplemented here to match our client.
-rw-r--r--Attorney_Online_remake.pro3
-rw-r--r--aoapplication.h2
-rw-r--r--text_file_functions.cpp170
-rw-r--r--text_file_functions.h12
4 files changed, 46 insertions, 141 deletions
diff --git a/Attorney_Online_remake.pro b/Attorney_Online_remake.pro
index 8c064802..f3ab0906 100644
--- a/Attorney_Online_remake.pro
+++ b/Attorney_Online_remake.pro
@@ -80,7 +80,8 @@ HEADERS += lobby.h \
aoevidencedisplay.h \
discord_rich_presence.h \
discord-rpc.h \
- aooptionsdialog.h
+ aooptionsdialog.h \
+ text_file_functions.h
# You need to compile the Discord Rich Presence SDK separately and add the lib/headers.
# Discord RPC uses CMake, which does not play nicely with QMake, so this step must be manual.
diff --git a/aoapplication.h b/aoapplication.h
index 2d70041b..f1e25ebd 100644
--- a/aoapplication.h
+++ b/aoapplication.h
@@ -205,7 +205,7 @@ public:
QString get_sfx(QString p_identifier);
//Returns the value of p_search_line within target_tag and terminator_tag
- QString read_char_ini(QString p_char, QString p_search_line, QString target_tag, QString terminator_tag);
+ QString read_char_ini(QString p_char, QString p_search_line, QString target_tag);
//Returns the side of the p_char character from that characters ini file
QString get_char_side(QString p_char);
diff --git a/text_file_functions.cpp b/text_file_functions.cpp
index 50e7af2a..b3f2a2d2 100644
--- a/text_file_functions.cpp
+++ b/text_file_functions.cpp
@@ -1,44 +1,4 @@
-#include "aoapplication.h"
-
-#include "file_functions.h"
-
-/*
- * This may no longer be necessary, if we use the QSettings class.
- *
-QString AOApplication::read_config(QString searchline)
-{
- 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;
-}
-*/
+#include "text_file_functions.h"
QString AOApplication::read_theme()
{
@@ -179,40 +139,13 @@ 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 "";
+ 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();
}
- 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;
- }
-
- design_ini.close();
-
- return result;
}
QPoint AOApplication::get_button_spacing(QString p_identifier, QString p_file)
@@ -347,59 +280,18 @@ QString AOApplication::get_sfx(QString p_identifier)
//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::read_char_ini(QString p_char, QString p_search_line, QString target_tag)
{
- 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))
- {
- tag_found = true;
- continue;
- }
-
- 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)
- {
- char_ini.close();
- return line_elements.at(1).trimmed();
- }
- }
-
- char_ini.close();
- return "";
+ 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;
@@ -408,8 +300,8 @@ 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_needed = read_char_ini(p_char, "needs_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 "";
@@ -420,7 +312,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";
@@ -429,7 +321,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";
@@ -438,7 +330,7 @@ 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();
@@ -446,14 +338,14 @@ QString AOApplication::get_chat(QString p_char)
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();
}
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;
@@ -462,7 +354,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;
@@ -471,7 +363,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;
@@ -480,7 +372,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("#");
@@ -494,7 +386,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("#");
@@ -508,7 +400,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("#");
@@ -522,7 +414,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("#");
@@ -536,7 +428,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("#");
@@ -552,7 +444,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";
@@ -561,7 +453,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;
@@ -570,7 +462,7 @@ 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;
diff --git a/text_file_functions.h b/text_file_functions.h
new file mode 100644
index 00000000..c5c9b144
--- /dev/null
+++ b/text_file_functions.h
@@ -0,0 +1,12 @@
+#ifndef TEXT_FILE_FUNCTIONS_H
+#define TEXT_FILE_FUNCTIONS_H
+#endif // TEXT_FILE_FUNCTIONS_H
+
+#include "aoapplication.h"
+#include "file_functions.h"
+#include <QTextStream>
+#include <QStringList>
+#include <QVector>
+#include <QDebug>
+#include <QColor>
+#include <QSettings>