Add taskbar hide

This commit is contained in:
Ximi1970
2020-02-22 00:46:41 +01:00
parent 2befaa01f0
commit 329db9b777
4 changed files with 25 additions and 15 deletions

View File

@@ -142,7 +142,7 @@ win32: {
} else {
JSON_EXE_PATH = $$system(powershell -Command "('$$shell_path($${OUT_PWD}/release/$${TARGET}.exe)').replace('\\','\\\\')")
QMAKE_POST_LINK = $$[QT_INSTALL_BINS]\windeployqt.exe "$$shell_path($${OUT_PWD}/release/$${TARGET}.exe)"
QMAKE_POST_LINK = $$[QT_INSTALL_BINS]\windeployqt.exe "$$shell_path($${OUT_PWD}/release/$${TARGET}.exe)" &
QMAKE_POST_LINK += powershell -Command \"(Get-Content $$shell_path($${_PRO_FILE_PWD_}/../config/win32/SysTray_X.json.template) ).replace(\'SYSTRAY_X_PATH\',\'$$JSON_EXE_PATH\') | Set-Content $$shell_path($${_PRO_FILE_PWD_}/../config/win32/SysTray_X.json)\" &
}

View File

@@ -77,9 +77,14 @@ QList< quint64 > WindowCtrlWin::getWinIds()
/*
* Minimize a window
*/
void WindowCtrlWin::minimizeWindow( quint64 window )
void WindowCtrlWin::minimizeWindow( quint64 window, bool hide )
{
ShowWindow( (HWND)window, SW_MINIMIZE );
if( hide )
{
hideWindow( (HWND)window );
}
}
@@ -89,14 +94,24 @@ void WindowCtrlWin::minimizeWindow( quint64 window )
void WindowCtrlWin::normalizeWindow( quint64 window )
{
ShowWindow( (HWND)window, SW_RESTORE );
SetForegroundWindow( (HWND)window );
}
/*
* Hide a window
*/
void WindowCtrlWin::hideWindow( quint64 window, bool state )
void WindowCtrlWin::hideWindow( HWND hwnd )
{
emit signalConsole( "Hide" );
long style = GetWindowLong( hwnd, GWL_STYLE );
style &= ~(WS_VISIBLE);
style |= WS_EX_TOOLWINDOW;
style &= ~(WS_EX_APPWINDOW);
SetWindowLong( hwnd, GWL_STYLE, style );
}
#endif // Q_OS_WIN

View File

@@ -57,8 +57,9 @@ class WindowCtrlWin : public QObject
* @brief minimizeWindow. Minimize window.
*
* @param window The window.
* @param hide Hide from taskbar
*/
void minimizeWindow( quint64 window );
void minimizeWindow( quint64 window, bool hide );
/**
* @brief normalizeWindow. Normalize window.
@@ -67,15 +68,14 @@ class WindowCtrlWin : public QObject
*/
void normalizeWindow( quint64 window );
private:
/**
* @brief hideWindow. Hide window.
*
* @param window The window.
* @param state The state of the window.
* @param hwnd The window.
*/
void hideWindow( quint64 window, bool state );
private:
void hideWindow( HWND hwnd );
/**
* @brief EnumWindowsProc. Callback for window enumaration.

View File

@@ -156,7 +156,6 @@ void WindowCtrl::slotShowHide()
foreach( quint64 win_id, getWinIds() )
{
hideWindow( win_id, false );
normalizeWindow( win_id );
emit signalConsole("Normalize");
@@ -169,11 +168,7 @@ void WindowCtrl::slotShowHide()
foreach( quint64 win_id, getWinIds() )
{
if( m_minimize_hide )
{
hideWindow( win_id, true );
}
minimizeWindow( win_id );
minimizeWindow( win_id, m_minimize_hide );
emit signalConsole("Minimize");
}