mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-01-05 15:12:32 -06:00
- Fixed systray integration when qbittorrent is launched on system startup
This commit is contained in:
@@ -58,6 +58,7 @@
|
|||||||
- BUGFIX: search plugin update - do not display only last version changelog
|
- BUGFIX: search plugin update - do not display only last version changelog
|
||||||
- BUGFIX: Search plugin update - fixed missing new lines in changelog
|
- BUGFIX: Search plugin update - fixed missing new lines in changelog
|
||||||
- BUGFIX: The number of search results was not reset when clicking on 'Clear' button
|
- BUGFIX: The number of search results was not reset when clicking on 'Clear' button
|
||||||
|
- BUGFIX: Fixed systray integration when qbittorrent is launched on system startup
|
||||||
- BUGFIX: Update torrent progress when its content changed (filtered files)
|
- BUGFIX: Update torrent progress when its content changed (filtered files)
|
||||||
- BUGFIX: Improved the way menu icons are installed to avoid problems on some systems
|
- BUGFIX: Improved the way menu icons are installed to avoid problems on some systems
|
||||||
- BUGFIX: Improved incremental download
|
- BUGFIX: Improved incremental download
|
||||||
|
|||||||
3
TODO
3
TODO
@@ -44,3 +44,6 @@
|
|||||||
* free disk space on selected drive
|
* free disk space on selected drive
|
||||||
* free disk space after torrent download (and/or torrent size)
|
* free disk space after torrent download (and/or torrent size)
|
||||||
|
|
||||||
|
rc11 -> final? changelog:
|
||||||
|
BUGFIX: Fixed systray integration when qbittorrent is launched on system startup
|
||||||
|
|
||||||
|
|||||||
35
src/GUI.cpp
35
src/GUI.cpp
@@ -61,14 +61,21 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis
|
|||||||
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION)));
|
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION)));
|
||||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||||
systrayIntegration = settings.value(QString::fromUtf8("Preferences/General/SystrayEnabled"), true).toBool();
|
systrayIntegration = settings.value(QString::fromUtf8("Preferences/General/SystrayEnabled"), true).toBool();
|
||||||
|
systrayCreator = 0;
|
||||||
// Create tray icon
|
// Create tray icon
|
||||||
if (QSystemTrayIcon::isSystemTrayAvailable()) {
|
if (QSystemTrayIcon::isSystemTrayAvailable()) {
|
||||||
if(systrayIntegration) {
|
if(systrayIntegration) {
|
||||||
createTrayIcon();
|
createTrayIcon();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
if(systrayIntegration) {
|
||||||
|
// May be system startup, check again later
|
||||||
|
systrayCreator = new QTimer(this);
|
||||||
|
connect(systrayCreator, SIGNAL(timeout()), this, SLOT(createSystrayDelayed()));
|
||||||
|
systrayCreator->start(1000);
|
||||||
|
}
|
||||||
systrayIntegration = false;
|
systrayIntegration = false;
|
||||||
qDebug("Info: System tray unavailable\n");
|
qDebug("Info: System tray unavailable");
|
||||||
}
|
}
|
||||||
// Setting icons
|
// Setting icons
|
||||||
this->setWindowIcon(QIcon(QString::fromUtf8(":/Icons/qbittorrent32.png")));
|
this->setWindowIcon(QIcon(QString::fromUtf8(":/Icons/qbittorrent32.png")));
|
||||||
@@ -176,6 +183,9 @@ GUI::~GUI() {
|
|||||||
delete downloadingTorrentTab;
|
delete downloadingTorrentTab;
|
||||||
delete finishedTorrentTab;
|
delete finishedTorrentTab;
|
||||||
delete checkConnect;
|
delete checkConnect;
|
||||||
|
if(systrayCreator) {
|
||||||
|
delete systrayCreator;
|
||||||
|
}
|
||||||
if(systrayIntegration) {
|
if(systrayIntegration) {
|
||||||
delete myTrayIcon;
|
delete myTrayIcon;
|
||||||
delete myTrayIconMenu;
|
delete myTrayIconMenu;
|
||||||
@@ -1183,6 +1193,29 @@ void GUI::downloadFromURLList(const QStringList& urls) {
|
|||||||
* *
|
* *
|
||||||
*****************************************************/
|
*****************************************************/
|
||||||
|
|
||||||
|
void GUI::createSystrayDelayed() {
|
||||||
|
static int timeout = 10;
|
||||||
|
if(QSystemTrayIcon::isSystemTrayAvailable()) {
|
||||||
|
// Ok, systray integration is now supported
|
||||||
|
// Create systray icon
|
||||||
|
createTrayIcon();
|
||||||
|
systrayIntegration = true;
|
||||||
|
delete systrayCreator;
|
||||||
|
systrayCreator = 0;
|
||||||
|
} else {
|
||||||
|
if(timeout) {
|
||||||
|
// Retry a bit later
|
||||||
|
systrayCreator->start(1000);
|
||||||
|
--timeout;
|
||||||
|
} else {
|
||||||
|
// Timed out, apparently system really does not
|
||||||
|
// support systray icon
|
||||||
|
delete systrayCreator;
|
||||||
|
systrayCreator = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GUI::createTrayIcon() {
|
void GUI::createTrayIcon() {
|
||||||
// Tray icon
|
// Tray icon
|
||||||
#ifdef Q_WS_WIN
|
#ifdef Q_WS_WIN
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||||||
QTabWidget *tabs;
|
QTabWidget *tabs;
|
||||||
options_imp *options;
|
options_imp *options;
|
||||||
QSystemTrayIcon *myTrayIcon;
|
QSystemTrayIcon *myTrayIcon;
|
||||||
|
QTimer *systrayCreator;
|
||||||
QMenu *myTrayIconMenu;
|
QMenu *myTrayIconMenu;
|
||||||
DownloadingTorrents *downloadingTorrentTab;
|
DownloadingTorrents *downloadingTorrentTab;
|
||||||
FinishedTorrents *finishedTorrentTab;
|
FinishedTorrents *finishedTorrentTab;
|
||||||
@@ -105,6 +106,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||||||
void updateFinishedTorrentNumber(unsigned int nb);
|
void updateFinishedTorrentNumber(unsigned int nb);
|
||||||
void fullDiskError(QTorrentHandle& h) const;
|
void fullDiskError(QTorrentHandle& h) const;
|
||||||
void handleDownloadFromUrlFailure(QString, QString) const;
|
void handleDownloadFromUrlFailure(QString, QString) const;
|
||||||
|
void createSystrayDelayed();
|
||||||
// Keyboard shortcuts
|
// Keyboard shortcuts
|
||||||
void createKeyboardShortcuts();
|
void createKeyboardShortcuts();
|
||||||
void displayDownTab() const;
|
void displayDownTab() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user