aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/aoapplication.h10
-rw-r--r--include/aolayer.h4
-rw-r--r--include/aooptionsdialog.h4
-rw-r--r--src/aolayer.cpp28
-rw-r--r--src/aooptionsdialog.cpp34
-rw-r--r--src/charselect.cpp11
-rw-r--r--src/courtroom.cpp155
-rw-r--r--src/emotes.cpp4
-rw-r--r--src/evidence.cpp17
-rw-r--r--src/lobby.cpp26
-rw-r--r--src/text_file_functions.cpp31
11 files changed, 260 insertions, 64 deletions
diff --git a/include/aoapplication.h b/include/aoapplication.h
index 493f1c92..7f7f3e12 100644
--- a/include/aoapplication.h
+++ b/include/aoapplication.h
@@ -278,6 +278,9 @@ public:
// Returns whether the user would like to have custom shownames on by default.
bool get_showname_enabled_by_default();
+ //Returns the showname the user may have set in config.ini.
+ QString get_default_showname();
+
// Returns the list of words in callwords.ini
QStringList get_call_words();
@@ -378,10 +381,6 @@ public:
// Returns the preanim duration of p_char's p_emote
int get_preanim_duration(QString p_char, QString p_emote);
- // Same as above, but only returns if it has a % in front(refer to Preanims
- // section in the manual)
- int get_ao2_preanim_duration(QString p_char, QString p_emote);
-
// Not in use
int get_text_delay(QString p_char, QString p_emote);
@@ -490,6 +489,9 @@ public:
// Get if the theme is animated
bool get_animated_theme();
+ // Get the default scaling method
+ QString get_default_scaling();
+
// Currently defined subtheme
QString subtheme;
diff --git a/include/aolayer.h b/include/aolayer.h
index f42642cd..f3ecebfb 100644
--- a/include/aolayer.h
+++ b/include/aolayer.h
@@ -104,10 +104,6 @@ protected:
QElapsedTimer actual_time;
- // Usually used to turn seconds into milliseconds such as for [Time] tag in
- // char.ini (which is no longer used)
- const int tick_ms = 60;
-
// These are the X and Y values before they are fixed based on the sprite's
// width.
int x = 0;
diff --git a/include/aooptionsdialog.h b/include/aooptionsdialog.h
index e88ce542..a6c8b8e9 100644
--- a/include/aooptionsdialog.h
+++ b/include/aooptionsdialog.h
@@ -78,6 +78,8 @@ private:
QLabel *ui_username_lbl;
QLabel *ui_showname_lbl;
QCheckBox *ui_showname_cb;
+ QLabel *ui_default_showname_lbl;
+ QLineEdit *ui_default_showname_textbox;
QFrame *ui_net_divider;
QLabel *ui_ms_lbl;
QLineEdit *ui_ms_textbox;
@@ -85,6 +87,8 @@ private:
QCheckBox *ui_discord_cb;
QLabel *ui_language_label;
QComboBox *ui_language_combobox;
+ QLabel *ui_scaling_label;
+ QComboBox *ui_scaling_combobox;
QLabel *ui_shake_lbl;
QCheckBox *ui_shake_cb;
diff --git a/src/aolayer.cpp b/src/aolayer.cpp
index 795274f5..2c6c9117 100644
--- a/src/aolayer.cpp
+++ b/src/aolayer.cpp
@@ -146,6 +146,7 @@ void BackgroundLayer::load_image(QString p_filename)
qDebug() << "[BackgroundLayer] BG loaded: " << p_filename;
#endif
start_playback(ao_app->get_image_suffix(ao_app->get_background_path(p_filename)));
+ play();
}
void CharLayer::load_image(QString p_filename, QString p_charname,
@@ -189,7 +190,7 @@ void CharLayer::load_image(QString p_filename, QString p_charname,
}
is_preanim = true;
play_once = true;
- preanim_timer->start(duration * tick_ms);
+ preanim_timer->start(duration);
}
#ifdef DEBUG_MOVIE
qDebug() << "[CharLayer] anim loaded: prefix " << prefix << " filename "
@@ -211,6 +212,7 @@ void CharLayer::load_image(QString p_filename, QString p_charname,
ao_app->get_theme_path(
"placeholder", ao_app->default_theme)}; // Default theme placeholder path
start_playback(ao_app->get_image_path(pathlist));
+ play();
}
void SplashLayer::load_image(QString p_filename, QString p_charname,
@@ -219,6 +221,7 @@ void SplashLayer::load_image(QString p_filename, QString p_charname,
transform_mode = ao_app->get_misc_scaling(p_miscname);
QString final_image = ao_app->get_image(p_filename, ao_app->current_theme, ao_app->get_subtheme(), ao_app->default_theme, p_miscname, p_charname, "placeholder");
start_playback(final_image);
+ play();
}
void EffectLayer::load_image(QString p_filename, bool p_looping)
@@ -230,13 +233,16 @@ void EffectLayer::load_image(QString p_filename, bool p_looping)
continuous = false;
force_continuous = true;
start_playback(p_filename); // handled in its own file before we see it
+ play();
}
void InterfaceLayer::load_image(QString p_filename, QString p_miscname)
{
+ last_path = "";
stretch = true;
QString final_image = ao_app->get_image(p_filename, ao_app->current_theme, ao_app->get_subtheme(), ao_app->default_theme, p_miscname);
start_playback(final_image);
+ play();
}
void StickerLayer::load_image(QString p_charname)
@@ -247,6 +253,7 @@ void StickerLayer::load_image(QString p_charname)
transform_mode = ao_app->get_misc_scaling(p_miscname);
QString final_image = ao_app->get_image("sticker/" + p_charname, ao_app->current_theme, ao_app->get_subtheme(), ao_app->default_theme, p_miscname);
start_playback(final_image);
+ play();
}
void CharLayer::start_playback(QString p_image)
@@ -257,6 +264,7 @@ void CharLayer::start_playback(QString p_image)
load_network_effects();
else // Use default ini FX
load_effects();
+ play();
}
void AOLayer::start_playback(QString p_image)
@@ -275,7 +283,7 @@ void AOLayer::start_playback(QString p_image)
actual_time.restart();
#endif
this->clear();
- freeze();
+ this->freeze();
movie_frames.clear();
movie_delays.clear();
QString scaling_override =
@@ -329,14 +337,12 @@ void AOLayer::start_playback(QString p_image)
}
else if (max_frames <= 1) {
duration = static_duration;
- play_once = false;
#ifdef DEBUG_MOVIE
qDebug() << "max_frames is <= 1, using static duration";
#endif
}
if (duration > 0 && cull_image == true)
shfx_timer->start(duration);
- play();
#ifdef DEBUG_MOVIE
qDebug() << max_frames << "Setting image to " << image_path
<< "Time taken to process image:" << actual_time.elapsed();
@@ -347,6 +353,12 @@ void AOLayer::start_playback(QString p_image)
void CharLayer::play()
{
+ if (max_frames <= 1) {
+ if (play_once) {
+ preanim_timer->start(qMax(0, duration));
+ }
+ return;
+ }
play_frame_effect(frame);
AOLayer::play();
}
@@ -354,8 +366,12 @@ void CharLayer::play()
void AOLayer::play()
{
if (max_frames <= 1) {
- if (play_once)
- ticker->start(tick_ms);
+ if (play_once) {
+ if (duration > 0)
+ ticker->start(duration);
+ else
+ preanim_done();
+ }
else
this->freeze();
}
diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp
index a0d2e7d1..1db0dec9 100644
--- a/src/aooptionsdialog.cpp
+++ b/src/aooptionsdialog.cpp
@@ -325,6 +325,20 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_showname_cb);
+ row +=1;
+ ui_default_showname_lbl = new QLabel(ui_form_layout_widget);
+ ui_default_showname_lbl->setText(tr("Default showname:"));
+ ui_default_showname_lbl->setToolTip(
+ tr("Your showname will be automatically set to this value "
+ "when you join a server."));
+
+ ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_default_showname_lbl);
+
+ ui_default_showname_textbox = new QLineEdit(ui_form_layout_widget);
+ ui_default_showname_textbox->setMaxLength(30);
+
+ ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_default_showname_textbox);
+
row += 1;
ui_net_divider = new QFrame(ui_form_layout_widget);
ui_net_divider->setFrameShape(QFrame::HLine);
@@ -382,6 +396,20 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
ui_language_combobox);
row += 1;
+ ui_scaling_label = new QLabel(ui_form_layout_widget);
+ ui_scaling_label->setText(tr("Scaling:"));
+ ui_scaling_label->setToolTip(
+ tr("Sets the default scaling method, if there is not one already defined "
+ "specifically for the character."));
+ ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_scaling_label);
+
+ ui_scaling_combobox = new QComboBox(ui_form_layout_widget);
+ // Corresponds with Qt::TransformationMode enum. Please don't change the order.
+ ui_scaling_combobox->addItem(tr("Pixel"), "fast");
+ ui_scaling_combobox->addItem(tr("Smooth"), "smooth");
+ ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_scaling_combobox);
+
+ row += 1;
ui_shake_lbl = new QLabel(ui_form_layout_widget);
ui_shake_lbl->setText(tr("Allow Screenshake:"));
ui_shake_lbl->setToolTip(
@@ -896,6 +924,9 @@ void AOOptionsDialog::update_values() {
break;
}
}
+ Qt::TransformationMode scaling = ao_app->get_scaling(ao_app->get_default_scaling());
+ ui_scaling_combobox->setCurrentIndex(scaling);
+
// Let's fill the callwords text edit with the already present callwords.
ui_callwords_textbox->document()->clear();
foreach (QString callword, ao_app->get_call_words()) {
@@ -944,6 +975,7 @@ void AOOptionsDialog::update_values() {
ui_sfx_volume_spinbox->setValue(ao_app->get_default_sfx());
ui_blips_volume_spinbox->setValue(ao_app->get_default_blip());
ui_bliprate_spinbox->setValue(ao_app->read_blip_rate());
+ ui_default_showname_textbox->setText(ao_app->get_default_showname());
}
void AOOptionsDialog::save_pressed()
@@ -970,9 +1002,11 @@ void AOOptionsDialog::save_pressed()
configini->setValue("chat_ratelimit", ui_chat_ratelimit_spinbox->value());
configini->setValue("default_username", ui_username_textbox->text());
configini->setValue("show_custom_shownames", ui_showname_cb->isChecked());
+ configini->setValue("default_showname", ui_default_showname_textbox->text());
configini->setValue("master", ui_ms_textbox->text());
configini->setValue("discord", ui_discord_cb->isChecked());
configini->setValue("language", ui_language_combobox->currentText().left(2));
+ configini->setValue("default_scaling", ui_scaling_combobox->currentData());
configini->setValue("shake", ui_shake_cb->isChecked());
configini->setValue("effects", ui_effects_cb->isChecked());
configini->setValue("framenetwork", ui_framenetwork_cb->isChecked());
diff --git a/src/charselect.cpp b/src/charselect.cpp
index 820abf51..53269b54 100644
--- a/src/charselect.cpp
+++ b/src/charselect.cpp
@@ -10,6 +10,7 @@ void Courtroom::construct_char_select()
this->setWindowFlags( (this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
ui_char_select_background = new AOImage(this, ao_app);
+ ui_char_select_background->setObjectName("ui_char_select_background");
ui_char_list = new QTreeWidget(ui_char_select_background);
ui_char_list->setColumnCount(2);
@@ -18,28 +19,38 @@ void Courtroom::construct_char_select()
ui_char_list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui_char_list->hideColumn(1);
ui_char_list->setDropIndicatorShown(true);
+ ui_char_list->setObjectName("ui_char_list");
ui_char_buttons = new QWidget(ui_char_select_background);
+ ui_char_buttons->setObjectName("ui_char_buttons");
ui_back_to_lobby = new AOButton(ui_char_select_background, ao_app);
+ ui_back_to_lobby->setObjectName("ui_back_to_lobby");
ui_char_password = new QLineEdit(ui_char_select_background);
ui_char_password->setPlaceholderText(tr("Password"));
+ ui_char_password->setObjectName("ui_char_password");
ui_char_select_left = new AOButton(ui_char_select_background, ao_app);
+ ui_char_select_left->setObjectName("ui_char_select_left");
ui_char_select_right = new AOButton(ui_char_select_background, ao_app);
+ ui_char_select_right->setObjectName("ui_char_select_right");
ui_spectator = new AOButton(ui_char_select_background, ao_app);
ui_spectator->setText(tr("Spectator"));
+ ui_spectator->setObjectName("ui_spectator");
ui_char_search = new QLineEdit(ui_char_select_background);
ui_char_search->setPlaceholderText(tr("Search"));
+ ui_char_search->setObjectName("ui_char_search");
ui_char_passworded = new QCheckBox(ui_char_select_background);
ui_char_passworded->setText(tr("Passworded"));
+ ui_char_passworded->setObjectName("ui_char_passworded");
ui_char_taken = new QCheckBox(ui_char_select_background);
ui_char_taken->setText(tr("Taken"));
+ ui_char_taken->setObjectName("ui_char_taken");
connect(ui_char_list, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)),
this, SLOT(on_char_list_double_clicked(QTreeWidgetItem *, int)));
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index 8bbaaa93..094695af 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -41,50 +41,67 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
modcall_player->set_volume(50);
ui_background = new AOImage(this, ao_app);
+ ui_background->setObjectName("ui_background");
ui_viewport = new QWidget(this);
+ ui_viewport->setObjectName("ui_viewport");
ui_vp_background = new BackgroundLayer(ui_viewport, ao_app);
+ ui_vp_background->setObjectName("ui_vp_background");
ui_vp_speedlines = new SplashLayer(ui_viewport, ao_app);
+ ui_vp_speedlines->setObjectName("ui_vp_speedlines");
ui_vp_player_char = new CharLayer(ui_viewport, ao_app);
+ ui_vp_player_char->setObjectName("ui_vp_player_char");
ui_vp_player_char->masked = false;
ui_vp_sideplayer_char = new CharLayer(ui_viewport, ao_app);
+ ui_vp_sideplayer_char->setObjectName("ui_vp_sideplayer_char");
ui_vp_sideplayer_char->masked = false;
ui_vp_sideplayer_char->hide();
ui_vp_desk = new BackgroundLayer(ui_viewport, ao_app);
+ ui_vp_desk->setObjectName("ui_vp_desk");
ui_vp_effect = new EffectLayer(this, ao_app);
ui_vp_effect->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_vp_effect->setObjectName("ui_vp_effect");
ui_vp_evidence_display = new AOEvidenceDisplay(ui_viewport, ao_app);
+ ui_vp_evidence_display->setObjectName("ui_vp_evidence_display");
ui_vp_chatbox = new AOImage(this, ao_app);
+ ui_vp_chatbox->setObjectName("ui_vp_chatbox");
ui_vp_showname = new QLabel(ui_vp_chatbox);
+ ui_vp_showname->setObjectName("ui_vp_showname");
ui_vp_showname->setAlignment(Qt::AlignLeft);
ui_vp_chat_arrow = new InterfaceLayer(this, ao_app);
ui_vp_chat_arrow->set_play_once(false);
+ ui_vp_chat_arrow->setObjectName("ui_vp_chat_arrow");
ui_vp_message = new QTextEdit(this);
ui_vp_message->setFrameStyle(QFrame::NoFrame);
ui_vp_message->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui_vp_message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui_vp_message->setReadOnly(true);
+ ui_vp_message->setObjectName("ui_vp_message");
ui_vp_testimony = new SplashLayer(this, ao_app);
ui_vp_testimony->set_play_once(false);
ui_vp_testimony->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_vp_testimony->setObjectName("ui_vp_testimony");
ui_vp_wtce = new SplashLayer(this, ao_app);
ui_vp_wtce->set_play_once(true);
ui_vp_wtce->continuous = false;
ui_vp_wtce->force_continuous = true;
ui_vp_wtce->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_vp_wtce->setObjectName("ui_vp_wtce");
ui_vp_objection = new SplashLayer(this, ao_app);
ui_vp_objection->set_play_once(true);
ui_vp_objection->continuous = false;
ui_vp_objection->force_continuous = true;
ui_vp_objection->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_vp_objection->setObjectName("ui_vp_objection");
ui_ic_chatlog = new QTextEdit(this);
ui_ic_chatlog->setReadOnly(true);
+ ui_ic_chatlog->setObjectName("ui_ic_chatlog");
log_maximum_blocks = ao_app->get_max_log_size();
log_goes_downwards = ao_app->get_log_goes_downwards();
@@ -97,10 +114,12 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_ms_chatlog->setReadOnly(true);
ui_ms_chatlog->setOpenExternalLinks(true);
ui_ms_chatlog->hide();
+ ui_ms_chatlog->setObjectName("ui_ms_chatlog");
ui_server_chatlog = new AOTextArea(this);
ui_server_chatlog->setReadOnly(true);
ui_server_chatlog->setOpenExternalLinks(true);
+ ui_server_chatlog->setObjectName("ui_server_chatlog");
ui_area_list = new QTreeWidget(this);
ui_area_list->setColumnCount(2);
@@ -109,6 +128,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_area_list->header()->setStretchLastSection(false);
ui_area_list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui_area_list->hide();
+ ui_area_list->setObjectName("ui_area_list");
ui_music_list = new QTreeWidget(this);
ui_music_list->setColumnCount(2);
@@ -118,174 +138,259 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_music_list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui_music_list->setContextMenuPolicy(Qt::CustomContextMenu);
ui_music_list->setUniformRowHeights(true);
-
+ ui_music_list->setObjectName("ui_music_list");
ui_music_display = new InterfaceLayer(this, ao_app);
ui_music_display->set_play_once(false);
ui_music_display->transform_mode = Qt::SmoothTransformation;
ui_music_display->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_music_display->setObjectName("ui_music_display");
ui_music_name = new ScrollText(ui_music_display);
ui_music_name->setText(tr("None"));
ui_music_name->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_music_name->setObjectName("ui_music_name");
for (int i = 0; i < max_clocks; i++) {
ui_clock[i] = new AOClockLabel(this);
ui_clock[i]->setAttribute(Qt::WA_TransparentForMouseEvents);
ui_clock[i]->hide();
+ ui_clock[i]->setObjectName("ui_clock" + QString::number(i));
}
ui_ic_chat_name = new QLineEdit(this);
ui_ic_chat_name->setFrame(false);
ui_ic_chat_name->setPlaceholderText(tr("Showname"));
+ ui_ic_chat_name->setText(p_ao_app->get_default_showname());
+ ui_ic_chat_name->setObjectName("ui_ic_chat_name");
ui_ic_chat_message = new AOLineEdit(this);
ui_ic_chat_message->setFrame(false);
ui_ic_chat_message->setPlaceholderText(tr("Message"));
ui_ic_chat_message->preserve_selection(true);
- // ui_ic_chat_message->setValidator(new QRegExpValidator(QRegExp("^\\S+(?:
- // \\S+)*$"), ui_ic_chat_message));
- // todo: filter out \n from showing up as that commonly breaks the chatlog and
- // can be spammed to hell
+ ui_ic_chat_message->setObjectName("ui_ic_chat_message");
ui_vp_sticker = new StickerLayer(ui_viewport, ao_app);
ui_vp_sticker->set_play_once(false);
ui_vp_sticker->setAttribute(Qt::WA_TransparentForMouseEvents);
+ ui_vp_sticker->setObjectName("ui_vp_sticker");
ui_muted = new AOImage(ui_ic_chat_message, ao_app);
ui_muted->hide();
+ ui_muted->setObjectName("ui_muted");
ui_ooc_chat_message = new QLineEdit(this);
ui_ooc_chat_message->setFrame(false);
+ ui_ooc_chat_message->setObjectName("ui_ooc_chat_message");
ui_ooc_chat_name = new QLineEdit(this);
ui_ooc_chat_name->setFrame(false);
ui_ooc_chat_name->setPlaceholderText(tr("Name"));
ui_ooc_chat_name->setMaxLength(30);
ui_ooc_chat_name->setText(p_ao_app->get_default_username());
+ ui_ooc_chat_name->setObjectName("ui_ooc_chat_name");
// ui_area_password = new QLineEdit(this);
// ui_area_password->setFrame(false);
ui_music_search = new QLineEdit(this);
ui_music_search->setFrame(false);
ui_music_search->setPlaceholderText(tr("Search"));
+ ui_music_search->setObjectName("ui_music_search");
initialize_emotes();
ui_pos_dropdown = new QComboBox(this);
ui_pos_dropdown->view()->setTextElideMode(Qt::ElideLeft);
+ ui_pos_dropdown->setObjectName("ui_pos_dropdown");
+
ui_pos_remove = new AOButton(this, ao_app);
+ ui_pos_remove->setObjectName("ui_pos_remove");
ui_iniswap_dropdown = new QComboBox(this);
ui_iniswap_dropdown->setContextMenuPolicy(Qt::CustomContextMenu);
ui_iniswap_dropdown->view()->setTextElideMode(Qt::ElideLeft);
+ ui_iniswap_dropdown->setObjectName("ui_iniswap_dropdown");
+
ui_iniswap_remove = new AOButton(this, ao_app);
+ ui_iniswap_remove->setObjectName("ui_iniswap_remove");
ui_sfx_dropdown = new QComboBox(this);
ui_sfx_dropdown->setContextMenuPolicy(Qt::CustomContextMenu);
ui_sfx_dropdown->view()->setTextElideMode(Qt::ElideLeft);
+ ui_sfx_dropdown->setObjectName("ui_sfx_dropdown");
+
ui_sfx_remove = new AOButton(this, ao_app);
+ ui_sfx_remove->setObjectName("ui_sfx_remove");
ui_effects_dropdown = new QComboBox(this);
ui_effects_dropdown->view()->setTextElideMode(Qt::ElideLeft);
ui_effects_dropdown->setContextMenuPolicy(Qt::CustomContextMenu);
+ ui_effects_dropdown->setObjectName("ui_effects_dropdown");
ui_defense_bar = new AOImage(this, ao_app);
+ ui_defense_bar->setObjectName("ui_defense_bar");
+
ui_prosecution_bar = new AOImage(this, ao_app);
+ ui_prosecution_bar->setObjectName("ui_prosecution_bar");
ui_music_label = new QLabel(this);
+ ui_music_label->setObjectName("ui_music_label");
+
ui_sfx_label = new QLabel(this);
+ ui_sfx_label->setObjectName("ui_sfx_label");
+
ui_blip_label = new QLabel(this);
+ ui_blip_label->setObjectName("ui_blip_label");
ui_hold_it = new AOButton(this, ao_app);
+ ui_hold_it->setObjectName("ui_hold_it");
+
ui_objection = new AOButton(this, ao_app);
+ ui_objection->setObjectName("ui_objection");
+
ui_take_that = new AOButton(this, ao_app);
+ ui_take_that->setObjectName("ui_take_that");
ui_ooc_toggle = new AOButton(this, ao_app);
+ ui_ooc_toggle->setObjectName("ui_ooc_toggle");
+
ui_witness_testimony = new AOButton(this, ao_app);
+ ui_witness_testimony->setObjectName("ui_witness_testimony");
+
ui_cross_examination = new AOButton(this, ao_app);
+ ui_cross_examination->setObjectName("ui_cross_examination");
+
ui_guilty = new AOButton(this, ao_app);
+ ui_guilty->setObjectName("ui_guilty");
+
ui_not_guilty = new AOButton(this, ao_app);
+ ui_not_guilty->setObjectName("ui_not_guilty");
ui_change_character = new AOButton(this, ao_app);
+ ui_change_character->setObjectName("ui_change_character");
+
ui_reload_theme = new AOButton(this, ao_app);
+ ui_reload_theme->setObjectName("ui_reload_theme");
+
ui_call_mod = new AOButton(this, ao_app);
+ ui_call_mod->setObjectName("ui_call_mod");
+
ui_settings = new AOButton(this, ao_app);
+ ui_settings->setObjectName("ui_settings");
+
ui_announce_casing = new AOButton(this, ao_app);
+ ui_announce_casing->setObjectName("ui_announce_casing");
+
ui_switch_area_music = new AOButton(this, ao_app);
+ ui_switch_area_music->setObjectName("ui_switch_area_music");
ui_pre = new QCheckBox(this);
ui_pre->setText(tr("Pre"));
+ ui_pre->setObjectName("ui_pre");
ui_flip = new QCheckBox(this);
ui_flip->setText(tr("Flip"));
ui_flip->hide();
+ ui_flip->setObjectName("ui_flip");
ui_guard = new QCheckBox(this);
ui_guard->setText(tr("Guard"));
ui_guard->hide();
+ ui_guard->setObjectName("ui_guard");
ui_additive = new QCheckBox(this);
ui_additive->setText(tr("Additive"));
ui_additive->hide();
+ ui_additive->setObjectName("ui_additive");
ui_casing = new QCheckBox(this);
ui_casing->setChecked(ao_app->get_casing_enabled());
ui_casing->setText(tr("Casing"));
ui_casing->hide();
+ ui_casing->setObjectName("ui_casing");
ui_showname_enable = new QCheckBox(this);
ui_showname_enable->setChecked(ao_app->get_showname_enabled_by_default());
ui_showname_enable->setText(tr("Shownames"));
+ ui_showname_enable->setObjectName("ui_showname_enable");
ui_immediate = new QCheckBox(this);
ui_immediate->setText(tr("Immediate"));
ui_immediate->hide();
+ ui_immediate->setObjectName("ui_immediate");
ui_custom_objection = new AOButton(this, ao_app);
ui_custom_objection->setContextMenuPolicy(Qt::CustomContextMenu);
+ ui_custom_objection->setObjectName("ui_custom_objection");
+
custom_obj_menu = new QMenu(this);
+ custom_obj_menu->setObjectName("ui_custom_obj_menu");
+
ui_realization = new AOButton(this, ao_app);
+ ui_realization->setObjectName("ui_realization");
+
ui_screenshake = new AOButton(this, ao_app);
+ ui_screenshake->setObjectName("ui_screenshake");
+
ui_mute = new AOButton(this, ao_app);
+ ui_mute->setObjectName("ui_mute");
ui_defense_plus = new AOButton(this, ao_app);
+ ui_defense_plus->setObjectName("ui_defense_plus");
+
ui_defense_minus = new AOButton(this, ao_app);
+ ui_defense_minus->setObjectName("ui_defense_minus");
ui_prosecution_plus = new AOButton(this, ao_app);
+ ui_prosecution_plus->setObjectName("ui_prosecution_plus");
+
ui_prosecution_minus = new AOButton(this, ao_app);
+ ui_prosecution_minus->setObjectName("ui_prosecution_minus");
ui_text_color = new QComboBox(this);
+ ui_text_color->setObjectName("ui_text_color");
ui_music_slider = new QSlider(Qt::Horizontal, this);
ui_music_slider->setRange(0, 100);
ui_music_slider->setValue(ao_app->get_default_music());
+ ui_music_slider->setObjectName("ui_music_slider");
ui_sfx_slider = new QSlider(Qt::Horizontal, this);
ui_sfx_slider->setRange(0, 100);
ui_sfx_slider->setValue(ao_app->get_default_sfx());
+ ui_sfx_slider->setObjectName("ui_sfx_slider");
ui_blip_slider = new QSlider(Qt::Horizontal, this);
ui_blip_slider->setRange(0, 100);
ui_blip_slider->setValue(ao_app->get_default_blip());
+ ui_blip_slider->setObjectName("ui_blip_slider");
ui_mute_list = new QListWidget(this);
+ ui_mute_list->setObjectName("ui_mute_list");
ui_pair_list = new QListWidget(this);
+ ui_pair_list->setObjectName("ui_pair_list");
+
ui_pair_offset_spinbox = new QSpinBox(this);
ui_pair_offset_spinbox->setRange(-100, 100);
ui_pair_offset_spinbox->setSuffix(tr("% x offset"));
+ ui_pair_offset_spinbox->setObjectName("ui_pair_offset_spinbox");
+
ui_pair_vert_offset_spinbox = new QSpinBox(this);
ui_pair_vert_offset_spinbox->setRange(-100, 100);
ui_pair_vert_offset_spinbox->setSuffix(tr("% y offset"));
+ ui_pair_vert_offset_spinbox->setObjectName("ui_pair_vert_offset_spinbox");
ui_pair_order_dropdown = new QComboBox(this);
ui_pair_order_dropdown->addItem(tr("To front"));
ui_pair_order_dropdown->addItem(tr("To behind"));
+ ui_pair_order_dropdown->setObjectName("ui_pair_order_dropdown");
ui_pair_button = new AOButton(this, ao_app);
+ ui_pair_button->setObjectName("ui_pair_button");
ui_evidence_button = new AOButton(this, ao_app);
+ ui_evidence_button->setObjectName("ui_evidence_button");
initialize_evidence();
@@ -612,8 +717,8 @@ void Courtroom::set_widgets()
set_size_and_pos(ui_ic_chatlog, "ic_chatlog");
ui_ic_chatlog->setFrameShape(QFrame::NoFrame);
- ui_ic_chatlog->setPlaceholderText(log_goes_downwards ? "▼ Log goes down ▼"
- : "▲ Log goes up ▲");
+ ui_ic_chatlog->setPlaceholderText(log_goes_downwards ? "▼ " + tr("Log goes down") + " ▼"
+ : "▲ " + tr("Log goes up") + " ▲");
set_size_and_pos(ui_ms_chatlog, "ms_chatlog");
ui_ms_chatlog->setFrameShape(QFrame::NoFrame);
@@ -3119,17 +3224,10 @@ void Courtroom::play_preanim(bool immediate)
QString f_preanim = m_chatmessage[PRE_EMOTE];
// all time values in char.inis are multiplied by a constant(time_mod) to get
// the actual time
- int ao2_duration = ao_app->get_ao2_preanim_duration(f_char, f_preanim);
+ int preanim_duration = ao_app->get_preanim_duration(f_char, f_preanim);
int stay_time = ao_app->get_text_delay(f_char, f_preanim) * time_mod;
int sfx_delay = m_chatmessage[SFX_DELAY].toInt() * time_mod;
- int preanim_duration;
-
- if (ao2_duration < 0)
- preanim_duration = ao_app->get_preanim_duration(f_char, f_preanim);
- else
- preanim_duration = ao2_duration;
-
sfx_delay_timer->start(sfx_delay);
QString anim_to_find =
ao_app->get_image_suffix(ao_app->get_character_path(f_char, f_preanim));
@@ -3142,15 +3240,6 @@ void Courtroom::play_preanim(bool immediate)
qDebug() << "W: could not find " + anim_to_find;
return;
}
- else {
- QImageReader s_reader(anim_to_find);
- int image_count = s_reader.imageCount();
- if (image_count <= 1) {
- preanim_done();
- qDebug() << "W: tried to play static preanim " + anim_to_find;
- return;
- }
- }
ui_vp_player_char->set_static_duration(preanim_duration);
ui_vp_player_char->set_play_once(true);
ui_vp_player_char->load_image(f_preanim, f_char, preanim_duration, true);
@@ -3172,16 +3261,15 @@ void Courtroom::play_preanim(bool immediate)
break;
}
- if (immediate)
+ if (immediate) {
anim_state = 4;
- else
- anim_state = 1;
-
- if (stay_time >= 0)
- text_delay_timer->start(stay_time);
-
- if (immediate)
handle_ic_speaking();
+ }
+ else {
+ anim_state = 1;
+ if (stay_time >= 0)
+ text_delay_timer->start(stay_time);
+ }
}
void Courtroom::preanim_done()
@@ -3213,6 +3301,7 @@ void Courtroom::preanim_done()
void Courtroom::start_chat_ticking()
{
+ text_delay_timer->stop();
// we need to ensure that the text isn't already ticking because this function
// can be called by two logic paths
if (text_state != 0)
@@ -5120,7 +5209,7 @@ void Courtroom::set_text_color_dropdown()
color_row_to_number.append(c);
}
for (int c = 0; c < max_colors; ++c) {
- QColor color = ao_app->get_chat_color("c" + QString::number(c), "default");
+ QColor color = ao_app->get_chat_color("c" + QString::number(c), "");
default_color_rgb_list.append(color);
}
}
diff --git a/src/emotes.cpp b/src/emotes.cpp
index 38250c93..82720076 100644
--- a/src/emotes.cpp
+++ b/src/emotes.cpp
@@ -5,11 +5,15 @@
void Courtroom::initialize_emotes()
{
ui_emotes = new QWidget(this);
+ ui_emotes->setObjectName("ui_emotes");
ui_emote_left = new AOButton(this, ao_app);
+ ui_emote_left->setObjectName("ui_emote_left");
ui_emote_right = new AOButton(this, ao_app);
+ ui_emote_right->setObjectName("ui_emote_right");
ui_emote_dropdown = new QComboBox(this);
+ ui_emote_dropdown->setObjectName("ui_emote_dropdown");
connect(ui_emote_left, SIGNAL(clicked()), this,
SLOT(on_emote_left_clicked()));
diff --git a/src/evidence.cpp b/src/evidence.cpp
index ec1fa7e3..2cc1d75a 100644
--- a/src/evidence.cpp
+++ b/src/evidence.cpp
@@ -3,47 +3,64 @@
void Courtroom::initialize_evidence()
{
ui_evidence = new AOImage(this, ao_app);
+ ui_evidence->setObjectName("ui_evidence");
// ui_evidence_name = new QLabel(ui_evidence);
ui_evidence_name = new AOLineEdit(ui_evidence);
ui_evidence_name->setAlignment(Qt::AlignCenter);
ui_evidence_name->setFrame(false);
+ ui_evidence_name->setObjectName("ui_evidence_name");
ui_evidence_buttons = new QWidget(ui_evidence);
+ ui_evidence_buttons->setObjectName("ui_evidence_buttons");
ui_evidence_left = new AOButton(ui_evidence, ao_app);
+ ui_evidence_left->setObjectName("ui_evidence_left");
ui_evidence_right = new AOButton(ui_evidence, ao_app);
+ ui_evidence_right->setObjectName("ui_evidence_right");
ui_evidence_present = new AOButton(ui_evidence, ao_app);
ui_evidence_present->setToolTip(tr("Present this piece of evidence to "
"everyone on your next spoken message"));
+ ui_evidence_present->setObjectName("ui_evidence_present");
ui_evidence_switch = new AOButton(ui_evidence, ao_app);
+ ui_evidence_switch->setObjectName("ui_evidence_switch");
ui_evidence_transfer = new AOButton(ui_evidence, ao_app);
+ ui_evidence_transfer->setObjectName("ui_evidence_transfer");
ui_evidence_save = new AOButton(ui_evidence, ao_app);
ui_evidence_save->setToolTip(tr("Save evidence to an .ini file."));
+ ui_evidence_save->setObjectName("ui_evidence_save");
ui_evidence_load = new AOButton(ui_evidence, ao_app);
ui_evidence_load->setToolTip(tr("Load evidence from an .ini file."));
+ ui_evidence_load->setObjectName("ui_evidence_load");
ui_evidence_overlay = new AOImage(ui_evidence, ao_app);
+ ui_evidence_overlay->setObjectName("ui_evidence_overlay");
ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app);
ui_evidence_delete->setToolTip(tr("Destroy this piece of evidence"));
+ ui_evidence_delete->setObjectName("ui_evidence_delete");
ui_evidence_image_name = new AOLineEdit(ui_evidence_overlay);
+ ui_evidence_image_name->setObjectName("ui_evidence_image_name");
ui_evidence_image_button = new AOButton(ui_evidence_overlay, ao_app);
ui_evidence_image_button->setText(tr("Choose.."));
+ ui_evidence_image_button->setObjectName("ui_evidence_image_button");
ui_evidence_x = new AOButton(ui_evidence_overlay, ao_app);
ui_evidence_x->setToolTip(
tr("Close the evidence display/editing overlay.\n"
"You will be prompted if there's any unsaved changes."));
+ ui_evidence_x->setObjectName("ui_evidence_x");
ui_evidence_ok = new AOButton(ui_evidence_overlay, ao_app);
ui_evidence_ok->setToolTip(tr("Save any changes made to this piece of "
"evidence and send them to server."));
+ ui_evidence_ok->setObjectName("ui_evidence_ok");
ui_evidence_description = new AOTextEdit(ui_evidence_overlay);
ui_evidence_description->setFrameStyle(QFrame::NoFrame);
ui_evidence_description->setToolTip(
tr("Double-click to edit. Press [X] to update your changes."));
+ ui_evidence_description->setObjectName("ui_evidence_description");
connect(ui_evidence_name, SIGNAL(returnPressed()), this,
SLOT(on_evidence_name_edited()));
diff --git a/src/lobby.cpp b/src/lobby.cpp
index 616e5206..5cdb94a3 100644
--- a/src/lobby.cpp
+++ b/src/lobby.cpp
@@ -12,50 +12,68 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
{
ao_app = p_ao_app;
+ //
this->setWindowTitle(tr("Attorney Online 2"));
this->setWindowIcon(QIcon(":/logo.png"));
this->setWindowFlags( (this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
ui_background = new AOImage(this, ao_app);
+ ui_background->setObjectName("ui_background");
ui_public_servers = new AOButton(this, ao_app);
+ ui_public_servers->setObjectName("ui_public_servers");
ui_favorites = new AOButton(this, ao_app);
+ ui_favorites->setObjectName("ui_favorites");
ui_refresh = new AOButton(this, ao_app);
+ ui_refresh->setObjectName("ui_refresh");
ui_add_to_fav = new AOButton(this, ao_app);
+ ui_add_to_fav->setObjectName("ui_add_to_fav");
ui_connect = new AOButton(this, ao_app);
+ ui_connect->setObjectName("ui_connect");
ui_version = new QLabel(this);
+ ui_version->setObjectName("ui_version");
ui_about = new AOButton(this, ao_app);
+ ui_about->setObjectName("ui_about");
ui_settings = new AOButton(this, ao_app);
+ ui_settings->setObjectName("ui_settings");
ui_server_list = new QTreeWidget(this);
- ui_server_list->setHeaderLabels({"#", "Name"}); //, "Players"});
+ ui_server_list->setHeaderLabels({"#", "Name"});
ui_server_list->setTextElideMode(Qt::ElideNone);
ui_server_list->header()->setMinimumSectionSize(24);
ui_server_list->header()->setSectionsMovable(false);
ui_server_list->setColumnWidth(0, 0);
ui_server_list->setIndentation(0);
-// ui_server_list->hideColumn(0);
-// ui_server_list->setHeaderHidden(true);
+ ui_server_list->setObjectName("ui_server_list");
ui_server_search = new QLineEdit(this);
ui_server_search->setFrame(false);
ui_server_search->setPlaceholderText(tr("Search"));
+ ui_server_search->setObjectName("ui_server_search");
ui_player_count = new QLabel(this);
+ ui_player_count->setObjectName("ui_player_count");
ui_description = new AOTextArea(this);
ui_description->setOpenExternalLinks(true);
+ ui_description->setObjectName("ui_description");
ui_chatbox = new AOTextArea(this);
ui_chatbox->setOpenExternalLinks(true);
+ ui_chatbox->setObjectName("ui_chatbox");
ui_chatname = new QLineEdit(this);
ui_chatname->setPlaceholderText(tr("Name"));
ui_chatname->setText(ao_app->get_ooc_name());
+ ui_chatname->setObjectName("ui_chatname");
ui_chatmessage = new QLineEdit(this);
+ ui_chatmessage->setObjectName("ui_chatmessage");
ui_loading_background = new AOImage(this, ao_app);
+ ui_loading_background->setObjectName("ui_loading_background");
ui_loading_text = new QTextEdit(ui_loading_background);
+ ui_loading_text->setObjectName("ui_loading_text");
ui_progress_bar = new QProgressBar(ui_loading_background);
ui_progress_bar->setMinimum(0);
ui_progress_bar->setMaximum(100);
- ui_progress_bar->setStyleSheet("QProgressBar{ color: white; }");
+ ui_progress_bar->setObjectName("ui_progress_bar");
ui_cancel = new AOButton(ui_loading_background, ao_app);
+ ui_cancel->setObjectName("ui_cancel");
connect(ui_public_servers, SIGNAL(clicked()), this,
SLOT(on_public_servers_clicked()));
diff --git a/src/text_file_functions.cpp b/src/text_file_functions.cpp
index af4c232c..712a63de 100644
--- a/src/text_file_functions.cpp
+++ b/src/text_file_functions.cpp
@@ -112,6 +112,12 @@ QString AOApplication::get_default_username()
return result;
}
+QString AOApplication::get_default_showname()
+{
+ QString result = configini->value("default_showname", "").value<QString>();
+ return result;
+}
+
QString AOApplication::get_audio_output_device()
{
QString result =
@@ -290,6 +296,9 @@ QString AOApplication::read_design_ini(QString p_identifier,
Qt::TransformationMode AOApplication::get_scaling(QString p_scaling)
{
+ if (p_scaling.isEmpty())
+ p_scaling = get_default_scaling();
+
if (p_scaling == "smooth")
return Qt::SmoothTransformation;
return Qt::FastTransformation;
@@ -442,8 +451,8 @@ QString AOApplication::get_chat_markup(QString p_identifier, QString p_chat)
QStringList backwards_paths{get_theme_path("misc/" + p_chat + "/config.ini"),
get_base_path() + "misc/" + p_chat +
"/config.ini",
- get_base_path() + "misc/default/config.ini",
- get_theme_path("misc/default/config.ini")};
+ get_theme_path("misc/default/config.ini"),
+ get_base_path() + "misc/default/config.ini"};
for (const QString &p : backwards_paths) {
QString value = read_design_ini(p_identifier, p);
if (!value.isEmpty()) {
@@ -477,7 +486,7 @@ QString AOApplication::get_court_sfx(QString p_identifier, QString p_misc)
{
QString value = get_config_value(p_identifier, "courtroom_sounds.ini", current_theme, get_subtheme(), default_theme, p_misc);
if (!value.isEmpty())
- return value.toLatin1();
+ return value.toUtf8();
return "";
}
@@ -669,15 +678,6 @@ int AOApplication::get_preanim_duration(QString p_char, QString p_emote)
return f_result.toInt();
}
-int AOApplication::get_ao2_preanim_duration(QString p_char, QString p_emote)
-{
- QString f_result = read_char_ini(p_char, "%" + p_emote, "Time");
-
- if (f_result == "")
- return -1;
- return f_result.toInt();
-}
-
int AOApplication::get_emote_number(QString p_char)
{
QString f_result = read_char_ini(p_char, "number", "Emotions");
@@ -845,7 +845,7 @@ QStringList AOApplication::get_effects(QString p_char)
{
QString p_misc = read_char_ini(p_char, "effects", "Options");
QString p_path = get_asset("effects/effects.ini", current_theme, get_subtheme(), default_theme, "");
- QString p_misc_path = get_asset("effects/effects.ini", current_theme, get_subtheme(), default_theme, p_misc);
+ QString p_misc_path = get_asset("effects.ini", current_theme, get_subtheme(), default_theme, p_misc);
QStringList effects;
QStringList lines = read_file(p_path).split("\n");
@@ -1085,3 +1085,8 @@ bool AOApplication::get_animated_theme()
configini->value("animated_theme", "true").value<QString>();
return result.startsWith("true");
}
+
+QString AOApplication::get_default_scaling()
+{
+ return configini->value("default_scaling", "fast").value<QString>();
+}