diff options
| -rw-r--r-- | include/aoapplication.h | 10 | ||||
| -rw-r--r-- | include/aolayer.h | 4 | ||||
| -rw-r--r-- | include/aooptionsdialog.h | 4 | ||||
| -rw-r--r-- | src/aolayer.cpp | 28 | ||||
| -rw-r--r-- | src/aooptionsdialog.cpp | 34 | ||||
| -rw-r--r-- | src/charselect.cpp | 11 | ||||
| -rw-r--r-- | src/courtroom.cpp | 155 | ||||
| -rw-r--r-- | src/emotes.cpp | 4 | ||||
| -rw-r--r-- | src/evidence.cpp | 17 | ||||
| -rw-r--r-- | src/lobby.cpp | 26 | ||||
| -rw-r--r-- | src/text_file_functions.cpp | 31 |
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>(); +} |
