mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-22 14:23:35 -07:00
Add option to enable previous Add new torrent dialog behavior
This commit is contained in:
parent
103ea813dc
commit
e823009681
5 changed files with 30 additions and 2 deletions
|
@ -2067,6 +2067,19 @@ void Preferences::setAddNewTorrentDialogSavePathHistoryLength(const int value)
|
||||||
setValue(u"AddNewTorrentDialog/SavePathHistoryLength"_s, clampedValue);
|
setValue(u"AddNewTorrentDialog/SavePathHistoryLength"_s, clampedValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Preferences::isAddNewTorrentDialogAttached() const
|
||||||
|
{
|
||||||
|
return value(u"AddNewTorrentDialog/Attached"_s, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::setAddNewTorrentDialogAttached(const bool attached)
|
||||||
|
{
|
||||||
|
if (attached == isAddNewTorrentDialogAttached())
|
||||||
|
return;
|
||||||
|
|
||||||
|
setValue(u"AddNewTorrentDialog/Attached"_s, attached);
|
||||||
|
}
|
||||||
|
|
||||||
void Preferences::apply()
|
void Preferences::apply()
|
||||||
{
|
{
|
||||||
if (SettingsStorage::instance()->save())
|
if (SettingsStorage::instance()->save())
|
||||||
|
|
|
@ -435,6 +435,8 @@ public:
|
||||||
void setAddNewTorrentDialogTopLevel(bool value);
|
void setAddNewTorrentDialogTopLevel(bool value);
|
||||||
int addNewTorrentDialogSavePathHistoryLength() const;
|
int addNewTorrentDialogSavePathHistoryLength() const;
|
||||||
void setAddNewTorrentDialogSavePathHistoryLength(int value);
|
void setAddNewTorrentDialogSavePathHistoryLength(int value);
|
||||||
|
bool isAddNewTorrentDialogAttached() const;
|
||||||
|
void setAddNewTorrentDialogAttached(bool attached);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setStatusFilterState(bool checked);
|
void setStatusFilterState(bool checked);
|
||||||
|
|
|
@ -98,6 +98,7 @@ namespace
|
||||||
ENABLE_SPEED_WIDGET,
|
ENABLE_SPEED_WIDGET,
|
||||||
#ifndef Q_OS_MACOS
|
#ifndef Q_OS_MACOS
|
||||||
ENABLE_ICONS_IN_MENUS,
|
ENABLE_ICONS_IN_MENUS,
|
||||||
|
USE_ATTACHED_ADD_NEW_TORRENT_DIALOG,
|
||||||
#endif
|
#endif
|
||||||
// embedded tracker
|
// embedded tracker
|
||||||
TRACKER_STATUS,
|
TRACKER_STATUS,
|
||||||
|
@ -332,6 +333,7 @@ void AdvancedSettings::saveAdvancedSettings() const
|
||||||
pref->setSpeedWidgetEnabled(m_checkBoxSpeedWidgetEnabled.isChecked());
|
pref->setSpeedWidgetEnabled(m_checkBoxSpeedWidgetEnabled.isChecked());
|
||||||
#ifndef Q_OS_MACOS
|
#ifndef Q_OS_MACOS
|
||||||
pref->setIconsInMenusEnabled(m_checkBoxIconsInMenusEnabled.isChecked());
|
pref->setIconsInMenusEnabled(m_checkBoxIconsInMenusEnabled.isChecked());
|
||||||
|
pref->setAddNewTorrentDialogAttached(m_checkBoxAttachedAddNewTorrentDialog.isChecked());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Tracker
|
// Tracker
|
||||||
|
@ -866,6 +868,9 @@ void AdvancedSettings::loadAdvancedSettings()
|
||||||
// Enable icons in menus
|
// Enable icons in menus
|
||||||
m_checkBoxIconsInMenusEnabled.setChecked(pref->iconsInMenusEnabled());
|
m_checkBoxIconsInMenusEnabled.setChecked(pref->iconsInMenusEnabled());
|
||||||
addRow(ENABLE_ICONS_IN_MENUS, tr("Enable icons in menus"), &m_checkBoxIconsInMenusEnabled);
|
addRow(ENABLE_ICONS_IN_MENUS, tr("Enable icons in menus"), &m_checkBoxIconsInMenusEnabled);
|
||||||
|
|
||||||
|
m_checkBoxAttachedAddNewTorrentDialog.setChecked(pref->isAddNewTorrentDialogAttached());
|
||||||
|
addRow(USE_ATTACHED_ADD_NEW_TORRENT_DIALOG, tr("Attach \"Add new torrent\" dialog to main window"), &m_checkBoxAttachedAddNewTorrentDialog);
|
||||||
#endif
|
#endif
|
||||||
// Tracker State
|
// Tracker State
|
||||||
m_checkBoxTrackerStatus.setChecked(session->isTrackerEnabled());
|
m_checkBoxTrackerStatus.setChecked(session->isTrackerEnabled());
|
||||||
|
|
|
@ -108,6 +108,7 @@ private:
|
||||||
|
|
||||||
#ifndef Q_OS_MACOS
|
#ifndef Q_OS_MACOS
|
||||||
QCheckBox m_checkBoxIconsInMenusEnabled;
|
QCheckBox m_checkBoxIconsInMenusEnabled;
|
||||||
|
QCheckBox m_checkBoxAttachedAddNewTorrentDialog;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(Q_OS_MACOS) || defined(Q_OS_WIN)
|
#if defined(Q_OS_MACOS) || defined(Q_OS_WIN)
|
||||||
|
|
|
@ -225,12 +225,19 @@ bool GUIAddTorrentManager::processTorrent(const QString &source
|
||||||
if (!hasMetadata)
|
if (!hasMetadata)
|
||||||
btSession()->downloadMetadata(torrentDescr);
|
btSession()->downloadMetadata(torrentDescr);
|
||||||
|
|
||||||
|
#ifdef Q_OS_MACOS
|
||||||
|
const bool attached = false;
|
||||||
|
#else
|
||||||
|
const bool attached = Preferences::instance()->isAddNewTorrentDialogAttached();
|
||||||
|
#endif
|
||||||
|
|
||||||
// By not setting a parent to the "AddNewTorrentDialog", all those dialogs
|
// By not setting a parent to the "AddNewTorrentDialog", all those dialogs
|
||||||
// will be displayed on top and will not overlap with the main window.
|
// will be displayed on top and will not overlap with the main window.
|
||||||
auto *dlg = new AddNewTorrentDialog(torrentDescr, params, nullptr);
|
auto *dlg = new AddNewTorrentDialog(torrentDescr, params, (attached ? app()->mainWindow() : nullptr));
|
||||||
// Qt::Window is required to avoid showing only two dialog on top (see #12852).
|
// Qt::Window is required to avoid showing only two dialog on top (see #12852).
|
||||||
// Also improves the general convenience of adding multiple torrents.
|
// Also improves the general convenience of adding multiple torrents.
|
||||||
dlg->setWindowFlags(Qt::Window);
|
if (!attached)
|
||||||
|
dlg->setWindowFlags(Qt::Window);
|
||||||
|
|
||||||
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
dlg->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
m_dialogs[infoHash] = dlg;
|
m_dialogs[infoHash] = dlg;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue