From 16bf95469b68b1c0041a45301277dbb78edd425e Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 17 Mar 2020 19:13:22 +0100 Subject: [PATCH 1/7] windowctrl-win : use nullptr instead of NULL / 0 --- app/SysTray-X/windowctrl-win.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index fb6b2ff..ed9d529 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -89,7 +89,7 @@ BOOL CALLBACK WindowCtrlWin::enumWindowsTitleProc( HWND hwnd, LPARAM lParam ) { char buffer[ 128 ]; int written = GetWindowTextA( hwnd, buffer, 128 ); - if( written && strstr( buffer, (char*)lParam ) != NULL ) + if( written && strstr( buffer, (char*)lParam ) != nullptr ) { m_tb_windows.append( (quint64)hwnd ); } @@ -105,10 +105,10 @@ bool WindowCtrlWin::findWindow( qint64 pid ) { HandleData data; data.pid = pid; - data.hwnd = 0; + data.hwnd = nullptr; EnumWindows( &enumWindowsPidProc, (LPARAM)&data ); - if( data.hwnd == 0 ) + if( data.hwnd == nullptr ) { return false; } @@ -148,7 +148,7 @@ BOOL CALLBACK WindowCtrlWin::enumWindowsPidProc( HWND hwnd, LPARAM lParam ) */ BOOL WindowCtrlWin::isMainWindow( HWND hwnd ) { - return GetWindow( hwnd, GW_OWNER ) == (HWND)0 && IsWindowVisible( hwnd ); + return GetWindow( hwnd, GW_OWNER ) == nullptr && IsWindowVisible( hwnd ); } From 5a4abc39aa202a471538a16dc359b96882ddbe03 Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 17 Mar 2020 19:21:23 +0100 Subject: [PATCH 2/7] windowctrl-win : use range based for loop instead of "foreach" --- app/SysTray-X/windowctrl-win.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index ed9d529..cc29d91 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -159,7 +159,7 @@ void WindowCtrlWin::displayWindowElements( const QString& title ) { findWindow( title ); - foreach( quint64 win_id, getWinIds() ) + for( quint64 win_id: getWinIds() ) { emit signalConsole( QString( "Found: XID %1" ).arg( win_id ) ); } From 63ef80adab9cbd256ae8cd8a0967be56cf34a164 Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 17 Mar 2020 19:27:10 +0100 Subject: [PATCH 3/7] windowctrl-win : use std::array instead of c-style array --- app/SysTray-X/windowctrl-win.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index cc29d91..6e4b6b9 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -8,6 +8,11 @@ #include #include +/* + * Standard library includes + */ +#include + /* * Qt includes */ @@ -87,9 +92,9 @@ bool WindowCtrlWin::findWindow( const QString& title ) */ BOOL CALLBACK WindowCtrlWin::enumWindowsTitleProc( HWND hwnd, LPARAM lParam ) { - char buffer[ 128 ]; - int written = GetWindowTextA( hwnd, buffer, 128 ); - if( written && strstr( buffer, (char*)lParam ) != nullptr ) + std::array buffer; + int written = GetWindowTextA( hwnd, buffer.data(), int(buffer.size()) ); + if( written && strstr( buffer.data(), (char*)lParam ) != nullptr ) { m_tb_windows.append( (quint64)hwnd ); } From 6ea29c7d6e72f1ae4b335bd4ee8803b440ff9305 Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 17 Mar 2020 19:33:22 +0100 Subject: [PATCH 4/7] windowctrl-win : rename `HandleData` --> `EnumWindowsPidProcData` * use reinterpret_cast instread of old-style cast --- app/SysTray-X/windowctrl-win.cpp | 6 +++--- app/SysTray-X/windowctrl-win.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index 6e4b6b9..af6d994 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -108,10 +108,10 @@ BOOL CALLBACK WindowCtrlWin::enumWindowsTitleProc( HWND hwnd, LPARAM lParam ) */ bool WindowCtrlWin::findWindow( qint64 pid ) { - HandleData data; + EnumWindowsPidProcData data; data.pid = pid; data.hwnd = nullptr; - EnumWindows( &enumWindowsPidProc, (LPARAM)&data ); + EnumWindows( &enumWindowsPidProc, reinterpret_cast(&data) ); if( data.hwnd == nullptr ) { @@ -132,7 +132,7 @@ bool WindowCtrlWin::findWindow( qint64 pid ) */ BOOL CALLBACK WindowCtrlWin::enumWindowsPidProc( HWND hwnd, LPARAM lParam ) { - HandleData& data = *(HandleData*)lParam; + auto& data = *reinterpret_cast(lParam); unsigned long pid = 0; GetWindowThreadProcessId( hwnd, &pid ); diff --git a/app/SysTray-X/windowctrl-win.h b/app/SysTray-X/windowctrl-win.h index 5d97264..8753b25 100644 --- a/app/SysTray-X/windowctrl-win.h +++ b/app/SysTray-X/windowctrl-win.h @@ -23,7 +23,7 @@ class WindowCtrlWin : public QObject private: - struct HandleData + struct EnumWindowsPidProcData { unsigned long pid; HWND hwnd; From 1a5d5edf94fccd54a4e3054b589fea3bc2397c69 Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 17 Mar 2020 19:49:19 +0100 Subject: [PATCH 5/7] wibdowctrl-win : add callback data struct for `enumWindowsTitleProc` function --- app/SysTray-X/windowctrl-win.cpp | 9 ++++++--- app/SysTray-X/windowctrl-win.h | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index af6d994..1eae953 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -76,7 +76,9 @@ bool WindowCtrlWin::findWindow( const QString& title ) { m_tb_windows = QList< quint64 >(); - EnumWindows( &enumWindowsTitleProc, (LPARAM)(LPSTR)( title.toStdString().c_str() ) ); + EnumWindowsTitleProcData data{ *this, title.toStdString() }; + + EnumWindows( &enumWindowsTitleProc, reinterpret_cast(&data) ); if( m_tb_windows.length() == 0 ) { @@ -92,11 +94,12 @@ bool WindowCtrlWin::findWindow( const QString& title ) */ BOOL CALLBACK WindowCtrlWin::enumWindowsTitleProc( HWND hwnd, LPARAM lParam ) { + auto& data = *reinterpret_cast(lParam); std::array buffer; int written = GetWindowTextA( hwnd, buffer.data(), int(buffer.size()) ); - if( written && strstr( buffer.data(), (char*)lParam ) != nullptr ) + if( written && strstr( buffer.data(), data.title.c_str() ) != nullptr ) { - m_tb_windows.append( (quint64)hwnd ); + data.window_ctrl.m_tb_windows.append( (quint64)hwnd ); } return TRUE; diff --git a/app/SysTray-X/windowctrl-win.h b/app/SysTray-X/windowctrl-win.h index 8753b25..e41df34 100644 --- a/app/SysTray-X/windowctrl-win.h +++ b/app/SysTray-X/windowctrl-win.h @@ -9,11 +9,21 @@ */ #include +/* + * Standard library includes + */ +#include + /* * Qt includes */ #include +/* + * Forward declarations + */ +class WindowCtrlWin; + /** * @brief The WindowCtrlWin class */ @@ -29,6 +39,12 @@ class WindowCtrlWin : public QObject HWND hwnd; }; + struct EnumWindowsTitleProcData + { + WindowCtrlWin& window_ctrl; + const std::string title; + }; + public: /** From 1cb399a0b227f3cac0d081e49676b2e0d35db151 Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 17 Mar 2020 19:56:23 +0100 Subject: [PATCH 6/7] windowctrl-win : make `m_tb_window(s)` non-static --> more consistent with `WindowCtrlUnix` --- app/SysTray-X/windowctrl-win.cpp | 6 ------ app/SysTray-X/windowctrl-win.h | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index 1eae953..99db018 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -18,12 +18,6 @@ */ #include -/* - * Statics - */ -quint64 WindowCtrlWin::m_tb_window; -QList< quint64 > WindowCtrlWin::m_tb_windows; - /* * Constructor diff --git a/app/SysTray-X/windowctrl-win.h b/app/SysTray-X/windowctrl-win.h index e41df34..84c5677 100644 --- a/app/SysTray-X/windowctrl-win.h +++ b/app/SysTray-X/windowctrl-win.h @@ -206,12 +206,12 @@ class WindowCtrlWin : public QObject /** * @brief m_tb_window. The Thunderbird window. */ - static quint64 m_tb_window; + quint64 m_tb_window; /** * @brief m_tb_window. The Thunderbird windows. */ - static QList< quint64 > m_tb_windows; + QList< quint64 > m_tb_windows; }; #endif // WINDOWCTRLWIN_H From 7d90b629730f511fa96e800e516679037300aad4 Mon Sep 17 00:00:00 2001 From: Tobias Ludwig Date: Tue, 24 Mar 2020 18:03:52 +0100 Subject: [PATCH 7/7] windowctrl-win : use `nullptr` instread of `NULL` --- app/SysTray-X/windowctrl-win.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/SysTray-X/windowctrl-win.cpp b/app/SysTray-X/windowctrl-win.cpp index f327872..3ac0e21 100644 --- a/app/SysTray-X/windowctrl-win.cpp +++ b/app/SysTray-X/windowctrl-win.cpp @@ -81,7 +81,7 @@ QString WindowCtrlWin::getProcessName( qint64 pid ) { HANDLE proc = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, pid ); char name[ 256 ]; - GetModuleBaseNameA( proc, NULL, name, 256); + GetModuleBaseNameA( proc, nullptr, name, 256); return QString( name ); }