Remove some App::wnd() occurences.

This commit is contained in:
John Preston 2017-08-08 11:56:10 +02:00
parent b08732cf28
commit 65d81f96f3
7 changed files with 49 additions and 44 deletions

View File

@ -280,15 +280,6 @@ PeerData *getPeerForMouseAction() {
return Messenger::Instance().ui_getPeerForMouseAction();
}
bool hideWindowNoQuit() {
if (!App::quitting()) {
if (auto w = App::wnd()) {
return w->hideNoQuit();
}
}
return false;
}
bool skipPaintEvent(QWidget *widget, QPaintEvent *event) {
if (auto w = App::wnd()) {
if (w->contentOverlapped(widget, event)) {

View File

@ -147,8 +147,6 @@ inline void showChatsListAsync() {
}
PeerData *getPeerForMouseAction();
bool hideWindowNoQuit();
bool skipPaintEvent(QWidget *widget, QPaintEvent *event);
} // namespace Ui

View File

@ -776,7 +776,7 @@ void MainWindow::closeEvent(QCloseEvent *e) {
App::quit();
} else {
e->ignore();
if (!AuthSession::Exists() || !Ui::hideWindowNoQuit()) {
if (!AuthSession::Exists() || !hideNoQuit()) {
App::quit();
}
}

View File

@ -187,7 +187,9 @@ Messenger::Messenger() : QObject()
bool Messenger::hideMediaView() {
if (_mediaView && !_mediaView->isHidden()) {
_mediaView->hide();
_window->reActivateWindow();
if (auto activeWindow = getActiveWindow()) {
activeWindow->reActivateWindow();
}
return true;
}
return false;
@ -930,10 +932,36 @@ Messenger::~Messenger() {
SingleInstance = nullptr;
}
MainWindow *Messenger::getActiveWindow() {
MainWindow *Messenger::getActiveWindow() const {
return _window.get();
}
bool Messenger::closeActiveWindow() {
if (hideMediaView()) {
return true;
}
if (auto activeWindow = getActiveWindow()) {
if (!activeWindow->hideNoQuit()) {
activeWindow->close();
}
return true;
}
return false;
}
bool Messenger::minimizeActiveWindow() {
hideMediaView();
if (auto activeWindow = getActiveWindow()) {
if (Global::WorkMode().value() == dbiwmTrayOnly) {
activeWindow->minimizeToTray();
} else {
activeWindow->setWindowState(Qt::WindowMinimized);
}
return true;
}
return false;
}
QWidget *Messenger::getFileDialogParent() {
return (_mediaView && _mediaView->isVisible()) ? (QWidget*)_mediaView.get() : (QWidget*)getActiveWindow();
}
@ -955,12 +983,14 @@ void Messenger::loggedOut() {
}
QPoint Messenger::getPointForCallPanelCenter() const {
Expects(_window != nullptr);
Expects(_window->windowHandle() != nullptr);
if (_window->isActive()) {
return _window->geometry().center();
if (auto activeWindow = getActiveWindow()) {
t_assert(activeWindow->windowHandle() != nullptr);
if (activeWindow->isActive()) {
return activeWindow->geometry().center();
}
return activeWindow->windowHandle()->screen()->geometry().center();
}
return _window->windowHandle()->screen()->geometry().center();
return QApplication::desktop()->screenGeometry().center();
}
void Messenger::QuitAttempt() {

View File

@ -71,7 +71,9 @@ public:
~Messenger();
// Windows interface.
MainWindow *getActiveWindow();
MainWindow *getActiveWindow() const;
bool closeActiveWindow();
bool minimizeActiveWindow();
QWidget *getFileDialogParent();
QWidget *getGlobalShortcutParent() {
return &_globalShortcutParent;

View File

@ -33,38 +33,19 @@ namespace ShortcutCommands {
using Handler = bool(*)();
bool lock_telegram() {
if (auto w = App::wnd()) {
if (App::passcoded()) {
w->passcodeWidget()->onSubmit();
return true;
} else if (Global::LocalPasscode()) {
Messenger::Instance().setupPasscode();
return true;
}
if (!App::passcoded() && Global::LocalPasscode()) {
Messenger::Instance().setupPasscode();
return true;
}
return false;
}
bool minimize_telegram() {
if (auto w = App::wnd()) {
if (Global::WorkMode().value() == dbiwmTrayOnly) {
w->minimizeToTray();
} else {
w->setWindowState(Qt::WindowMinimized);
}
}
return true;
return Messenger::Instance().minimizeActiveWindow();
}
bool close_telegram() {
if (!Messenger::Instance().hideMediaView()) {
if (!Ui::hideWindowNoQuit()) {
if (auto w = App::wnd()) {
w->close();
}
}
}
return true;
return Messenger::Instance().closeActiveWindow();
}
bool quit_telegram() {

View File

@ -80,6 +80,9 @@ MainWindow::MainWindow() : QWidget()
}
bool MainWindow::hideNoQuit() {
if (App::quitting()) {
return false;
}
if (Global::WorkMode().value() == dbiwmTrayOnly || Global::WorkMode().value() == dbiwmWindowAndTray) {
if (minimizeToTray()) {
Ui::showChatsList();