Merge pull request #12124 from Chocobo1/rename

Fix crash when renaming torrent contents
This commit is contained in:
Mike Tzou 2020-03-08 00:16:02 +08:00 committed by GitHub
commit 92cc2a4f31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 11 deletions

View file

@ -640,7 +640,7 @@ void PropertiesWidget::displayFilesListMenu(const QPoint &)
// The selected torrent might have disappeared during exec() // The selected torrent might have disappeared during exec()
// so we just close menu when an appropriate model is reset // so we just close menu when an appropriate model is reset
connect(m_ui->filesList->model(), &QAbstractItemModel::modelAboutToBeReset connect(m_ui->filesList->model(), &QAbstractItemModel::modelAboutToBeReset
, menu, [&menu]() , menu, [menu]()
{ {
menu->setActiveAction(nullptr); menu->setActiveAction(nullptr);
menu->close(); menu->close();
@ -710,7 +710,7 @@ void PropertiesWidget::configure()
void PropertiesWidget::askWebSeed() void PropertiesWidget::askWebSeed()
{ {
bool ok; bool ok = false;
// Ask user for a new url seed // Ask user for a new url seed
const QString urlSeed = AutoExpandableDialog::getText(this, tr("New URL seed", "New HTTP source"), const QString urlSeed = AutoExpandableDialog::getText(this, tr("New URL seed", "New HTTP source"),
tr("New URL seed:"), QLineEdit::Normal, tr("New URL seed:"), QLineEdit::Normal,

View file

@ -482,7 +482,7 @@ void TrackerListWidget::editSelectedTracker()
// During multi-select only process item selected last // During multi-select only process item selected last
const QUrl trackerURL = selectedTrackerItems.last()->text(COL_URL); const QUrl trackerURL = selectedTrackerItems.last()->text(COL_URL);
bool ok; bool ok = false;
const QUrl newTrackerURL = AutoExpandableDialog::getText(this, tr("Tracker editing"), tr("Tracker URL:"), const QUrl newTrackerURL = AutoExpandableDialog::getText(this, tr("Tracker editing"), tr("Tracker URL:"),
QLineEdit::Normal, trackerURL.toString(), &ok).trimmed(); QLineEdit::Normal, trackerURL.toString(), &ok).trimmed();
if (!ok) return; if (!ok) return;

View file

@ -216,7 +216,7 @@ void RSSWidget::displayItemsListMenu(const QPoint &)
void RSSWidget::askNewFolder() void RSSWidget::askNewFolder()
{ {
bool ok; bool ok = false;
QString newName = AutoExpandableDialog::getText( QString newName = AutoExpandableDialog::getText(
this, tr("Please choose a folder name"), tr("Folder name:"), QLineEdit::Normal this, tr("Please choose a folder name"), tr("Folder name:"), QLineEdit::Normal
, tr("New folder"), &ok); , tr("New folder"), &ok);
@ -257,7 +257,7 @@ void RSSWidget::on_newFeedButton_clicked()
const QString clipText = qApp->clipboard()->text(); const QString clipText = qApp->clipboard()->text();
const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : "http://"; const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : "http://";
bool ok; bool ok = false;
QString newURL = AutoExpandableDialog::getText( QString newURL = AutoExpandableDialog::getText(
this, tr("Please type a RSS feed URL"), tr("Feed URL:"), QLineEdit::Normal, defaultURL, &ok); this, tr("Please type a RSS feed URL"), tr("Feed URL:"), QLineEdit::Normal, defaultURL, &ok);
if (!ok) return; if (!ok) return;
@ -386,7 +386,7 @@ void RSSWidget::renameSelectedRSSItem()
RSS::Item *rssItem = m_feedListWidget->getRSSItem(item); RSS::Item *rssItem = m_feedListWidget->getRSSItem(item);
const QString parentPath = RSS::Item::parentPath(rssItem->path()); const QString parentPath = RSS::Item::parentPath(rssItem->path());
bool ok; bool ok = false;
do { do {
QString newName = AutoExpandableDialog::getText( QString newName = AutoExpandableDialog::getText(
this, tr("Please choose a new name for this RSS feed"), tr("New feed name:") this, tr("Please choose a new name for this RSS feed"), tr("New feed name:")

View file

@ -94,7 +94,7 @@ void TorrentContentTreeView::renameSelectedFile(BitTorrent::TorrentHandle *torre
const QModelIndexList selectedIndexes = selectionModel()->selectedRows(0); const QModelIndexList selectedIndexes = selectionModel()->selectedRows(0);
if (selectedIndexes.size() != 1) return; if (selectedIndexes.size() != 1) return;
const QModelIndex modelIndex = selectedIndexes.first(); const QPersistentModelIndex modelIndex = selectedIndexes.first();
if (!modelIndex.isValid()) return; if (!modelIndex.isValid()) return;
auto model = dynamic_cast<TorrentContentFilterModel *>(TorrentContentTreeView::model()); auto model = dynamic_cast<TorrentContentFilterModel *>(TorrentContentTreeView::model());
@ -106,7 +106,7 @@ void TorrentContentTreeView::renameSelectedFile(BitTorrent::TorrentHandle *torre
bool ok = false; bool ok = false;
QString newName = AutoExpandableDialog::getText(this, tr("Renaming"), tr("New name:"), QLineEdit::Normal QString newName = AutoExpandableDialog::getText(this, tr("Renaming"), tr("New name:"), QLineEdit::Normal
, modelIndex.data().toString(), &ok, isFile).trimmed(); , modelIndex.data().toString(), &ok, isFile).trimmed();
if (!ok) return; if (!ok || !modelIndex.isValid()) return;
if (!Utils::Fs::isValidFileSystemName(newName)) { if (!Utils::Fs::isValidFileSystemName(newName)) {
RaisedMessageBox::warning(this, tr("Rename error"), RaisedMessageBox::warning(this, tr("Rename error"),
@ -213,7 +213,7 @@ void TorrentContentTreeView::renameSelectedFile(BitTorrent::TorrentInfo &torrent
const QModelIndexList selectedIndexes = selectionModel()->selectedRows(0); const QModelIndexList selectedIndexes = selectionModel()->selectedRows(0);
if (selectedIndexes.size() != 1) return; if (selectedIndexes.size() != 1) return;
const QModelIndex modelIndex = selectedIndexes.first(); const QPersistentModelIndex modelIndex = selectedIndexes.first();
if (!modelIndex.isValid()) return; if (!modelIndex.isValid()) return;
auto model = dynamic_cast<TorrentContentFilterModel *>(TorrentContentTreeView::model()); auto model = dynamic_cast<TorrentContentFilterModel *>(TorrentContentTreeView::model());
@ -225,7 +225,7 @@ void TorrentContentTreeView::renameSelectedFile(BitTorrent::TorrentInfo &torrent
bool ok = false; bool ok = false;
QString newName = AutoExpandableDialog::getText(this, tr("Renaming"), tr("New name:"), QLineEdit::Normal QString newName = AutoExpandableDialog::getText(this, tr("Renaming"), tr("New name:"), QLineEdit::Normal
, modelIndex.data().toString(), &ok, isFile).trimmed(); , modelIndex.data().toString(), &ok, isFile).trimmed();
if (!ok) return; if (!ok || !modelIndex.isValid()) return;
if (!Utils::Fs::isValidFileSystemName(newName)) { if (!Utils::Fs::isValidFileSystemName(newName)) {
RaisedMessageBox::warning(this, tr("Rename error"), RaisedMessageBox::warning(this, tr("Rename error"),

View file

@ -1003,7 +1003,7 @@ void TransferListWidget::renameSelectedTorrent()
if (!torrent) return; if (!torrent) return;
// Ask for a new Name // Ask for a new Name
bool ok; bool ok = false;
QString name = AutoExpandableDialog::getText(this, tr("Rename"), tr("New name:"), QLineEdit::Normal, torrent->name(), &ok); QString name = AutoExpandableDialog::getText(this, tr("Rename"), tr("New name:"), QLineEdit::Normal, torrent->name(), &ok);
if (ok && !name.isEmpty()) { if (ok && !name.isEmpty()) {
name.replace(QRegularExpression("\r?\n|\r"), " "); name.replace(QRegularExpression("\r?\n|\r"), " ");