QIcon SeafileTrayIcon::stateToIcon(TrayState state) { state_ = state; #if defined(Q_WS_WIN) QString prefix = isWindowsVistaOrHigher() ? ":/images/win/win7/" : ":/images/win/xp/"; switch (state) { case STATE_DAEMON_UP: return getIcon(prefix + "daemon_up.ico"); case STATE_DAEMON_DOWN: return getIcon(prefix + "daemon_down.ico"); case STATE_DAEMON_AUTOSYNC_DISABLED: return getIcon(prefix + "seafile_auto_sync_disabled.ico"); case STATE_TRANSFER_1: return getIcon(prefix + "seafile_transfer_1.ico"); case STATE_TRANSFER_2: return getIcon(prefix + "seafile_transfer_2.ico"); case STATE_SERVERS_NOT_CONNECTED: return getIcon(prefix + "seafile_warning.ico"); } #elif defined(Q_WS_MAC) switch (state) { case STATE_DAEMON_UP: return getIcon(":/images/mac/daemon_up.png"); case STATE_DAEMON_DOWN: return getIcon(":/images/mac/daemon_down.png"); case STATE_DAEMON_AUTOSYNC_DISABLED: return getIcon(":/images/mac/seafile_auto_sync_disabled.png"); case STATE_TRANSFER_1: return getIcon(":/images/mac/seafile_transfer_1.png"); case STATE_TRANSFER_2: return getIcon(":/images/mac/seafile_transfer_2.png"); case STATE_SERVERS_NOT_CONNECTED: return getIcon(":/images/mac/seafile_warning.png"); } #else switch (state) { case STATE_DAEMON_UP: return getIcon(":/images/daemon_up.png"); case STATE_DAEMON_DOWN: return getIcon(":/images/daemon_down.png"); case STATE_DAEMON_AUTOSYNC_DISABLED: return getIcon(":/images/seafile_auto_sync_disabled.png"); case STATE_TRANSFER_1: return getIcon(":/images/seafile_transfer_1.png"); case STATE_TRANSFER_2: return getIcon(":/images/seafile_transfer_2.png"); case STATE_SERVERS_NOT_CONNECTED: return getIcon(":/images/seafile_warning.png"); } #endif }
QString WinInfo::getForegroundWindowExePath() { QString exePath; HWND foreground = GetForegroundWindow(); HANDLE windowProcess = NULL; if (foreground) { DWORD processId; GetWindowThreadProcessId(foreground, &processId); windowProcess = OpenProcess(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION, true, processId); } if (windowProcess != NULL) { TCHAR filename[MAX_PATH]; memset(filename, 0, sizeof(filename)); //qDebug() << QString::number(sizeof(filename)/sizeof(TCHAR)); if (isWindowsVistaOrHigher()) { DWORD pathLength = MAX_PATH * sizeof(TCHAR); QueryFullProcessImageNameW(windowProcess, 0, filename, &pathLength); //qDebug() << pathLength; } else { DWORD pathLength = GetModuleFileNameEx(windowProcess, NULL, filename, MAX_PATH * sizeof(TCHAR)); //qDebug() << pathLength; } exePath = QString::fromWCharArray(filename); //qDebug() << QString::fromWCharArray(filename); CloseHandle(windowProcess); } return exePath; }