Restore position in AOApplication
This commit is contained in:
		
							parent
							
								
									8fac2ada62
								
							
						
					
					
						commit
						e34b2534ed
					
				@ -51,18 +51,7 @@ void AOApplication::construct_lobby()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  w_lobby = new Lobby(this, net_manager);
 | 
					  w_lobby = new Lobby(this, net_manager);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  auto point = Options::getInstance().windowPosition("lobby");
 | 
					  centerOrMoveWidgetOnPrimaryScreen(w_lobby);
 | 
				
			||||||
  if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value() || !pointExistsOnScreen(point.value()))
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    QRect geometry = QGuiApplication::primaryScreen()->geometry();
 | 
					 | 
				
			||||||
    int x = (geometry.width() - w_lobby->width()) / 2;
 | 
					 | 
				
			||||||
    int y = (geometry.height() - w_lobby->height()) / 2;
 | 
					 | 
				
			||||||
    w_lobby->move(x, y);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    w_lobby->move(point->x(), point->y());
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (Options::getInstance().discordEnabled())
 | 
					  if (Options::getInstance().discordEnabled())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -104,10 +93,7 @@ void AOApplication::construct_courtroom()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  w_courtroom = new Courtroom(this);
 | 
					  w_courtroom = new Courtroom(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QRect geometry = QGuiApplication::primaryScreen()->geometry();
 | 
					  centerOrMoveWidgetOnPrimaryScreen(w_courtroom);
 | 
				
			||||||
  int x = (geometry.width() - w_courtroom->width()) / 2;
 | 
					 | 
				
			||||||
  int y = (geometry.height() - w_courtroom->height()) / 2;
 | 
					 | 
				
			||||||
  w_courtroom->move(x, y);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (demo_server != nullptr)
 | 
					  if (demo_server != nullptr)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -245,6 +231,24 @@ bool AOApplication::pointExistsOnScreen(QPoint point)
 | 
				
			|||||||
  return false;
 | 
					  return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AOApplication::centerOrMoveWidgetOnPrimaryScreen(QWidget *widget)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  auto point = Options::getInstance().windowPosition(widget->objectName());
 | 
				
			||||||
 | 
					  qDebug() << widget->objectName();
 | 
				
			||||||
 | 
					  qDebug() << point.has_value();
 | 
				
			||||||
 | 
					  if (!Options::getInstance().restoreWindowPositionEnabled() || !point.has_value() || !pointExistsOnScreen(point.value()))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    QRect geometry = QGuiApplication::primaryScreen()->geometry();
 | 
				
			||||||
 | 
					    int x = (geometry.width() - widget->width()) / 2;
 | 
				
			||||||
 | 
					    int y = (geometry.height() - widget->height()) / 2;
 | 
				
			||||||
 | 
					    widget->move(x, y);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    widget->move(point->x(), point->y());
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if (defined(_WIN32) || defined(_WIN64))
 | 
					#if (defined(_WIN32) || defined(_WIN64))
 | 
				
			||||||
void AOApplication::load_bass_plugins()
 | 
					void AOApplication::load_bass_plugins()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -326,6 +326,7 @@ public:
 | 
				
			|||||||
  QString log_filename;
 | 
					  QString log_filename;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool pointExistsOnScreen(QPoint point);
 | 
					  bool pointExistsOnScreen(QPoint point);
 | 
				
			||||||
 | 
					  void centerOrMoveWidgetOnPrimaryScreen(QWidget *widget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void initBASS();
 | 
					  void initBASS();
 | 
				
			||||||
  static void load_bass_plugins();
 | 
					  static void load_bass_plugins();
 | 
				
			||||||
 | 
				
			|||||||
@ -11,6 +11,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
 | 
				
			|||||||
    , ao_app{p_ao_app}
 | 
					    , ao_app{p_ao_app}
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
 | 
					  setWindowFlags((this->windowFlags() | Qt::CustomizeWindowHint) & ~Qt::WindowMaximizeButtonHint);
 | 
				
			||||||
 | 
					  setObjectName("courtroom");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ao_app->initBASS();
 | 
					  ao_app->initBASS();
 | 
				
			||||||
  keepalive_timer = new QTimer(this);
 | 
					  keepalive_timer = new QTimer(this);
 | 
				
			||||||
@ -1370,16 +1371,6 @@ void Courtroom::done_received()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  show();
 | 
					  show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (Options::getInstance().restoreWindowPositionEnabled())
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    auto maybe_point = Options::getInstance().windowPosition("courtroom");
 | 
					 | 
				
			||||||
    if (maybe_point.has_value() && ao_app->pointExistsOnScreen(maybe_point.value()))
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      qDebug() << maybe_point.value();
 | 
					 | 
				
			||||||
      QMainWindow::move(maybe_point.value());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ui_spectator->show();
 | 
					  ui_spectator->show();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1917,8 +1908,7 @@ void Courtroom::set_judge_buttons()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Courtroom::closeEvent(QCloseEvent *event)
 | 
					void Courtroom::closeEvent(QCloseEvent *event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Options::getInstance().setWindowPosition("courtroom", pos());
 | 
					  Options::getInstance().setWindowPosition(objectName(), pos());
 | 
				
			||||||
  qDebug() << pos();
 | 
					 | 
				
			||||||
  QMainWindow::closeEvent(event);
 | 
					  QMainWindow::closeEvent(event);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -16,6 +16,7 @@ Lobby::Lobby(AOApplication *p_ao_app, NetworkManager *p_net_manager)
 | 
				
			|||||||
    , net_manager{p_net_manager}
 | 
					    , net_manager{p_net_manager}
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  reloadUi();
 | 
					  reloadUi();
 | 
				
			||||||
 | 
					  setObjectName("lobby");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Lobby::on_tab_changed(int index)
 | 
					void Lobby::on_tab_changed(int index)
 | 
				
			||||||
@ -83,7 +84,7 @@ int Lobby::pageSelected()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Lobby::closeEvent(QCloseEvent *event)
 | 
					void Lobby::closeEvent(QCloseEvent *event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  Options::getInstance().setWindowPosition("lobby", pos());
 | 
					  Options::getInstance().setWindowPosition(objectName(), pos());
 | 
				
			||||||
  QMainWindow::closeEvent(event);
 | 
					  QMainWindow::closeEvent(event);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user