Merge pull request #473 from AttorneyOnline/fix/everything
Fix change character lag, bg resizing and repos weirdness, inconsistent behavior, sticker setting etc.
This commit is contained in:
		
						commit
						a64241a0f0
					
				@ -228,6 +228,9 @@ public:
 | 
				
			|||||||
  // for settings.
 | 
					  // for settings.
 | 
				
			||||||
  bool is_customchat_enabled();
 | 
					  bool is_customchat_enabled();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Returns the value of characer sticker (avatar) setting
 | 
				
			||||||
 | 
					  bool is_sticker_enabled();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Returns the value of whether continuous playback should be used
 | 
					  // Returns the value of whether continuous playback should be used
 | 
				
			||||||
  // from the config.ini.
 | 
					  // from the config.ini.
 | 
				
			||||||
  bool is_continuous_enabled();
 | 
					  bool is_continuous_enabled();
 | 
				
			||||||
 | 
				
			|||||||
@ -108,6 +108,9 @@ private:
 | 
				
			|||||||
  QLabel *ui_customchat_lbl;
 | 
					  QLabel *ui_customchat_lbl;
 | 
				
			||||||
  QCheckBox *ui_customchat_cb;
 | 
					  QCheckBox *ui_customchat_cb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QLabel *ui_sticker_lbl;
 | 
				
			||||||
 | 
					  QCheckBox *ui_sticker_cb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QLabel *ui_continuous_lbl;
 | 
					  QLabel *ui_continuous_lbl;
 | 
				
			||||||
  QCheckBox *ui_continuous_cb;
 | 
					  QCheckBox *ui_continuous_cb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -121,6 +121,9 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  void character_loading_finished();
 | 
					  void character_loading_finished();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //
 | 
				
			||||||
 | 
					  void set_courtroom_size();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // sets position of widgets based on theme ini files
 | 
					  // sets position of widgets based on theme ini files
 | 
				
			||||||
  void set_widgets();
 | 
					  void set_widgets();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -140,18 +143,15 @@ public:
 | 
				
			|||||||
  void set_fonts(QString p_char = "");
 | 
					  void set_fonts(QString p_char = "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // sets dropdown menu stylesheet
 | 
					  // sets dropdown menu stylesheet
 | 
				
			||||||
  void set_dropdown(QWidget *widget);
 | 
					  void set_stylesheet(QWidget *widget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // helper funciton that call above function on the relevant widgets
 | 
					  // helper funciton that call above function on the relevant widgets
 | 
				
			||||||
  void set_dropdowns();
 | 
					  void set_stylesheets();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void set_window_title(QString p_title);
 | 
					  void set_window_title(QString p_title);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // reads theme inis and sets size and pos based on the identifier
 | 
					  // reads theme and sets size and pos based on the identifier (using p_misc if provided)
 | 
				
			||||||
  void set_size_and_pos(QWidget *p_widget, QString p_identifier);
 | 
					  void set_size_and_pos(QWidget *p_widget, QString p_identifier, QString p_misc="");
 | 
				
			||||||
 | 
					 | 
				
			||||||
  // reads theme and char inis and sets size and pos based on the identifier
 | 
					 | 
				
			||||||
  void set_size_and_pos(QWidget *p_widget, QString p_identifier, QString p_char);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // reads theme inis and returns the size and pos as defined by it
 | 
					  // reads theme inis and returns the size and pos as defined by it
 | 
				
			||||||
  QPoint get_theme_pos(QString p_identifier);
 | 
					  QPoint get_theme_pos(QString p_identifier);
 | 
				
			||||||
@ -165,7 +165,7 @@ public:
 | 
				
			|||||||
  void set_background(QString p_background, bool display = false);
 | 
					  void set_background(QString p_background, bool display = false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // sets the local character pos/side to use.
 | 
					  // sets the local character pos/side to use.
 | 
				
			||||||
  void set_side(QString p_side, bool block_signals=true);
 | 
					  void set_side(QString p_side);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // sets the pos dropdown
 | 
					  // sets the pos dropdown
 | 
				
			||||||
  void set_pos_dropdown(QStringList pos_dropdowns);
 | 
					  void set_pos_dropdown(QStringList pos_dropdowns);
 | 
				
			||||||
@ -576,10 +576,6 @@ private:
 | 
				
			|||||||
  int evidence_rows = 3;
 | 
					  int evidence_rows = 3;
 | 
				
			||||||
  int max_evidence_on_page = 18;
 | 
					  int max_evidence_on_page = 18;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // is set to true if the bg folder contains defensedesk.png,
 | 
					 | 
				
			||||||
  // prosecutiondesk.png and stand.png
 | 
					 | 
				
			||||||
  bool is_ao2_bg = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // whether the ooc chat is server or master chat, true is server
 | 
					  // whether the ooc chat is server or master chat, true is server
 | 
				
			||||||
  bool server_ooc = true;
 | 
					  bool server_ooc = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -826,7 +822,7 @@ private slots:
 | 
				
			|||||||
  void music_random();
 | 
					  void music_random();
 | 
				
			||||||
  void music_list_expand_all();
 | 
					  void music_list_expand_all();
 | 
				
			||||||
  void music_list_collapse_all();
 | 
					  void music_list_collapse_all();
 | 
				
			||||||
  void music_stop();
 | 
					  void music_stop(bool no_effects = false);
 | 
				
			||||||
  void on_area_list_double_clicked(QTreeWidgetItem *p_item, int column);
 | 
					  void on_area_list_double_clicked(QTreeWidgetItem *p_item, int column);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void select_emote(int p_id);
 | 
					  void select_emote(int p_id);
 | 
				
			||||||
@ -838,6 +834,7 @@ private slots:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  void on_emote_dropdown_changed(int p_index);
 | 
					  void on_emote_dropdown_changed(int p_index);
 | 
				
			||||||
  void on_pos_dropdown_changed(int p_index);
 | 
					  void on_pos_dropdown_changed(int p_index);
 | 
				
			||||||
 | 
					  void on_pos_dropdown_changed(QString p_text);
 | 
				
			||||||
  void on_pos_remove_clicked();
 | 
					  void on_pos_remove_clicked();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void on_iniswap_dropdown_changed(int p_index);
 | 
					  void on_iniswap_dropdown_changed(int p_index);
 | 
				
			||||||
 | 
				
			|||||||
@ -17,6 +17,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <QDebug>
 | 
					#include <QDebug>
 | 
				
			||||||
#include <QScrollBar>
 | 
					#include <QScrollBar>
 | 
				
			||||||
 | 
					#include <QHeaderView>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AOApplication;
 | 
					class AOApplication;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -32,7 +33,7 @@ public:
 | 
				
			|||||||
  void append_chatmessage(QString f_name, QString f_message);
 | 
					  void append_chatmessage(QString f_name, QString f_message);
 | 
				
			||||||
  void append_error(QString f_message);
 | 
					  void append_error(QString f_message);
 | 
				
			||||||
  void set_player_count(int players_online, int max_players);
 | 
					  void set_player_count(int players_online, int max_players);
 | 
				
			||||||
  void set_stylesheet(QWidget *widget, QString target_tag);
 | 
					  void set_stylesheet(QWidget *widget);
 | 
				
			||||||
  void set_stylesheets();
 | 
					  void set_stylesheets();
 | 
				
			||||||
  void set_fonts();
 | 
					  void set_fonts();
 | 
				
			||||||
  void set_font(QWidget *widget, QString p_identifier);
 | 
					  void set_font(QWidget *widget, QString p_identifier);
 | 
				
			||||||
 | 
				
			|||||||
@ -240,12 +240,11 @@ void InterfaceLayer::load_image(QString p_filename, QString p_miscname)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void StickerLayer::load_image(QString p_charname)
 | 
					void StickerLayer::load_image(QString p_charname)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString p_miscname = ao_app->get_chat(p_charname);
 | 
					  QString p_miscname;
 | 
				
			||||||
 | 
					  if (ao_app->is_customchat_enabled())
 | 
				
			||||||
 | 
					    p_miscname = ao_app->get_chat(p_charname);
 | 
				
			||||||
  transform_mode = ao_app->get_misc_scaling(p_miscname);
 | 
					  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);
 | 
					  QString final_image = ao_app->get_image("sticker/" + p_charname, ao_app->current_theme, ao_app->get_subtheme(), ao_app->default_theme, p_miscname);
 | 
				
			||||||
  if (!file_exists((final_image)))
 | 
					 | 
				
			||||||
      final_image = ao_app->get_image_suffix(
 | 
					 | 
				
			||||||
                  ao_app->get_character_path(p_charname, "showname")), // Scuffed DRO way
 | 
					 | 
				
			||||||
  start_playback(final_image);
 | 
					  start_playback(final_image);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -261,6 +260,7 @@ void CharLayer::start_playback(QString p_image)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void AOLayer::start_playback(QString p_image)
 | 
					void AOLayer::start_playback(QString p_image)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  this->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!ao_app->is_continuous_enabled()) {
 | 
					  if (!ao_app->is_continuous_enabled()) {
 | 
				
			||||||
    continuous = false;
 | 
					    continuous = false;
 | 
				
			||||||
@ -322,7 +322,6 @@ void AOLayer::start_playback(QString p_image)
 | 
				
			|||||||
  int f_delay = m_reader.nextImageDelay();
 | 
					  int f_delay = m_reader.nextImageDelay();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  this->set_frame(f_pixmap);
 | 
					  this->set_frame(f_pixmap);
 | 
				
			||||||
  this->show();
 | 
					 | 
				
			||||||
  if (max_frames > 1) {
 | 
					  if (max_frames > 1) {
 | 
				
			||||||
    movie_frames.append(f_pixmap);
 | 
					    movie_frames.append(f_pixmap);
 | 
				
			||||||
    movie_delays.append(f_delay);
 | 
					    movie_delays.append(f_delay);
 | 
				
			||||||
@ -450,6 +449,10 @@ void CharLayer::load_network_effects()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void CharLayer::play_frame_effect(int p_frame)
 | 
					void CharLayer::play_frame_effect(int p_frame)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  if (p_frame >= movie_effects.size()) {
 | 
				
			||||||
 | 
					    qDebug() << "W: Attempted to play a frame effect bigger than the size of movie_effects";
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  if (p_frame < max_frames) {
 | 
					  if (p_frame < max_frames) {
 | 
				
			||||||
    foreach (QString effect, movie_effects[p_frame]) {
 | 
					    foreach (QString effect, movie_effects[p_frame]) {
 | 
				
			||||||
      if (effect == "shake") {
 | 
					      if (effect == "shake") {
 | 
				
			||||||
 | 
				
			|||||||
@ -485,6 +485,19 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_customchat_cb);
 | 
					  ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_customchat_cb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  row += 1;
 | 
				
			||||||
 | 
					  ui_sticker_lbl = new QLabel(ui_form_layout_widget);
 | 
				
			||||||
 | 
					  ui_sticker_lbl->setText(tr("Stickers:"));
 | 
				
			||||||
 | 
					  ui_sticker_lbl->setToolTip(
 | 
				
			||||||
 | 
					      tr("Turn this on to allow characters to define their own "
 | 
				
			||||||
 | 
					         "stickers (unique images that show up over the chatbox - like avatars or shownames)."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ui_gameplay_form->setWidget(row, QFormLayout::LabelRole, ui_sticker_lbl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ui_sticker_cb = new QCheckBox(ui_form_layout_widget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ui_gameplay_form->setWidget(row, QFormLayout::FieldRole, ui_sticker_cb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  row += 1;
 | 
					  row += 1;
 | 
				
			||||||
  ui_continuous_lbl = new QLabel(ui_form_layout_widget);
 | 
					  ui_continuous_lbl = new QLabel(ui_form_layout_widget);
 | 
				
			||||||
  ui_continuous_lbl->setText(tr("Continuous Playback:"));
 | 
					  ui_continuous_lbl->setText(tr("Continuous Playback:"));
 | 
				
			||||||
@ -691,8 +704,7 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app)
 | 
				
			|||||||
  ui_objectmusic_lbl = new QLabel(ui_audio_widget);
 | 
					  ui_objectmusic_lbl = new QLabel(ui_audio_widget);
 | 
				
			||||||
  ui_objectmusic_lbl->setText(tr("Kill Music On Objection:"));
 | 
					  ui_objectmusic_lbl->setText(tr("Kill Music On Objection:"));
 | 
				
			||||||
  ui_objectmusic_lbl->setToolTip(
 | 
					  ui_objectmusic_lbl->setToolTip(
 | 
				
			||||||
      tr("If true, AO2 will stop the music for you when you or someone else "
 | 
					      tr("If true, AO2 will ask the server to stop music when you use 'Objection!' "));
 | 
				
			||||||
         "does 'Objection!'."));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_objectmusic_lbl);
 | 
					  ui_audio_layout->setWidget(row, QFormLayout::LabelRole, ui_objectmusic_lbl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -909,6 +921,7 @@ void AOOptionsDialog::update_values() {
 | 
				
			|||||||
  ui_stickyeffects_cb->setChecked(ao_app->is_stickyeffects_enabled());
 | 
					  ui_stickyeffects_cb->setChecked(ao_app->is_stickyeffects_enabled());
 | 
				
			||||||
  ui_stickypres_cb->setChecked(ao_app->is_stickypres_enabled());
 | 
					  ui_stickypres_cb->setChecked(ao_app->is_stickypres_enabled());
 | 
				
			||||||
  ui_customchat_cb->setChecked(ao_app->is_customchat_enabled());
 | 
					  ui_customchat_cb->setChecked(ao_app->is_customchat_enabled());
 | 
				
			||||||
 | 
					  ui_sticker_cb->setChecked(ao_app->is_sticker_enabled());
 | 
				
			||||||
  ui_continuous_cb->setChecked(ao_app->is_continuous_enabled());
 | 
					  ui_continuous_cb->setChecked(ao_app->is_continuous_enabled());
 | 
				
			||||||
  ui_category_stop_cb->setChecked(ao_app->is_category_stop_enabled());
 | 
					  ui_category_stop_cb->setChecked(ao_app->is_category_stop_enabled());
 | 
				
			||||||
  ui_blank_blips_cb->setChecked(ao_app->get_blank_blip());
 | 
					  ui_blank_blips_cb->setChecked(ao_app->get_blank_blip());
 | 
				
			||||||
 | 
				
			|||||||
@ -177,7 +177,8 @@ void Courtroom::char_clicked(int n_char)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  else {
 | 
					  else {
 | 
				
			||||||
    update_character(n_char);
 | 
					    update_character(n_char);
 | 
				
			||||||
    set_widgets(); // so we don't erroneously keep the charselect's fixedSize
 | 
					    enter_courtroom();
 | 
				
			||||||
 | 
					    set_courtroom_size();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (n_char != -1)
 | 
					  if (n_char != -1)
 | 
				
			||||||
 | 
				
			|||||||
@ -308,6 +308,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  connect(ui_pos_dropdown, SIGNAL(currentIndexChanged(int)), this,
 | 
					  connect(ui_pos_dropdown, SIGNAL(currentIndexChanged(int)), this,
 | 
				
			||||||
          SLOT(on_pos_dropdown_changed(int)));
 | 
					          SLOT(on_pos_dropdown_changed(int)));
 | 
				
			||||||
 | 
					  connect(ui_pos_dropdown, SIGNAL(editTextChanged(QString)), this,
 | 
				
			||||||
 | 
					          SLOT(on_pos_dropdown_changed(QString)));
 | 
				
			||||||
  connect(ui_pos_remove, SIGNAL(clicked()), this, SLOT(on_pos_remove_clicked()));
 | 
					  connect(ui_pos_remove, SIGNAL(clicked()), this, SLOT(on_pos_remove_clicked()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  connect(ui_iniswap_dropdown, SIGNAL(currentIndexChanged(int)), this,
 | 
					  connect(ui_iniswap_dropdown, SIGNAL(currentIndexChanged(int)), this,
 | 
				
			||||||
@ -437,6 +439,28 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
  set_char_select();
 | 
					  set_char_select();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Courtroom::set_courtroom_size()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  QString filename = "courtroom_design.ini";
 | 
				
			||||||
 | 
					  pos_size_type f_courtroom =
 | 
				
			||||||
 | 
					      ao_app->get_element_dimensions("courtroom", filename);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (f_courtroom.width < 0 || f_courtroom.height < 0) {
 | 
				
			||||||
 | 
					    qDebug() << "W: did not find courtroom width or height in " << filename;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    this->setFixedSize(714, 668);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else {
 | 
				
			||||||
 | 
					    m_courtroom_width = f_courtroom.width;
 | 
				
			||||||
 | 
					    m_courtroom_height = f_courtroom.height;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    this->setFixedSize(f_courtroom.width, f_courtroom.height);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ui_background->move(0, 0);
 | 
				
			||||||
 | 
					  ui_background->resize(m_courtroom_width, m_courtroom_height);
 | 
				
			||||||
 | 
					  ui_background->set_image("courtroombackground");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_mute_list()
 | 
					void Courtroom::set_mute_list()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  mute_map.clear();
 | 
					  mute_map.clear();
 | 
				
			||||||
@ -480,27 +504,7 @@ void Courtroom::set_widgets()
 | 
				
			|||||||
  QSettings settings(ao_app->get_theme_path(filename, ao_app->current_theme), QSettings::IniFormat);
 | 
					  QSettings settings(ao_app->get_theme_path(filename, ao_app->current_theme), QSettings::IniFormat);
 | 
				
			||||||
  ao_app->default_theme = settings.value("default_theme", "default").toString();
 | 
					  ao_app->default_theme = settings.value("default_theme", "default").toString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  pos_size_type f_courtroom =
 | 
					 | 
				
			||||||
      ao_app->get_element_dimensions("courtroom", filename);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (f_courtroom.width < 0 || f_courtroom.height < 0) {
 | 
					 | 
				
			||||||
    qDebug() << "W: did not find courtroom width or height in " << filename;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    this->setFixedSize(714, 668);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    m_courtroom_width = f_courtroom.width;
 | 
					 | 
				
			||||||
    m_courtroom_height = f_courtroom.height;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    this->setFixedSize(f_courtroom.width, f_courtroom.height);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  set_fonts();
 | 
					  set_fonts();
 | 
				
			||||||
 | 
					 | 
				
			||||||
  ui_background->move(0, 0);
 | 
					 | 
				
			||||||
  ui_background->resize(m_courtroom_width, m_courtroom_height);
 | 
					 | 
				
			||||||
  ui_background->set_image("courtroombackground");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  set_size_and_pos(ui_viewport, "viewport");
 | 
					  set_size_and_pos(ui_viewport, "viewport");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // If there is a point to it, show all CCCC features.
 | 
					  // If there is a point to it, show all CCCC features.
 | 
				
			||||||
@ -680,22 +684,8 @@ void Courtroom::set_widgets()
 | 
				
			|||||||
  for (int i = 0; i < max_clocks; i++) {
 | 
					  for (int i = 0; i < max_clocks; i++) {
 | 
				
			||||||
    set_size_and_pos(ui_clock[i], "clock_" + QString::number(i));
 | 
					    set_size_and_pos(ui_clock[i], "clock_" + QString::number(i));
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  set_size_and_pos(ui_ic_chat_message, "ao2_ic_chat_message");
 | 
				
			||||||
  if (is_ao2_bg) {
 | 
					  set_size_and_pos(ui_ic_chat_name, "ao2_ic_chat_name");
 | 
				
			||||||
    set_size_and_pos(ui_ic_chat_message, "ao2_ic_chat_message");
 | 
					 | 
				
			||||||
    //  set_size_and_pos(ui_vp_chatbox, "ao2_chatbox");
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_ic_chat_name, "ao2_ic_chat_name");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_ic_chat_message, "ic_chat_message");
 | 
					 | 
				
			||||||
    //  set_size_and_pos(ui_vp_chatbox, "chatbox");
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_ic_chat_name, "ic_chat_name");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ui_ic_chat_message->setStyleSheet(
 | 
					 | 
				
			||||||
      "QLineEdit{background-color: rgba(100, 100, 100, 255);}");
 | 
					 | 
				
			||||||
  ui_ic_chat_name->setStyleSheet(
 | 
					 | 
				
			||||||
      "QLineEdit{background-color: rgba(180, 180, 180, 255);}");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_vp_chatbox->set_image("chatblank");
 | 
					  ui_vp_chatbox->set_image("chatblank");
 | 
				
			||||||
  ui_vp_chatbox->hide();
 | 
					  ui_vp_chatbox->hide();
 | 
				
			||||||
@ -719,21 +709,20 @@ void Courtroom::set_widgets()
 | 
				
			|||||||
  ui_muted->set_image("muted");
 | 
					  ui_muted->set_image("muted");
 | 
				
			||||||
  ui_muted->setToolTip(tr("Oops, you're muted!"));
 | 
					  ui_muted->setToolTip(tr("Oops, you're muted!"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_ooc_chat_message, "ooc_chat_message");
 | 
					  set_size_and_pos(ui_ooc_chat_message, "ooc_chat_message");;
 | 
				
			||||||
  ui_ooc_chat_message->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_ooc_chat_name, "ooc_chat_name");
 | 
					  set_size_and_pos(ui_ooc_chat_name, "ooc_chat_name");
 | 
				
			||||||
  ui_ooc_chat_name->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // set_size_and_pos(ui_area_password, "area_password");
 | 
					  // set_size_and_pos(ui_area_password, "area_password");
 | 
				
			||||||
  set_size_and_pos(ui_music_search, "music_search");
 | 
					  set_size_and_pos(ui_music_search, "music_search");
 | 
				
			||||||
  ui_music_search->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_emote_dropdown, "emote_dropdown");
 | 
					  set_size_and_pos(ui_emote_dropdown, "emote_dropdown");
 | 
				
			||||||
  ui_emote_dropdown->setToolTip(
 | 
					  ui_emote_dropdown->setToolTip(
 | 
				
			||||||
      tr("Set your character's emote to play on your next message."));
 | 
					      tr("Set your character's emote to play on your next message."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_pos_dropdown, "pos_dropdown");
 | 
					  set_size_and_pos(ui_pos_dropdown, "pos_dropdown");
 | 
				
			||||||
 | 
					  ui_pos_dropdown->setEditable(true);
 | 
				
			||||||
 | 
					  ui_pos_dropdown->setInsertPolicy(QComboBox::NoInsert);
 | 
				
			||||||
  ui_pos_dropdown->setToolTip(
 | 
					  ui_pos_dropdown->setToolTip(
 | 
				
			||||||
      tr("Set your character's supplementary background."));
 | 
					      tr("Set your character's supplementary background."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1046,7 +1035,7 @@ void Courtroom::set_fonts(QString p_char)
 | 
				
			|||||||
  for (int i = 0; i < max_clocks; i++)
 | 
					  for (int i = 0; i < max_clocks; i++)
 | 
				
			||||||
    set_font(ui_clock[i], "", "clock_" + QString::number(i), p_char);
 | 
					    set_font(ui_clock[i], "", "clock_" + QString::number(i), p_char);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_dropdowns();
 | 
					  set_stylesheets();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_font(QWidget *widget, QString class_name,
 | 
					void Courtroom::set_font(QWidget *widget, QString class_name,
 | 
				
			||||||
@ -1108,13 +1097,13 @@ void Courtroom::set_qfont(QWidget *widget, QString class_name, QFont font,
 | 
				
			|||||||
  widget->setFont(font);
 | 
					  widget->setFont(font);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString style_sheet_string =
 | 
					  QString style_sheet_string =
 | 
				
			||||||
      class_name + " { background-color: rgba(0, 0, 0, 0);\n" + "color: rgba(" +
 | 
					      class_name + " { color: rgba(" +
 | 
				
			||||||
      QString::number(f_color.red()) + ", " + QString::number(f_color.green()) +
 | 
					      QString::number(f_color.red()) + ", " + QString::number(f_color.green()) +
 | 
				
			||||||
      ", " + QString::number(f_color.blue()) + ", 255);}";
 | 
					      ", " + QString::number(f_color.blue()) + ", 255);}";
 | 
				
			||||||
  widget->setStyleSheet(style_sheet_string);
 | 
					  widget->setStyleSheet(style_sheet_string);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_dropdown(QWidget *widget)
 | 
					void Courtroom::set_stylesheet(QWidget *widget)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString f_file = "courtroom_stylesheets.css";
 | 
					  QString f_file = "courtroom_stylesheets.css";
 | 
				
			||||||
  QString style_sheet_string = ao_app->get_stylesheet(f_file);
 | 
					  QString style_sheet_string = ao_app->get_stylesheet(f_file);
 | 
				
			||||||
@ -1122,14 +1111,9 @@ void Courtroom::set_dropdown(QWidget *widget)
 | 
				
			|||||||
    widget->setStyleSheet(style_sheet_string);
 | 
					    widget->setStyleSheet(style_sheet_string);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_dropdowns()
 | 
					void Courtroom::set_stylesheets()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  set_dropdown(
 | 
					  set_stylesheet(this);
 | 
				
			||||||
      this); // EXPERIMENTAL - Read the style-sheet as-is for maximum memeage
 | 
					 | 
				
			||||||
  //  set_dropdown(ui_text_color, "[TEXT COLOR]");
 | 
					 | 
				
			||||||
  //  set_dropdown(ui_pos_dropdown, "[POS DROPDOWN]");
 | 
					 | 
				
			||||||
  //  set_dropdown(ui_emote_dropdown, "[EMOTE DROPDOWN]");
 | 
					 | 
				
			||||||
  //  set_dropdown(ui_mute_list, "[MUTE LIST]");
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_window_title(QString p_title)
 | 
					void Courtroom::set_window_title(QString p_title)
 | 
				
			||||||
@ -1137,30 +1121,12 @@ void Courtroom::set_window_title(QString p_title)
 | 
				
			|||||||
  this->setWindowTitle(p_title);
 | 
					  this->setWindowTitle(p_title);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier)
 | 
					void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier, QString p_misc)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString filename = "courtroom_design.ini";
 | 
					  QString filename = "courtroom_design.ini";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  pos_size_type design_ini_result =
 | 
					  pos_size_type design_ini_result =
 | 
				
			||||||
      ao_app->get_element_dimensions(p_identifier, filename);
 | 
					      ao_app->get_element_dimensions(p_identifier, filename, p_misc);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (design_ini_result.width < 0 || design_ini_result.height < 0) {
 | 
					 | 
				
			||||||
    qDebug() << "W: could not find \"" << p_identifier << "\" in " << filename;
 | 
					 | 
				
			||||||
    p_widget->hide();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    p_widget->move(design_ini_result.x, design_ini_result.y);
 | 
					 | 
				
			||||||
    p_widget->resize(design_ini_result.width, design_ini_result.height);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier,
 | 
					 | 
				
			||||||
                                 QString p_char)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  QString filename = "courtroom_design.ini";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  pos_size_type design_ini_result =
 | 
					 | 
				
			||||||
      ao_app->get_element_dimensions(p_identifier, filename, ao_app->get_chat(p_char));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (design_ini_result.width < 0 || design_ini_result.height < 0) {
 | 
					  if (design_ini_result.width < 0 || design_ini_result.height < 0) {
 | 
				
			||||||
    qDebug() << "W: could not find \"" << p_identifier << "\" in " << filename;
 | 
					    qDebug() << "W: could not find \"" << p_identifier << "\" in " << filename;
 | 
				
			||||||
@ -1268,19 +1234,8 @@ void Courtroom::set_background(QString p_background, bool display)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  set_pos_dropdown(pos_list);
 | 
					  set_pos_dropdown(pos_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  is_ao2_bg = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (is_ao2_bg) {
 | 
					 | 
				
			||||||
    // set_size_and_pos(ui_vp_chatbox, "ao2_chatbox");
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_ic_chat_message, "ao2_ic_chat_message");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    // set_size_and_pos(ui_vp_chatbox, "chatbox");
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_ic_chat_message, "ic_chat_message");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (display) {
 | 
					  if (display) {
 | 
				
			||||||
    ui_vp_speedlines->stop();
 | 
					    ui_vp_speedlines->hide();
 | 
				
			||||||
    ui_vp_player_char->stop();
 | 
					    ui_vp_player_char->stop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ui_vp_sideplayer_char->stop();
 | 
					    ui_vp_sideplayer_char->stop();
 | 
				
			||||||
@ -1288,7 +1243,7 @@ void Courtroom::set_background(QString p_background, bool display)
 | 
				
			|||||||
    ui_vp_message->hide();
 | 
					    ui_vp_message->hide();
 | 
				
			||||||
    ui_vp_chatbox->hide();
 | 
					    ui_vp_chatbox->hide();
 | 
				
			||||||
    // Stop the chat arrow from animating
 | 
					    // Stop the chat arrow from animating
 | 
				
			||||||
    ui_vp_chat_arrow->stop();
 | 
					    ui_vp_chat_arrow->hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Clear the message queue
 | 
					    // Clear the message queue
 | 
				
			||||||
    text_queue_timer->stop();
 | 
					    text_queue_timer->stop();
 | 
				
			||||||
@ -1307,55 +1262,47 @@ void Courtroom::set_background(QString p_background, bool display)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_side(QString p_side, bool block_signals)
 | 
					void Courtroom::set_side(QString p_side)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString f_side;
 | 
					  QString f_side;
 | 
				
			||||||
  if (p_side == "")
 | 
					  if (p_side == ao_app->get_char_side(current_char))
 | 
				
			||||||
 | 
					      p_side = "";
 | 
				
			||||||
 | 
					  current_side = p_side;
 | 
				
			||||||
 | 
					  if (current_side == "") {
 | 
				
			||||||
    f_side = ao_app->get_char_side(current_char);
 | 
					    f_side = ao_app->get_char_side(current_char);
 | 
				
			||||||
  else
 | 
					    ui_pos_remove->hide();
 | 
				
			||||||
    f_side = p_side;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (f_side == "jud") {
 | 
					 | 
				
			||||||
    ui_witness_testimony->show();
 | 
					 | 
				
			||||||
    ui_cross_examination->show();
 | 
					 | 
				
			||||||
    ui_not_guilty->show();
 | 
					 | 
				
			||||||
    ui_guilty->show();
 | 
					 | 
				
			||||||
    ui_defense_minus->show();
 | 
					 | 
				
			||||||
    ui_defense_plus->show();
 | 
					 | 
				
			||||||
    ui_prosecution_minus->show();
 | 
					 | 
				
			||||||
    ui_prosecution_plus->show();
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else {
 | 
					  else {
 | 
				
			||||||
    ui_witness_testimony->hide();
 | 
					    f_side = current_side;
 | 
				
			||||||
    ui_cross_examination->hide();
 | 
					    ui_pos_remove->show();
 | 
				
			||||||
    ui_guilty->hide();
 | 
					 | 
				
			||||||
    ui_not_guilty->hide();
 | 
					 | 
				
			||||||
    ui_defense_minus->hide();
 | 
					 | 
				
			||||||
    ui_defense_plus->hide();
 | 
					 | 
				
			||||||
    ui_prosecution_minus->hide();
 | 
					 | 
				
			||||||
    ui_prosecution_plus->hide();
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  toggle_judge_buttons(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (f_side == "jud")
 | 
				
			||||||
 | 
					    toggle_judge_buttons(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Block the signals to prevent setCurrentIndex from triggering a pos
 | 
				
			||||||
 | 
					  // change
 | 
				
			||||||
 | 
					  ui_pos_dropdown->blockSignals(true);
 | 
				
			||||||
  for (int i = 0; i < ui_pos_dropdown->count(); ++i) {
 | 
					  for (int i = 0; i < ui_pos_dropdown->count(); ++i) {
 | 
				
			||||||
    QString pos = ui_pos_dropdown->itemText(i);
 | 
					    QString pos = ui_pos_dropdown->itemText(i);
 | 
				
			||||||
    if (pos == f_side) {
 | 
					    if (pos == f_side) {
 | 
				
			||||||
      // Block the signals to prevent setCurrentIndex from triggering a pos
 | 
					 | 
				
			||||||
      // change
 | 
					 | 
				
			||||||
      if (block_signals)
 | 
					 | 
				
			||||||
        ui_pos_dropdown->blockSignals(true);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // Set the index on dropdown ui element to let you know what pos you're on
 | 
					      // Set the index on dropdown ui element to let you know what pos you're on
 | 
				
			||||||
      // right now
 | 
					      // right now
 | 
				
			||||||
      ui_pos_dropdown->setCurrentIndex(i);
 | 
					      ui_pos_dropdown->setCurrentIndex(i);
 | 
				
			||||||
 | 
					 | 
				
			||||||
      // Unblock the signals so the element can be used for setting pos again
 | 
					      // Unblock the signals so the element can be used for setting pos again
 | 
				
			||||||
      if (block_signals)
 | 
					      ui_pos_dropdown->blockSignals(false);
 | 
				
			||||||
        ui_pos_dropdown->blockSignals(false);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // alright we dun, jobs done here boyos
 | 
					      // alright we dun, jobs done here boyos
 | 
				
			||||||
      break;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  // We will only get there if we failed the last step
 | 
				
			||||||
 | 
					  ui_pos_dropdown->setEditText(f_side);
 | 
				
			||||||
 | 
					  // Unblock the signals so the element can be used for setting pos again
 | 
				
			||||||
 | 
					  ui_pos_dropdown->blockSignals(false);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::set_pos_dropdown(QStringList pos_dropdowns)
 | 
					void Courtroom::set_pos_dropdown(QStringList pos_dropdowns)
 | 
				
			||||||
@ -1365,8 +1312,13 @@ void Courtroom::set_pos_dropdown(QStringList pos_dropdowns)
 | 
				
			|||||||
  pos_dropdown_list = pos_dropdowns;
 | 
					  pos_dropdown_list = pos_dropdowns;
 | 
				
			||||||
  ui_pos_dropdown->clear();
 | 
					  ui_pos_dropdown->clear();
 | 
				
			||||||
  ui_pos_dropdown->addItems(pos_dropdown_list);
 | 
					  ui_pos_dropdown->addItems(pos_dropdown_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (current_side != "" && !pos_dropdown_list.contains(current_side))
 | 
				
			||||||
 | 
					    ui_pos_dropdown->setEditText(current_side);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Unblock the signals so the element can be used for setting pos again
 | 
					  // Unblock the signals so the element can be used for setting pos again
 | 
				
			||||||
  ui_pos_dropdown->blockSignals(false);
 | 
					  ui_pos_dropdown->blockSignals(false);
 | 
				
			||||||
 | 
					  // Don't block the signals when setting side
 | 
				
			||||||
  set_side(current_side);
 | 
					  set_side(current_side);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1461,12 +1413,6 @@ void Courtroom::update_character(int p_cid)
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  if (is_ao2_bg) {
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_vp_chatbox, "ao2_chatbox", f_char);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_vp_chatbox, "chatbox", f_char);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (m_cid != -1) // there is no name at char_list -1, and we crash if we try
 | 
					  if (m_cid != -1) // there is no name at char_list -1, and we crash if we try
 | 
				
			||||||
                   // to find one
 | 
					                   // to find one
 | 
				
			||||||
@ -1483,8 +1429,6 @@ void Courtroom::update_character(int p_cid)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::enter_courtroom()
 | 
					void Courtroom::enter_courtroom()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  set_widgets();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  current_evidence_page = 0;
 | 
					  current_evidence_page = 0;
 | 
				
			||||||
  current_evidence = 0;
 | 
					  current_evidence = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1803,6 +1747,10 @@ void Courtroom::on_chat_return_pressed()
 | 
				
			|||||||
  else
 | 
					  else
 | 
				
			||||||
    f_obj_state = QString::number(objection_state);
 | 
					    f_obj_state = QString::number(objection_state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // We're doing an Objection (custom objections not yet supported)
 | 
				
			||||||
 | 
					  if (objection_state == 2 && ao_app->objection_stop_music())
 | 
				
			||||||
 | 
					    music_stop(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  packet_contents.append(f_obj_state);
 | 
					  packet_contents.append(f_obj_state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (is_presenting_evidence)
 | 
					  if (is_presenting_evidence)
 | 
				
			||||||
@ -1997,7 +1945,13 @@ void Courtroom::chatmessage_enqueue(QStringList p_contents)
 | 
				
			|||||||
  // Record the log I/O, log files should be accurate.
 | 
					  // Record the log I/O, log files should be accurate.
 | 
				
			||||||
  // If desynced logs are on, display the log IC immediately.
 | 
					  // If desynced logs are on, display the log IC immediately.
 | 
				
			||||||
  LogMode log_mode = ao_app->is_desyncrhonized_logs_enabled() ? DISPLAY_AND_IO : IO_ONLY;
 | 
					  LogMode log_mode = ao_app->is_desyncrhonized_logs_enabled() ? DISPLAY_AND_IO : IO_ONLY;
 | 
				
			||||||
  log_chatmessage(p_contents[MESSAGE], f_char_id, p_contents[SHOWNAME], p_contents[TEXT_COLOR].toInt(), log_mode);
 | 
					
 | 
				
			||||||
 | 
					  // Use null showname if packet does not support 2.6+ extensions
 | 
				
			||||||
 | 
					  QString showname = QString();
 | 
				
			||||||
 | 
					  if (SHOWNAME < p_contents.size())
 | 
				
			||||||
 | 
					    showname = p_contents[SHOWNAME];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  log_chatmessage(p_contents[MESSAGE], f_char_id, showname, p_contents[TEXT_COLOR].toInt(), log_mode);
 | 
				
			||||||
  // Send this boi into the queue
 | 
					  // Send this boi into the queue
 | 
				
			||||||
  chatmessage_queue.enqueue(p_contents);
 | 
					  chatmessage_queue.enqueue(p_contents);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2057,7 +2011,7 @@ void Courtroom::unpack_chatmessage(QStringList p_contents)
 | 
				
			|||||||
  handle_callwords();
 | 
					  handle_callwords();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Reset the interface to make room for objection handling
 | 
					  // Reset the interface to make room for objection handling
 | 
				
			||||||
  ui_vp_chat_arrow->stop();
 | 
					  ui_vp_chat_arrow->hide();
 | 
				
			||||||
  text_state = 0;
 | 
					  text_state = 0;
 | 
				
			||||||
  anim_state = 0;
 | 
					  anim_state = 0;
 | 
				
			||||||
  evidence_presented = false;
 | 
					  evidence_presented = false;
 | 
				
			||||||
@ -2216,8 +2170,6 @@ bool Courtroom::handle_objection()
 | 
				
			|||||||
      filename = "objection_bubble";
 | 
					      filename = "objection_bubble";
 | 
				
			||||||
      objection_player->play("objection", m_chatmessage[CHAR_NAME],
 | 
					      objection_player->play("objection", m_chatmessage[CHAR_NAME],
 | 
				
			||||||
                             ao_app->get_chat(m_chatmessage[CHAR_NAME]));
 | 
					                             ao_app->get_chat(m_chatmessage[CHAR_NAME]));
 | 
				
			||||||
      if (ao_app->objection_stop_music())
 | 
					 | 
				
			||||||
        music_player->stop();
 | 
					 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 3:
 | 
					    case 3:
 | 
				
			||||||
      filename = "takethat_bubble";
 | 
					      filename = "takethat_bubble";
 | 
				
			||||||
@ -2261,7 +2213,7 @@ void Courtroom::effect_done()
 | 
				
			|||||||
void Courtroom::display_character()
 | 
					void Courtroom::display_character()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  // Stop all previously playing animations, effects etc.
 | 
					  // Stop all previously playing animations, effects etc.
 | 
				
			||||||
  ui_vp_speedlines->stop();
 | 
					  ui_vp_speedlines->hide();
 | 
				
			||||||
  ui_vp_player_char->stop();
 | 
					  ui_vp_player_char->stop();
 | 
				
			||||||
  ui_vp_effect->stop();
 | 
					  ui_vp_effect->stop();
 | 
				
			||||||
  // Clear all looping sfx to prevent obnoxiousness
 | 
					  // Clear all looping sfx to prevent obnoxiousness
 | 
				
			||||||
@ -2403,6 +2355,9 @@ void Courtroom::objection_done() { handle_ic_message(); }
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::handle_ic_message()
 | 
					void Courtroom::handle_ic_message()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  // Update the chatbox information
 | 
				
			||||||
 | 
					  initialize_chatbox();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Display our own character
 | 
					  // Display our own character
 | 
				
			||||||
  display_character();
 | 
					  display_character();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2420,9 +2375,6 @@ void Courtroom::handle_ic_message()
 | 
				
			|||||||
  // Parse the emote_mod part of the chat message
 | 
					  // Parse the emote_mod part of the chat message
 | 
				
			||||||
  handle_emote_mod(m_chatmessage[EMOTE_MOD].toInt(), m_chatmessage[IMMEDIATE].toInt() == 1);
 | 
					  handle_emote_mod(m_chatmessage[EMOTE_MOD].toInt(), m_chatmessage[IMMEDIATE].toInt() == 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Update the chatbox information
 | 
					 | 
				
			||||||
  initialize_chatbox();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // if we have instant objections disabled, and queue is not empty, check if next message after this is an objection.
 | 
					  // if we have instant objections disabled, and queue is not empty, check if next message after this is an objection.
 | 
				
			||||||
  if (!ao_app->is_instant_objection_enabled() && chatmessage_queue.size() > 0)
 | 
					  if (!ao_app->is_instant_objection_enabled() && chatmessage_queue.size() > 0)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -2546,23 +2498,18 @@ void Courtroom::initialize_chatbox()
 | 
				
			|||||||
  else {
 | 
					  else {
 | 
				
			||||||
    ui_vp_showname->setText(m_chatmessage[SHOWNAME]);
 | 
					    ui_vp_showname->setText(m_chatmessage[SHOWNAME]);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (is_ao2_bg) {
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_vp_chatbox, "ao2_chatbox", m_chatmessage[CHAR_NAME]);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    set_size_and_pos(ui_vp_chatbox, "chatbox", m_chatmessage[CHAR_NAME]);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  set_size_and_pos(ui_vp_showname, "showname", m_chatmessage[CHAR_NAME]);
 | 
					 | 
				
			||||||
  set_size_and_pos(ui_vp_message, "message", m_chatmessage[CHAR_NAME]);
 | 
					 | 
				
			||||||
  ui_vp_message->move(ui_vp_message->x() + ui_vp_chatbox->x(),
 | 
					 | 
				
			||||||
                      ui_vp_message->y() + ui_vp_chatbox->y());
 | 
					 | 
				
			||||||
  ui_vp_message->setTextInteractionFlags(Qt::NoTextInteraction);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  QString customchar;
 | 
					  QString customchar;
 | 
				
			||||||
  if (ao_app->is_customchat_enabled())
 | 
					  if (ao_app->is_customchat_enabled())
 | 
				
			||||||
    customchar = m_chatmessage[CHAR_NAME];
 | 
					    customchar = m_chatmessage[CHAR_NAME];
 | 
				
			||||||
  QString p_misc = ao_app->get_chat(customchar);
 | 
					  QString p_misc = ao_app->get_chat(customchar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  set_size_and_pos(ui_vp_chatbox, "ao2_chatbox", p_misc);
 | 
				
			||||||
 | 
					  set_size_and_pos(ui_vp_showname, "showname", p_misc);
 | 
				
			||||||
 | 
					  set_size_and_pos(ui_vp_message, "message", p_misc);
 | 
				
			||||||
 | 
					  ui_vp_message->move(ui_vp_message->x() + ui_vp_chatbox->x(),
 | 
				
			||||||
 | 
					                      ui_vp_message->y() + ui_vp_chatbox->y());
 | 
				
			||||||
 | 
					  ui_vp_message->setTextInteractionFlags(Qt::NoTextInteraction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (ui_vp_showname->text().trimmed().isEmpty()) // Whitespace showname
 | 
					  if (ui_vp_showname->text().trimmed().isEmpty()) // Whitespace showname
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    ui_vp_chatbox->set_image("chatblank", p_misc);
 | 
					    ui_vp_chatbox->set_image("chatblank", p_misc);
 | 
				
			||||||
@ -3157,6 +3104,15 @@ void Courtroom::play_preanim(bool immediate)
 | 
				
			|||||||
    qDebug() << "W: could not find " + anim_to_find;
 | 
					    qDebug() << "W: could not find " + anim_to_find;
 | 
				
			||||||
    return;
 | 
					    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_static_duration(preanim_duration);
 | 
				
			||||||
  ui_vp_player_char->set_play_once(true);
 | 
					  ui_vp_player_char->set_play_once(true);
 | 
				
			||||||
  ui_vp_player_char->load_image(f_preanim, f_char, preanim_duration, true);
 | 
					  ui_vp_player_char->load_image(f_preanim, f_char, preanim_duration, true);
 | 
				
			||||||
@ -3258,7 +3214,8 @@ void Courtroom::start_chat_ticking()
 | 
				
			|||||||
  ui_vp_chatbox->show();
 | 
					  ui_vp_chatbox->show();
 | 
				
			||||||
  ui_vp_message->show();
 | 
					  ui_vp_message->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_vp_sticker->load_image(m_chatmessage[CHAR_NAME]);
 | 
					  if (ao_app->is_sticker_enabled())
 | 
				
			||||||
 | 
					    ui_vp_sticker->load_image(m_chatmessage[CHAR_NAME]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (m_chatmessage[ADDITIVE] != "1") {
 | 
					  if (m_chatmessage[ADDITIVE] != "1") {
 | 
				
			||||||
    ui_vp_message->clear();
 | 
					    ui_vp_message->clear();
 | 
				
			||||||
@ -3736,7 +3693,7 @@ void Courtroom::handle_song(QStringList *p_contents)
 | 
				
			|||||||
    if (f_song == "~stop.mp3")
 | 
					    if (f_song == "~stop.mp3")
 | 
				
			||||||
      ui_music_name->setText(tr("None"));
 | 
					      ui_music_name->setText(tr("None"));
 | 
				
			||||||
    else if (channel == 0) {
 | 
					    else if (channel == 0) {
 | 
				
			||||||
      if (file_exists(ao_app->get_sfx_suffix(ao_app->get_music_path(f_song))) & !f_song.startsWith("http"))
 | 
					      if (file_exists(ao_app->get_sfx_suffix(ao_app->get_music_path(f_song))) && !f_song.startsWith("http"))
 | 
				
			||||||
        ui_music_name->setText(f_song_clear);
 | 
					        ui_music_name->setText(f_song_clear);
 | 
				
			||||||
      else if (f_song.startsWith("http"))
 | 
					      else if (f_song.startsWith("http"))
 | 
				
			||||||
        ui_music_name->setText(tr("[STREAM] %1").arg(f_song_clear));
 | 
					        ui_music_name->setText(tr("[STREAM] %1").arg(f_song_clear));
 | 
				
			||||||
@ -3780,7 +3737,7 @@ void Courtroom::handle_song(QStringList *p_contents)
 | 
				
			|||||||
      if (is_stop)
 | 
					      if (is_stop)
 | 
				
			||||||
        ui_music_name->setText(tr("None"));
 | 
					        ui_music_name->setText(tr("None"));
 | 
				
			||||||
      else if (channel == 0) {
 | 
					      else if (channel == 0) {
 | 
				
			||||||
        if (file_exists(ao_app->get_sfx_suffix(ao_app->get_music_path(f_song))) & !f_song.startsWith("http"))
 | 
					        if (file_exists(ao_app->get_sfx_suffix(ao_app->get_music_path(f_song))) && !f_song.startsWith("http"))
 | 
				
			||||||
          ui_music_name->setText(f_song_clear);
 | 
					          ui_music_name->setText(f_song_clear);
 | 
				
			||||||
        else if (f_song.startsWith("http"))
 | 
					        else if (f_song.startsWith("http"))
 | 
				
			||||||
          ui_music_name->setText(tr("[STREAM] %1").arg(f_song_clear));
 | 
					          ui_music_name->setText(tr("[STREAM] %1").arg(f_song_clear));
 | 
				
			||||||
@ -3806,14 +3763,14 @@ void Courtroom::handle_wtce(QString p_wtce, int variant)
 | 
				
			|||||||
      ui_vp_testimony->kill();
 | 
					      ui_vp_testimony->kill();
 | 
				
			||||||
      return;
 | 
					      return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    sfx_name = ao_app->get_court_sfx("witnesstestimony", bg_misc);
 | 
					    sfx_name = ao_app->get_court_sfx("witness_testimony", bg_misc);
 | 
				
			||||||
    filename = "witnesstestimony";
 | 
					    filename = "witnesstestimony_bubble";
 | 
				
			||||||
    ui_vp_testimony->load_image("testimony", "", bg_misc);
 | 
					    ui_vp_testimony->load_image("testimony", "", bg_misc);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // cross examination
 | 
					  // cross examination
 | 
				
			||||||
  else if (p_wtce == "testimony2") {
 | 
					  else if (p_wtce == "testimony2") {
 | 
				
			||||||
    sfx_name = ao_app->get_court_sfx("crossexamination", bg_misc);
 | 
					    sfx_name = ao_app->get_court_sfx("cross_examination", bg_misc);
 | 
				
			||||||
    filename = "crossexamination";
 | 
					    filename = "crossexamination_bubble";
 | 
				
			||||||
    ui_vp_testimony->kill();
 | 
					    ui_vp_testimony->kill();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else {
 | 
					  else {
 | 
				
			||||||
@ -3822,13 +3779,13 @@ void Courtroom::handle_wtce(QString p_wtce, int variant)
 | 
				
			|||||||
    // Verdict?
 | 
					    // Verdict?
 | 
				
			||||||
    if (p_wtce == "judgeruling") {
 | 
					    if (p_wtce == "judgeruling") {
 | 
				
			||||||
      if (variant == 0) {
 | 
					      if (variant == 0) {
 | 
				
			||||||
        sfx_name = ao_app->get_court_sfx("notguilty", bg_misc);
 | 
					        sfx_name = ao_app->get_court_sfx("not_guilty", bg_misc);
 | 
				
			||||||
        filename = "notguilty";
 | 
					        filename = "notguilty_bubble";
 | 
				
			||||||
        ui_vp_testimony->kill();
 | 
					        ui_vp_testimony->kill();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      else if (variant == 1) {
 | 
					      else if (variant == 1) {
 | 
				
			||||||
        sfx_name = ao_app->get_court_sfx("guilty", bg_misc);
 | 
					        sfx_name = ao_app->get_court_sfx("guilty", bg_misc);
 | 
				
			||||||
        filename = "guilty";
 | 
					        filename = "guilty_bubble";
 | 
				
			||||||
        ui_vp_testimony->kill();
 | 
					        ui_vp_testimony->kill();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -4312,28 +4269,17 @@ void Courtroom::on_pos_dropdown_changed(int p_index)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  if (p_index < 0)
 | 
					  if (p_index < 0)
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
 | 
					  on_pos_dropdown_changed(ui_pos_dropdown->itemText(p_index));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  toggle_judge_buttons(false);
 | 
					void Courtroom::on_pos_dropdown_changed(QString p_text)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  QString f_pos = ui_pos_dropdown->itemText(p_index);
 | 
					  set_side(p_text);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (f_pos == "")
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (f_pos == "jud")
 | 
					 | 
				
			||||||
    toggle_judge_buttons(true);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  ui_pos_remove->show();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  current_side = f_pos;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // YEAH SENDING LIKE 20 PACKETS IF THE USER SCROLLS THROUGH, GREAT IDEA
 | 
					 | 
				
			||||||
  // how about this instead
 | 
					 | 
				
			||||||
  set_side(f_pos);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_pos_remove_clicked()
 | 
					void Courtroom::on_pos_remove_clicked()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  ui_pos_dropdown->blockSignals(true);
 | 
				
			||||||
  QString default_side = ao_app->get_char_side(current_char);
 | 
					  QString default_side = ao_app->get_char_side(current_char);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (int i = 0; i < ui_pos_dropdown->count(); ++i) {
 | 
					  for (int i = 0; i < ui_pos_dropdown->count(); ++i) {
 | 
				
			||||||
@ -4344,10 +4290,11 @@ void Courtroom::on_pos_remove_clicked()
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  int wit_index = ui_pos_dropdown->findText("wit");
 | 
					  int wit_index = ui_pos_dropdown->findText("wit");
 | 
				
			||||||
  if ((ui_pos_dropdown->currentText() != default_side) & (wit_index != -1)) //i.e. this bg doesn't have our pos
 | 
					  if (ui_pos_dropdown->currentText() != default_side && wit_index != -1) //i.e. this bg doesn't have our pos
 | 
				
			||||||
    ui_pos_dropdown->setCurrentIndex(wit_index); // fall back to "wit"
 | 
					    ui_pos_dropdown->setCurrentIndex(wit_index); // fall back to "wit"
 | 
				
			||||||
  else if (ui_pos_dropdown->currentText() != default_side) // we don't have "wit" either?
 | 
					  else if (ui_pos_dropdown->currentText() != default_side) // we don't have "wit" either?
 | 
				
			||||||
    ui_pos_dropdown->setCurrentIndex(0); // as a last resort, choose the first item in the dropdown
 | 
					    ui_pos_dropdown->setCurrentIndex(0); // as a last resort, choose the first item in the dropdown
 | 
				
			||||||
 | 
					  ui_pos_dropdown->blockSignals(false);
 | 
				
			||||||
  current_side = "";
 | 
					  current_side = "";
 | 
				
			||||||
  ui_pos_remove->hide();
 | 
					  ui_pos_remove->hide();
 | 
				
			||||||
  ui_ic_chat_message->setFocus();
 | 
					  ui_ic_chat_message->setFocus();
 | 
				
			||||||
@ -4832,7 +4779,7 @@ void Courtroom::music_list_collapse_all()
 | 
				
			|||||||
  ui_music_list->setCurrentItem(current);
 | 
					  ui_music_list->setCurrentItem(current);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::music_stop()
 | 
					void Courtroom::music_stop(bool no_effects)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (is_muted)
 | 
					  if (is_muted)
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
@ -4857,8 +4804,12 @@ void Courtroom::music_stop()
 | 
				
			|||||||
  if ((!ui_ic_chat_name->text().isEmpty() && ao_app->cccc_ic_support_enabled) ||
 | 
					  if ((!ui_ic_chat_name->text().isEmpty() && ao_app->cccc_ic_support_enabled) ||
 | 
				
			||||||
      ao_app->effects_enabled)
 | 
					      ao_app->effects_enabled)
 | 
				
			||||||
    packet_contents.append(ui_ic_chat_name->text());
 | 
					    packet_contents.append(ui_ic_chat_name->text());
 | 
				
			||||||
  if (ao_app->effects_enabled)
 | 
					  if (ao_app->effects_enabled) {
 | 
				
			||||||
    packet_contents.append(QString::number(music_flags));
 | 
					    if (no_effects)
 | 
				
			||||||
 | 
					      packet_contents.append("0");
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      packet_contents.append(QString::number(music_flags));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  ao_app->send_server_packet(new AOPacket("MC", packet_contents), false);
 | 
					  ao_app->send_server_packet(new AOPacket("MC", packet_contents), false);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -5264,8 +5215,10 @@ void Courtroom::on_reload_theme_clicked()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  ao_app->reload_theme();
 | 
					  ao_app->reload_theme();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  enter_courtroom();
 | 
					  set_courtroom_size();
 | 
				
			||||||
 | 
					  set_widgets();
 | 
				
			||||||
  update_character(m_cid);
 | 
					  update_character(m_cid);
 | 
				
			||||||
 | 
					  enter_courtroom();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  anim_state = 4;
 | 
					  anim_state = 4;
 | 
				
			||||||
  text_state = 3;
 | 
					  text_state = 3;
 | 
				
			||||||
 | 
				
			|||||||
@ -41,8 +41,6 @@ void Courtroom::initialize_evidence()
 | 
				
			|||||||
                                "evidence and send them to server."));
 | 
					                                "evidence and send them to server."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_evidence_description = new AOTextEdit(ui_evidence_overlay);
 | 
					  ui_evidence_description = new AOTextEdit(ui_evidence_overlay);
 | 
				
			||||||
  ui_evidence_description->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
 | 
					 | 
				
			||||||
                                         "color: white;");
 | 
					 | 
				
			||||||
  ui_evidence_description->setFrameStyle(QFrame::NoFrame);
 | 
					  ui_evidence_description->setFrameStyle(QFrame::NoFrame);
 | 
				
			||||||
  ui_evidence_description->setToolTip(
 | 
					  ui_evidence_description->setToolTip(
 | 
				
			||||||
      tr("Double-click to edit. Press [X] to update your changes."));
 | 
					      tr("Double-click to edit. Press [X] to update your changes."));
 | 
				
			||||||
 | 
				
			|||||||
@ -28,8 +28,13 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  ui_server_list = new QTreeWidget(this);
 | 
					  ui_server_list = new QTreeWidget(this);
 | 
				
			||||||
  ui_server_list->setHeaderLabels({"#", "Name"}); //, "Players"});
 | 
					  ui_server_list->setHeaderLabels({"#", "Name"}); //, "Players"});
 | 
				
			||||||
  ui_server_list->hideColumn(0);
 | 
					  ui_server_list->setTextElideMode(Qt::ElideNone);
 | 
				
			||||||
  ui_server_list->setHeaderHidden(true);
 | 
					  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_search = new QLineEdit(this);
 | 
					  ui_server_search = new QLineEdit(this);
 | 
				
			||||||
  ui_server_search->setFrame(false);
 | 
					  ui_server_search->setFrame(false);
 | 
				
			||||||
@ -137,36 +142,21 @@ void Lobby::set_widgets()
 | 
				
			|||||||
      tr("Allows you to change various aspects of the client."));
 | 
					      tr("Allows you to change various aspects of the client."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_server_list, "server_list");
 | 
					  set_size_and_pos(ui_server_list, "server_list");
 | 
				
			||||||
  ui_server_list->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
 | 
					 | 
				
			||||||
                                "font: bold;");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_server_search, "server_search");
 | 
					  set_size_and_pos(ui_server_search, "server_search");
 | 
				
			||||||
  ui_server_search->setStyleSheet("background-color: rgba(0, 0, 0, 0);");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_player_count, "player_count");
 | 
					  set_size_and_pos(ui_player_count, "player_count");
 | 
				
			||||||
  ui_player_count->setText(tr("Offline"));
 | 
					  ui_player_count->setText(tr("Offline"));
 | 
				
			||||||
  ui_player_count->setStyleSheet("font: bold;"
 | 
					 | 
				
			||||||
                                 "color: white;"
 | 
					 | 
				
			||||||
                                 "qproperty-alignment: AlignCenter;");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_description, "description");
 | 
					  set_size_and_pos(ui_description, "description");
 | 
				
			||||||
  ui_description->setReadOnly(true);
 | 
					  ui_description->setReadOnly(true);
 | 
				
			||||||
  ui_description->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
 | 
					 | 
				
			||||||
                                "color: white;");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_chatbox, "chatbox");
 | 
					  set_size_and_pos(ui_chatbox, "chatbox");
 | 
				
			||||||
  ui_chatbox->setReadOnly(true);
 | 
					  ui_chatbox->setReadOnly(true);
 | 
				
			||||||
  ui_chatbox->setStyleSheet(
 | 
					 | 
				
			||||||
      "QTextBrowser{background-color: rgba(0, 0, 0, 0);}");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_chatname, "chatname");
 | 
					  set_size_and_pos(ui_chatname, "chatname");
 | 
				
			||||||
  ui_chatname->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
 | 
					 | 
				
			||||||
                             "selection-background-color: rgba(0, 0, 0, 0);");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_chatmessage, "chatmessage");
 | 
					  set_size_and_pos(ui_chatmessage, "chatmessage");
 | 
				
			||||||
  ui_chatmessage->setStyleSheet(
 | 
					 | 
				
			||||||
      "background-color: rgba(0, 0, 0, 0);"
 | 
					 | 
				
			||||||
      "selection-background-color: rgba(0, 0, 0, 0);");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_loading_background->resize(this->width(), this->height());
 | 
					  ui_loading_background->resize(this->width(), this->height());
 | 
				
			||||||
  ui_loading_background->set_image("loadingbackground");
 | 
					  ui_loading_background->set_image("loadingbackground");
 | 
				
			||||||
@ -176,8 +166,6 @@ void Lobby::set_widgets()
 | 
				
			|||||||
  ui_loading_text->setReadOnly(true);
 | 
					  ui_loading_text->setReadOnly(true);
 | 
				
			||||||
  ui_loading_text->setAlignment(Qt::AlignCenter);
 | 
					  ui_loading_text->setAlignment(Qt::AlignCenter);
 | 
				
			||||||
  ui_loading_text->setFrameStyle(QFrame::NoFrame);
 | 
					  ui_loading_text->setFrameStyle(QFrame::NoFrame);
 | 
				
			||||||
  ui_loading_text->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
 | 
					 | 
				
			||||||
                                 "color: rgba(255, 128, 0, 255);");
 | 
					 | 
				
			||||||
  ui_loading_text->append(tr("Loading"));
 | 
					  ui_loading_text->append(tr("Loading"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_size_and_pos(ui_progress_bar, "progress_bar");
 | 
					  set_size_and_pos(ui_progress_bar, "progress_bar");
 | 
				
			||||||
@ -218,24 +206,17 @@ void Lobby::set_fonts()
 | 
				
			|||||||
  set_font(ui_server_list, "server_list");
 | 
					  set_font(ui_server_list, "server_list");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Lobby::set_stylesheet(QWidget *widget, QString target_tag)
 | 
					void Lobby::set_stylesheet(QWidget *widget)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString f_file = "lobby_stylesheets.css";
 | 
					  QString f_file = "lobby_stylesheets.css";
 | 
				
			||||||
  QString style_sheet_string =
 | 
					  QString style_sheet_string = ao_app->get_stylesheet(f_file);
 | 
				
			||||||
      ao_app->get_tagged_stylesheet(target_tag, f_file);
 | 
					 | 
				
			||||||
  if (style_sheet_string != "")
 | 
					  if (style_sheet_string != "")
 | 
				
			||||||
    widget->setStyleSheet(style_sheet_string);
 | 
					    widget->setStyleSheet(style_sheet_string);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Lobby::set_stylesheets()
 | 
					void Lobby::set_stylesheets()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  set_stylesheet(ui_player_count, "[PLAYER COUNT]");
 | 
					  set_stylesheet(this);
 | 
				
			||||||
  set_stylesheet(ui_description, "[DESCRIPTION]");
 | 
					 | 
				
			||||||
  set_stylesheet(ui_chatbox, "[CHAT BOX]");
 | 
					 | 
				
			||||||
  set_stylesheet(ui_chatname, "[CHAT NAME]");
 | 
					 | 
				
			||||||
  set_stylesheet(ui_chatmessage, "[CHAT MESSAGE]");
 | 
					 | 
				
			||||||
  set_stylesheet(ui_loading_text, "[LOADING TEXT]");
 | 
					 | 
				
			||||||
  set_stylesheet(ui_server_list, "[SERVER LIST]");
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Lobby::set_font(QWidget *widget, QString p_identifier)
 | 
					void Lobby::set_font(QWidget *widget, QString p_identifier)
 | 
				
			||||||
 | 
				
			|||||||
@ -462,6 +462,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
      goto end;
 | 
					      goto end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (courtroom_constructed) {
 | 
					    if (courtroom_constructed) {
 | 
				
			||||||
 | 
					      qDebug() << f_contents;
 | 
				
			||||||
      if (f_contents.size() >=
 | 
					      if (f_contents.size() >=
 | 
				
			||||||
          2) // We have a pos included in the background packet!
 | 
					          2) // We have a pos included in the background packet!
 | 
				
			||||||
        w_courtroom->set_side(f_contents.at(1));
 | 
					        w_courtroom->set_side(f_contents.at(1));
 | 
				
			||||||
@ -475,7 +476,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (courtroom_constructed) // We were sent a "set position" packet
 | 
					    if (courtroom_constructed) // We were sent a "set position" packet
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      w_courtroom->set_side(f_contents.at(0), false);
 | 
					      w_courtroom->set_side(f_contents.at(0));
 | 
				
			||||||
      append_to_demofile(p_packet->to_string(true));
 | 
					      append_to_demofile(p_packet->to_string(true));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -493,8 +494,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    w_courtroom->enter_courtroom();
 | 
					    w_courtroom->enter_courtroom();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (courtroom_constructed)
 | 
					    if (courtroom_constructed) {
 | 
				
			||||||
 | 
					      w_courtroom->set_courtroom_size();
 | 
				
			||||||
      w_courtroom->update_character(f_contents.at(2).toInt());
 | 
					      w_courtroom->update_character(f_contents.at(2).toInt());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else if (header == "MS") {
 | 
					  else if (header == "MS") {
 | 
				
			||||||
    if (courtroom_constructed && courtroom_loaded)
 | 
					    if (courtroom_constructed && courtroom_loaded)
 | 
				
			||||||
 | 
				
			|||||||
@ -981,6 +981,12 @@ bool AOApplication::is_customchat_enabled()
 | 
				
			|||||||
  return result.startsWith("true");
 | 
					  return result.startsWith("true");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool AOApplication::is_sticker_enabled()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  QString result = configini->value("sticker", "true").value<QString>();
 | 
				
			||||||
 | 
					  return result.startsWith("true");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool AOApplication::is_continuous_enabled()
 | 
					bool AOApplication::is_continuous_enabled()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString result = configini->value("continuous_playback", "true").value<QString>();
 | 
					  QString result = configini->value("continuous_playback", "true").value<QString>();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user