AddNewTorrentDialog::AddNewTorrentDialog(QWidget *parent) : QDialog(parent) , ui(new Ui::AddNewTorrentDialog) , m_contentModel(0) , m_contentDelegate(0) , m_hasMetadata(false) , m_oldIndex(0) { ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); ui->lblMetaLoading->setVisible(false); ui->progMetaLoading->setVisible(false); auto session = BitTorrent::Session::instance(); ui->startTorrentCheckBox->setChecked(!session->isAddTorrentPaused()); (session->isASMDisabledByDefault() ? ui->simpleModeRadioButton : ui->advancedModeRadioButton)->setChecked(true); populateSavePathComboBox(); connect(ui->savePathComboBox, SIGNAL(currentIndexChanged(int)), SLOT(onSavePathChanged(int))); connect(ui->browseButton, SIGNAL(clicked()), SLOT(browseButton_clicked())); ui->defaultSavePathCheckBox->setVisible(false); // Default path is selected by default ui->doNotDeleteTorrentCheckBox->setVisible(TorrentFileGuard::autoDeleteMode() != TorrentFileGuard::Never); // Load categories QStringList categories = session->categories(); std::sort(categories.begin(), categories.end(), Utils::String::naturalCompareCaseInsensitive); QString defaultCategory = settings()->loadValue(KEY_DEFAULTCATEGORY).toString(); if (!defaultCategory.isEmpty()) ui->categoryComboBox->addItem(defaultCategory); ui->categoryComboBox->addItem(""); foreach (const QString &category, categories) if (category != defaultCategory) ui->categoryComboBox->addItem(category); ui->categoryComboBox->model()->sort(0); ui->contentTreeView->header()->setSortIndicator(0, Qt::AscendingOrder); loadState(); // Signal / slots connect(ui->adv_button, SIGNAL(clicked(bool)), SLOT(showAdvancedSettings(bool))); connect(ui->doNotDeleteTorrentCheckBox, SIGNAL(clicked(bool)), SLOT(doNotDeleteTorrentClicked(bool))); editHotkey = new QShortcut(QKeySequence("F2"), ui->contentTreeView, 0, 0, Qt::WidgetShortcut); connect(editHotkey, SIGNAL(activated()), SLOT(renameSelectedFile())); connect(ui->contentTreeView, SIGNAL(doubleClicked(QModelIndex)), SLOT(renameSelectedFile())); ui->buttonBox->button(QDialogButtonBox::Ok)->setFocus(); }
AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::AddTorrentParams &inParams, QWidget *parent) : QDialog(parent) , m_ui(new Ui::AddNewTorrentDialog) , m_contentModel(nullptr) , m_contentDelegate(nullptr) , m_hasMetadata(false) , m_oldIndex(0) , m_torrentParams(inParams) { // TODO: set dialog file properties using m_torrentParams.filePriorities m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); m_ui->lblMetaLoading->setVisible(false); m_ui->progMetaLoading->setVisible(false); m_ui->savePath->setMode(FileSystemPathEdit::Mode::DirectorySave); m_ui->savePath->setDialogCaption(tr("Choose save path")); m_ui->savePath->setMaxVisibleItems(20); auto session = BitTorrent::Session::instance(); if (m_torrentParams.addPaused == TriStateBool::True) m_ui->startTorrentCheckBox->setChecked(false); else if (m_torrentParams.addPaused == TriStateBool::False) m_ui->startTorrentCheckBox->setChecked(true); else m_ui->startTorrentCheckBox->setChecked(!session->isAddTorrentPaused()); m_ui->comboTTM->blockSignals(true); // the TreeView size isn't correct if the slot does it job at this point m_ui->comboTTM->setCurrentIndex(!session->isAutoTMMDisabledByDefault()); m_ui->comboTTM->blockSignals(false); populateSavePathComboBox(); connect(m_ui->savePath, &FileSystemPathEdit::selectedPathChanged, this, &AddNewTorrentDialog::onSavePathChanged); const bool rememberLastSavePath = settings()->loadValue(KEY_REMEMBERLASTSAVEPATH, false).toBool(); m_ui->checkBoxRememberLastSavePath->setChecked(rememberLastSavePath); if (m_torrentParams.createSubfolder == TriStateBool::True) m_ui->createSubfolderCheckBox->setChecked(true); else if (m_torrentParams.createSubfolder == TriStateBool::False) m_ui->createSubfolderCheckBox->setChecked(false); else m_ui->createSubfolderCheckBox->setChecked(session->isCreateTorrentSubfolder()); m_ui->skipCheckingCheckBox->setChecked(m_torrentParams.skipChecking); m_ui->doNotDeleteTorrentCheckBox->setVisible(TorrentFileGuard::autoDeleteMode() != TorrentFileGuard::Never); // Load categories QStringList categories = session->categories().keys(); std::sort(categories.begin(), categories.end(), Utils::String::naturalLessThan<Qt::CaseInsensitive>); QString defaultCategory = settings()->loadValue(KEY_DEFAULTCATEGORY).toString(); if (!m_torrentParams.category.isEmpty()) m_ui->categoryComboBox->addItem(m_torrentParams.category); if (!defaultCategory.isEmpty()) m_ui->categoryComboBox->addItem(defaultCategory); m_ui->categoryComboBox->addItem(""); foreach (const QString &category, categories) if (category != defaultCategory && category != m_torrentParams.category) m_ui->categoryComboBox->addItem(category); m_ui->contentTreeView->header()->setSortIndicator(0, Qt::AscendingOrder); loadState(); // Signal / slots connect(m_ui->toolButtonAdvanced, &QToolButton::clicked, this, &AddNewTorrentDialog::showAdvancedSettings); connect(m_ui->doNotDeleteTorrentCheckBox, &QCheckBox::clicked, this, &AddNewTorrentDialog::doNotDeleteTorrentClicked); QShortcut *editHotkey = new QShortcut(Qt::Key_F2, m_ui->contentTreeView, nullptr, nullptr, Qt::WidgetShortcut); connect(editHotkey, &QShortcut::activated, this, &AddNewTorrentDialog::renameSelectedFile); connect(m_ui->contentTreeView, &QAbstractItemView::doubleClicked, this, &AddNewTorrentDialog::renameSelectedFile); m_ui->buttonBox->button(QDialogButtonBox::Ok)->setFocus(); }