Merge pull request #10 from OmniTroid/master
fixed that performance issue related to big IC logs
This commit is contained in:
		
						commit
						34a4519d1e
					
				@ -86,15 +86,17 @@ void AOApplication::destruct_courtroom()
 | 
				
			|||||||
  courtroom_constructed = false;
 | 
					  courtroom_constructed = false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString AOApplication::get_version_string(){
 | 
					QString AOApplication::get_version_string()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  return
 | 
					  return
 | 
				
			||||||
  QString::number(RELEASE) + "." +
 | 
					  QString::number(RELEASE) + "." +
 | 
				
			||||||
  QString::number(MAJOR_VERSION) + "." +
 | 
					  QString::number(MAJOR_VERSION) + "." +
 | 
				
			||||||
  QString::number(MINOR_VERSION);
 | 
					  QString::number(MINOR_VERSION);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AOApplication::set_user_theme(){
 | 
					void AOApplication::reload_theme()
 | 
				
			||||||
  user_theme = read_user_theme();
 | 
					{
 | 
				
			||||||
 | 
					  current_theme = read_theme();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AOApplication::set_favorite_list()
 | 
					void AOApplication::set_favorite_list()
 | 
				
			||||||
 | 
				
			|||||||
@ -77,6 +77,8 @@ public:
 | 
				
			|||||||
  int get_minor_version() {return MINOR_VERSION;}
 | 
					  int get_minor_version() {return MINOR_VERSION;}
 | 
				
			||||||
  QString get_version_string();
 | 
					  QString get_version_string();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ///////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void set_favorite_list();
 | 
					  void set_favorite_list();
 | 
				
			||||||
  QVector<server_type>& get_favorite_list() {return favorite_list;}
 | 
					  QVector<server_type>& get_favorite_list() {return favorite_list;}
 | 
				
			||||||
  void add_favorite_server(int p_server);
 | 
					  void add_favorite_server(int p_server);
 | 
				
			||||||
@ -84,8 +86,10 @@ public:
 | 
				
			|||||||
  void set_server_list();
 | 
					  void set_server_list();
 | 
				
			||||||
  QVector<server_type>& get_server_list() {return server_list;}
 | 
					  QVector<server_type>& get_server_list() {return server_list;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void set_user_theme();
 | 
					  //reads the theme from config.ini and sets it accordingly
 | 
				
			||||||
  QString get_user_theme() {return user_theme;}
 | 
					  void reload_theme();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //QString get_theme() {return current_theme;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString get_current_char();
 | 
					  QString get_current_char();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -103,8 +107,10 @@ public:
 | 
				
			|||||||
  QString get_evidence_path();
 | 
					  QString get_evidence_path();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //implementation in text_file_functions.cpp
 | 
					  //implementation in text_file_functions.cpp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  QString read_file(QString p_path);
 | 
				
			||||||
  QString read_config(QString searchline);
 | 
					  QString read_config(QString searchline);
 | 
				
			||||||
  QString read_user_theme();
 | 
					  QString read_theme();
 | 
				
			||||||
  int read_blip_rate();
 | 
					  int read_blip_rate();
 | 
				
			||||||
  bool get_blank_blip();
 | 
					  bool get_blank_blip();
 | 
				
			||||||
  int get_default_music();
 | 
					  int get_default_music();
 | 
				
			||||||
@ -143,7 +149,7 @@ private:
 | 
				
			|||||||
  const int MAJOR_VERSION = 4;
 | 
					  const int MAJOR_VERSION = 4;
 | 
				
			||||||
  const int MINOR_VERSION = 8;
 | 
					  const int MINOR_VERSION = 8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QString user_theme = "default";
 | 
					  QString current_theme = "default";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QVector<server_type> server_list;
 | 
					  QVector<server_type> server_list;
 | 
				
			||||||
  QVector<server_type> favorite_list;
 | 
					  QVector<server_type> favorite_list;
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,6 @@ void AOTextArea::append_chatmessage(QString p_name, QString p_message)
 | 
				
			|||||||
  this->insertHtml(result);
 | 
					  this->insertHtml(result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
 | 
					  this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
 | 
				
			||||||
  this->auto_truncate();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AOTextArea::append_error(QString p_message)
 | 
					void AOTextArea::append_error(QString p_message)
 | 
				
			||||||
@ -47,7 +46,6 @@ void AOTextArea::append_error(QString p_message)
 | 
				
			|||||||
  this->insertHtml("<font color='red'>" + result + "</font>");
 | 
					  this->insertHtml("<font color='red'>" + result + "</font>");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
 | 
					  this->auto_scroll(old_cursor, old_scrollbar_value, is_scrolled_down);
 | 
				
			||||||
  this->auto_truncate();
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void AOTextArea::auto_scroll(QTextCursor old_cursor, int old_scrollbar_value, bool is_scrolled_down)
 | 
					void AOTextArea::auto_scroll(QTextCursor old_cursor, int old_scrollbar_value, bool is_scrolled_down)
 | 
				
			||||||
@ -65,15 +63,3 @@ void AOTextArea::auto_scroll(QTextCursor old_cursor, int old_scrollbar_value, bo
 | 
				
			|||||||
      this->verticalScrollBar()->setValue(this->verticalScrollBar()->maximum());
 | 
					      this->verticalScrollBar()->setValue(this->verticalScrollBar()->maximum());
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
void AOTextArea::auto_truncate()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  QTextCursor temp_cursor = this->textCursor();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (this->document()->characterCount() > 500000)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    temp_cursor.movePosition(QTextCursor::Start);
 | 
					 | 
				
			||||||
    temp_cursor.select(QTextCursor::LineUnderCursor);
 | 
					 | 
				
			||||||
    temp_cursor.removeSelectedText();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -15,7 +15,6 @@ private:
 | 
				
			|||||||
  const QRegExp omnis_dank_url_regex = QRegExp("\\b(https?://\\S+\\.\\S+)\\b");
 | 
					  const QRegExp omnis_dank_url_regex = QRegExp("\\b(https?://\\S+\\.\\S+)\\b");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void auto_scroll(QTextCursor old_cursor, int scrollbar_value, bool is_scrolled_down);
 | 
					  void auto_scroll(QTextCursor old_cursor, int scrollbar_value, bool is_scrolled_down);
 | 
				
			||||||
  void auto_truncate();
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // AOTEXTAREA_H
 | 
					#endif // AOTEXTAREA_H
 | 
				
			||||||
 | 
				
			|||||||
@ -12,6 +12,7 @@
 | 
				
			|||||||
#include <QRegExp>
 | 
					#include <QRegExp>
 | 
				
			||||||
#include <QBrush>
 | 
					#include <QBrush>
 | 
				
			||||||
#include <QTextCharFormat>
 | 
					#include <QTextCharFormat>
 | 
				
			||||||
 | 
					#include <QFont>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
					Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -80,7 +81,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
  ui_vp_wtce = new AOMovie(this, ao_app);
 | 
					  ui_vp_wtce = new AOMovie(this, ao_app);
 | 
				
			||||||
  ui_vp_objection = new AOMovie(this, ao_app);
 | 
					  ui_vp_objection = new AOMovie(this, ao_app);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_ic_chatlog = new QPlainTextEdit(this);
 | 
					  ui_ic_chatlog = new QTextEdit(this);
 | 
				
			||||||
  ui_ic_chatlog->setReadOnly(true);
 | 
					  ui_ic_chatlog->setReadOnly(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_ms_chatlog = new AOTextArea(this);
 | 
					  ui_ms_chatlog = new AOTextArea(this);
 | 
				
			||||||
@ -963,7 +964,7 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
 | 
				
			|||||||
    ui_evidence_present->set_image("present_disabled.png");
 | 
					    ui_evidence_present->set_image("present_disabled.png");
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  append_ic_text("<b>" + f_showname.toHtmlEscaped() + "</b>: " + m_chatmessage[MESSAGE].toHtmlEscaped());
 | 
					  append_ic_text(": " + m_chatmessage[MESSAGE], f_showname);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  previous_ic_message = f_message;
 | 
					  previous_ic_message = f_message;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1147,17 +1148,20 @@ void Courtroom::handle_chatmessage_3()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Courtroom::append_ic_text(QString p_text)
 | 
					void Courtroom::append_ic_text(QString p_text, QString p_name)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  QTextCharFormat bold;
 | 
				
			||||||
 | 
					  QTextCharFormat normal;
 | 
				
			||||||
 | 
					  bold.setFontWeight(QFont::Bold);
 | 
				
			||||||
 | 
					  normal.setFontWeight(QFont::Normal);
 | 
				
			||||||
  const QTextCursor old_cursor = ui_ic_chatlog->textCursor();
 | 
					  const QTextCursor old_cursor = ui_ic_chatlog->textCursor();
 | 
				
			||||||
  const int old_scrollbar_value = ui_ic_chatlog->verticalScrollBar()->value();
 | 
					  const int old_scrollbar_value = ui_ic_chatlog->verticalScrollBar()->value();
 | 
				
			||||||
  const bool is_scrolled_up = old_scrollbar_value == ui_ic_chatlog->verticalScrollBar()->minimum();
 | 
					  const bool is_scrolled_up = old_scrollbar_value == ui_ic_chatlog->verticalScrollBar()->minimum();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_ic_chatlog->moveCursor(QTextCursor::Start);
 | 
					  ui_ic_chatlog->moveCursor(QTextCursor::Start);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ui_ic_chatlog->textCursor().insertHtml(p_text);
 | 
					  ui_ic_chatlog->textCursor().insertText(p_name, bold);
 | 
				
			||||||
  ui_ic_chatlog->textCursor().insertHtml("<br>");
 | 
					  ui_ic_chatlog->textCursor().insertText(p_text + '\n', normal);
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (old_cursor.hasSelection() || !is_scrolled_up)
 | 
					  if (old_cursor.hasSelection() || !is_scrolled_up)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -1527,7 +1531,7 @@ void Courtroom::handle_song(QStringList *p_contents)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (!mute_map.value(n_char))
 | 
					    if (!mute_map.value(n_char))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      append_ic_text("<b>" + str_char + "</b> has played a song: " + f_song);
 | 
					      append_ic_text(" has played a song: " + f_song, str_char);
 | 
				
			||||||
      music_player->play(f_song);
 | 
					      music_player->play(f_song);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -1969,7 +1973,7 @@ void Courtroom::on_change_character_clicked()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::on_reload_theme_clicked()
 | 
					void Courtroom::on_reload_theme_clicked()
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
  ao_app->set_user_theme();
 | 
					  ao_app->reload_theme();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //to update status on the background
 | 
					  //to update status on the background
 | 
				
			||||||
  set_background(current_background);
 | 
					  set_background(current_background);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										44
									
								
								courtroom.h
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								courtroom.h
									
									
									
									
									
								
							@ -44,17 +44,31 @@ public:
 | 
				
			|||||||
  void append_evidence(evi_type p_evi){evidence_list.append(p_evi);}
 | 
					  void append_evidence(evi_type p_evi){evidence_list.append(p_evi);}
 | 
				
			||||||
  void append_music(QString f_music){music_list.append(f_music);}
 | 
					  void append_music(QString f_music){music_list.append(f_music);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //sets position of widgets based on theme ini files
 | 
				
			||||||
  void set_widgets();
 | 
					  void set_widgets();
 | 
				
			||||||
 | 
					  //sets font size based on theme ini files
 | 
				
			||||||
  void set_font(QWidget *widget, QString p_identifier);
 | 
					  void set_font(QWidget *widget, QString p_identifier);
 | 
				
			||||||
 | 
					  //helper function that calls above function on the relevant widgets
 | 
				
			||||||
  void set_fonts();
 | 
					  void set_fonts();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  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
 | 
				
			||||||
  void set_size_and_pos(QWidget *p_widget, QString p_identifier);
 | 
					  void set_size_and_pos(QWidget *p_widget, QString p_identifier);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //sets status as taken on character with cid n_char and places proper shading on charselect
 | 
				
			||||||
  void set_taken(int n_char, bool p_taken);
 | 
					  void set_taken(int n_char, bool p_taken);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //sets the current background to argument. also does some checks to see if it's a legacy bg
 | 
				
			||||||
  void set_background(QString p_background);
 | 
					  void set_background(QString p_background);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //sets the evidence list member variable to argument
 | 
				
			||||||
  void set_evidence_list(QVector<evi_type> &p_evi_list);
 | 
					  void set_evidence_list(QVector<evi_type> &p_evi_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //called when a DONE#% from the server was received
 | 
				
			||||||
  void done_received();
 | 
					  void done_received();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //sets the local mute list based on characters available on the server
 | 
				
			||||||
  void set_mute_list();
 | 
					  void set_mute_list();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //sets desk and bg based on pos in chatmessage
 | 
					  //sets desk and bg based on pos in chatmessage
 | 
				
			||||||
@ -63,35 +77,58 @@ public:
 | 
				
			|||||||
  //sets text color based on text color in chatmessage
 | 
					  //sets text color based on text color in chatmessage
 | 
				
			||||||
  void set_text_color();
 | 
					  void set_text_color();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //takes in serverD-formatted IP list as prints a converted version to server OOC
 | 
				
			||||||
 | 
					  //admittedly poorly named
 | 
				
			||||||
  void set_ip_list(QString p_list);
 | 
					  void set_ip_list(QString p_list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //disables chat if current cid matches second argument
 | 
				
			||||||
 | 
					  //enables if p_muted is false
 | 
				
			||||||
  void set_mute(bool p_muted, int p_cid);
 | 
					  void set_mute(bool p_muted, int p_cid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //send a message that the player is banned and quits the server
 | 
				
			||||||
  void set_ban(int p_cid);
 | 
					  void set_ban(int p_cid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //implementations in path_functions.cpp
 | 
					  //implementations in path_functions.cpp
 | 
				
			||||||
  QString get_background_path();
 | 
					  QString get_background_path();
 | 
				
			||||||
  QString get_default_background_path();
 | 
					  QString get_default_background_path();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //cid = character id, returns the cid of the currently selected character
 | 
				
			||||||
  int get_cid() {return m_cid;}
 | 
					  int get_cid() {return m_cid;}
 | 
				
			||||||
  QString get_current_char() {return current_char;}
 | 
					  QString get_current_char() {return current_char;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //properly sets up some varibles: resets user state
 | 
				
			||||||
  void enter_courtroom(int p_cid);
 | 
					  void enter_courtroom(int p_cid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //helper function that populates ui_music_list with the contents of music_list
 | 
				
			||||||
  void list_music();
 | 
					  void list_music();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //these are for OOC chat
 | 
				
			||||||
  void append_ms_chatmessage(QString f_name, QString f_message);
 | 
					  void append_ms_chatmessage(QString f_name, QString f_message);
 | 
				
			||||||
  void append_server_chatmessage(QString p_name, QString p_message);
 | 
					  void append_server_chatmessage(QString p_name, QString p_message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //these functions handle chatmessages sequentially.
 | 
				
			||||||
 | 
					  //The process itself is very convoluted and merits separate documentation
 | 
				
			||||||
 | 
					  //But the general idea is objection animation->pre animation->talking->idle
 | 
				
			||||||
  void handle_chatmessage(QStringList *p_contents);
 | 
					  void handle_chatmessage(QStringList *p_contents);
 | 
				
			||||||
  void handle_chatmessage_2();
 | 
					  void handle_chatmessage_2();
 | 
				
			||||||
  void handle_chatmessage_3();
 | 
					  void handle_chatmessage_3();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void append_ic_text(QString p_text);
 | 
					  //adds text to the IC chatlog. p_name first as bold then p_text then a newlin
 | 
				
			||||||
 | 
					  //this function keeps the chatlog scrolled to the top unless there's text selected
 | 
				
			||||||
 | 
					  // or the user isn't already scrolled to the top
 | 
				
			||||||
 | 
					  void append_ic_text(QString p_text, QString p_name = "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //prints who played the song to IC chat and plays said song(if found on local filesystem)
 | 
				
			||||||
 | 
					  //takes in a list where the first element is the song name and the second is the char id of who played it
 | 
				
			||||||
  void handle_song(QStringList *p_contents);
 | 
					  void handle_song(QStringList *p_contents);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void play_preanim();
 | 
					  void play_preanim();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //plays the witness testimony or cross examination animation based on argument
 | 
				
			||||||
  void handle_wtce(QString p_wtce);
 | 
					  void handle_wtce(QString p_wtce);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //sets the hp bar of defense(p_bar 1) or pro(p_bar 2)
 | 
				
			||||||
 | 
					  //state is an number between 0 and 10 inclusive
 | 
				
			||||||
  void set_hp_bar(int p_bar, int p_state);
 | 
					  void set_hp_bar(int p_bar, int p_state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void check_connection_received();
 | 
					  void check_connection_received();
 | 
				
			||||||
@ -137,9 +174,12 @@ private:
 | 
				
			|||||||
  //delay before sfx plays
 | 
					  //delay before sfx plays
 | 
				
			||||||
  QTimer *sfx_delay_timer;
 | 
					  QTimer *sfx_delay_timer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //keeps track of how long realization is visible(it's just a white square and should be visible less than a second)
 | 
				
			||||||
  QTimer *realization_timer;
 | 
					  QTimer *realization_timer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //times how long the blinking testimony should be shown(green one in the corner)
 | 
				
			||||||
  QTimer *testimony_show_timer;
 | 
					  QTimer *testimony_show_timer;
 | 
				
			||||||
 | 
					  //times how long the blinking testimony should be hidden
 | 
				
			||||||
  QTimer *testimony_hide_timer;
 | 
					  QTimer *testimony_hide_timer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //every time point in char.inis times this equals the final time
 | 
					  //every time point in char.inis times this equals the final time
 | 
				
			||||||
@ -236,7 +276,7 @@ private:
 | 
				
			|||||||
  AOMovie *ui_vp_wtce;
 | 
					  AOMovie *ui_vp_wtce;
 | 
				
			||||||
  AOMovie *ui_vp_objection;
 | 
					  AOMovie *ui_vp_objection;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QPlainTextEdit *ui_ic_chatlog;
 | 
					  QTextEdit *ui_ic_chatlog;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  AOTextArea *ui_ms_chatlog;
 | 
					  AOTextArea *ui_ms_chatlog;
 | 
				
			||||||
  AOTextArea *ui_server_chatlog;
 | 
					  AOTextArea *ui_server_chatlog;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								lobby.cpp
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								lobby.cpp
									
									
									
									
									
								
							@ -4,6 +4,7 @@
 | 
				
			|||||||
#include "aoapplication.h"
 | 
					#include "aoapplication.h"
 | 
				
			||||||
#include "networkmanager.h"
 | 
					#include "networkmanager.h"
 | 
				
			||||||
#include "aosfxplayer.h"
 | 
					#include "aosfxplayer.h"
 | 
				
			||||||
 | 
					#include "file_functions.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <QDebug>
 | 
					#include <QDebug>
 | 
				
			||||||
#include <QScrollBar>
 | 
					#include <QScrollBar>
 | 
				
			||||||
@ -51,14 +52,27 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
 | 
				
			|||||||
  connect(ui_chatmessage, SIGNAL(returnPressed()), this, SLOT(on_chatfield_return_pressed()));
 | 
					  connect(ui_chatmessage, SIGNAL(returnPressed()), this, SLOT(on_chatfield_return_pressed()));
 | 
				
			||||||
  connect(ui_cancel, SIGNAL(clicked()), ao_app, SLOT(loading_cancelled()));
 | 
					  connect(ui_cancel, SIGNAL(clicked()), ao_app, SLOT(loading_cancelled()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_widgets();
 | 
					  //set_widgets();
 | 
				
			||||||
 | 
					  set_theme();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Lobby::set_theme()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  ao_app->reload_theme();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //check if our current theme is a valid qss theme
 | 
				
			||||||
 | 
					  if (!file_exists(ao_app->get_theme_path() + "lobby.qss"))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    set_widgets();
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  this->setStyleSheet(ao_app->read_file(ao_app->get_theme_path() + "lobby.qss"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//sets images, position and size
 | 
					//sets images, position and size
 | 
				
			||||||
void Lobby::set_widgets()
 | 
					void Lobby::set_widgets()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  ao_app->set_user_theme();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  QString filename = "lobby_design.ini";
 | 
					  QString filename = "lobby_design.ini";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  pos_size_type f_lobby = ao_app->get_element_dimensions("lobby", filename);
 | 
					  pos_size_type f_lobby = ao_app->get_element_dimensions("lobby", filename);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								lobby.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								lobby.h
									
									
									
									
									
								
							@ -23,6 +23,7 @@ class Lobby : public QMainWindow
 | 
				
			|||||||
public:
 | 
					public:
 | 
				
			||||||
  Lobby(AOApplication *p_ao_app);
 | 
					  Lobby(AOApplication *p_ao_app);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void set_theme();
 | 
				
			||||||
  void set_widgets();
 | 
					  void set_widgets();
 | 
				
			||||||
  void list_servers();
 | 
					  void list_servers();
 | 
				
			||||||
  void list_favorites();
 | 
					  void list_favorites();
 | 
				
			||||||
 | 
				
			|||||||
@ -53,7 +53,7 @@ QString AOApplication::get_data_path()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
QString AOApplication::get_theme_path()
 | 
					QString AOApplication::get_theme_path()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  return get_base_path() + "themes/" + user_theme.toLower() + "/";
 | 
					  return get_base_path() + "themes/" + current_theme.toLower() + "/";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString AOApplication::get_default_theme_path()
 | 
					QString AOApplication::get_default_theme_path()
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,15 @@
 | 
				
			|||||||
#include <QDebug>
 | 
					#include <QDebug>
 | 
				
			||||||
#include <QColor>
 | 
					#include <QColor>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString AOApplication::read_file(QString p_path)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  QFile file(p_path);
 | 
				
			||||||
 | 
					  if (!file.open(QFile::ReadOnly))
 | 
				
			||||||
 | 
					    return "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return file.readAll();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString AOApplication::read_config(QString searchline)
 | 
					QString AOApplication::read_config(QString searchline)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString return_value = "";
 | 
					  QString return_value = "";
 | 
				
			||||||
@ -42,7 +51,7 @@ QString AOApplication::read_config(QString searchline)
 | 
				
			|||||||
  return return_value;
 | 
					  return return_value;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString AOApplication::read_user_theme()
 | 
					QString AOApplication::read_theme()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QString result = read_config("theme");
 | 
					  QString result = read_config("theme");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user