aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aoapplication.h3
-rw-r--r--base/config.ini13
-rw-r--r--courtroom.cpp27
-rw-r--r--text_file_functions.cpp6
4 files changed, 39 insertions, 10 deletions
diff --git a/aoapplication.h b/aoapplication.h
index 08f12c62..2aa7d16c 100644
--- a/aoapplication.h
+++ b/aoapplication.h
@@ -138,6 +138,9 @@ public:
//Returns true if discord is enabled in config.ini and false otherwise
bool is_discord_enabled();
+ //Returns true if reverse IC is enabled in config.ini and false otherwise
+ bool ic_scroll_down_enabled();
+
//Returns the list of words in callwords.ini
QStringList get_call_words();
diff --git a/base/config.ini b/base/config.ini
index a71b2595..1e8705fa 100644
--- a/base/config.ini
+++ b/base/config.ini
@@ -1,3 +1,10 @@
-theme = default
-discord = true
-; master = master.aceattorneyonline.com \ No newline at end of file
+theme = default
+blip_rate = 1
+blank_blip = false
+default_music = 50
+default_sfx = 50
+default_blip = 50
+discord = true
+ic_scroll_down = false
+; master = master.aceattorneyonline.com
+; ooc_name = Phoenix \ No newline at end of file
diff --git a/courtroom.cpp b/courtroom.cpp
index 717a13c3..76d6b03f 100644
--- a/courtroom.cpp
+++ b/courtroom.cpp
@@ -1145,14 +1145,27 @@ void Courtroom::append_ic_text(QString p_text, QString p_name)
normal.setFontWeight(QFont::Normal);
const QTextCursor old_cursor = ui_ic_chatlog->textCursor();
const int old_scrollbar_value = ui_ic_chatlog->verticalScrollBar()->value();
- const bool is_scrolled_up = old_scrollbar_value == ui_ic_chatlog->verticalScrollBar()->minimum();
-
- ui_ic_chatlog->moveCursor(QTextCursor::Start);
+
+ QTextCursor::MoveOperation move_op;
+ int scrollbar_limit;
+
+ if(ao_app->ic_scroll_down_enabled()) {
+ scrollbar_limit = ui_ic_chatlog->verticalScrollBar()->maximum();
+ move_op = QTextCursor::End;
+ }
+ else {
+ scrollbar_limit = ui_ic_chatlog->verticalScrollBar()->minimum();
+ move_op = QTextCursor::Start;
+ }
+
+ const bool is_fully_scrolled = old_scrollbar_value == scrollbar_limit;
+
+ ui_ic_chatlog->moveCursor(move_op);
ui_ic_chatlog->textCursor().insertText(p_name, bold);
ui_ic_chatlog->textCursor().insertText(p_text + '\n', normal);
-
- if (old_cursor.hasSelection() || !is_scrolled_up)
+
+ if (old_cursor.hasSelection() || !is_fully_scrolled)
{
// The user has selected text or scrolled away from the top: maintain position.
ui_ic_chatlog->setTextCursor(old_cursor);
@@ -1161,8 +1174,8 @@ void Courtroom::append_ic_text(QString p_text, QString p_name)
else
{
// The user hasn't selected any text and the scrollbar is at the top: scroll to the top.
- ui_ic_chatlog->moveCursor(QTextCursor::Start);
- ui_ic_chatlog->verticalScrollBar()->setValue(ui_ic_chatlog->verticalScrollBar()->minimum());
+ ui_ic_chatlog->moveCursor(move_op);
+ ui_ic_chatlog->verticalScrollBar()->setValue(scrollbar_limit);
}
}
diff --git a/text_file_functions.cpp b/text_file_functions.cpp
index b77e1788..1aebc35e 100644
--- a/text_file_functions.cpp
+++ b/text_file_functions.cpp
@@ -581,3 +581,9 @@ bool AOApplication::is_discord_enabled()
QString f_result = read_config("discord");
return !f_result.startsWith("false");
}
+
+bool AOApplication::ic_scroll_down_enabled()
+{
+ QString f_result = read_config("ic_scroll_down");
+ return f_result.startsWith("true");
+} \ No newline at end of file