Browse Source

- Fix defining a new label from torrent addition dialog

- Stop catching SIGABRT, SIGSEGV once one is received to avoid possible infinite loop
adaptive-webui-19844
Christophe Dumez 15 years ago
parent
commit
8f4bf93f02
  1. 4
      src/main.cpp
  2. 1
      src/transferlistfilterswidget.h
  3. 7
      src/transferlistwidget.cpp
  4. 1
      src/transferlistwidget.h

4
src/main.cpp

@ -101,6 +101,8 @@ void sigtermHandler(int) {
app->exit(); app->exit();
} }
void sigsegvHandler(int) { void sigsegvHandler(int) {
signal(SIGABRT, 0);
signal(SIGTERM, 0);
std::cerr << "\n\n*************************************************************\n"; std::cerr << "\n\n*************************************************************\n";
std::cerr << "Catching SIGSEGV, please report a bug at http://bug.qbittorrent.org\nand provide the following backtrace:\n"; std::cerr << "Catching SIGSEGV, please report a bug at http://bug.qbittorrent.org\nand provide the following backtrace:\n";
print_stacktrace(); print_stacktrace();
@ -108,6 +110,8 @@ void sigsegvHandler(int) {
std::abort(); std::abort();
} }
void sigabrtHandler(int) { void sigabrtHandler(int) {
signal(SIGABRT, 0);
signal(SIGTERM, 0);
std::cerr << "\n\n*************************************************************\n"; std::cerr << "\n\n*************************************************************\n";
std::cerr << "Catching SIGABRT, please report a bug at http://bug.qbittorrent.org\nand provide the following backtrace:\n"; std::cerr << "Catching SIGABRT, please report a bug at http://bug.qbittorrent.org\nand provide the following backtrace:\n";
print_stacktrace(); print_stacktrace();

1
src/transferlistfilterswidget.h

@ -329,6 +329,7 @@ protected slots:
void torrentAdded(QModelIndex index) { void torrentAdded(QModelIndex index) {
Q_ASSERT(index.isValid()); Q_ASSERT(index.isValid());
QString label = transferList->model()->index(index.row(), TR_LABEL).data(Qt::DisplayRole).toString().trimmed(); QString label = transferList->model()->index(index.row(), TR_LABEL).data(Qt::DisplayRole).toString().trimmed();
qDebug("New torrent was added with label: %s", label.toLocal8Bit().data());
if(!label.isEmpty()) { if(!label.isEmpty()) {
if(!customLabels.contains(label)) { if(!customLabels.contains(label)) {
addLabel(label); addLabel(label);

7
src/transferlistwidget.cpp

@ -192,7 +192,7 @@ void TransferListWidget::addTorrent(QTorrentHandle& h) {
if(listModel->rowCount() == 1) if(listModel->rowCount() == 1)
selectionModel()->setCurrentIndex(proxyModel->index(row, TR_NAME), QItemSelectionModel::SelectCurrent|QItemSelectionModel::Rows); selectionModel()->setCurrentIndex(proxyModel->index(row, TR_NAME), QItemSelectionModel::SelectCurrent|QItemSelectionModel::Rows);
// Emit signal // Emit signal
emit torrentAdded(listModel->index(row, 0)); emit torrentAdded(mapFromSource(listModel->index(row, 0)));
// Refresh the list // Refresh the list
refreshList(); refreshList();
} catch(invalid_handle e) { } catch(invalid_handle e) {
@ -490,6 +490,11 @@ QModelIndex TransferListWidget::mapToSource(QModelIndex index) const {
return labelFilterModel->mapToSource(proxyModel->mapToSource(index)); return labelFilterModel->mapToSource(proxyModel->mapToSource(index));
} }
QModelIndex TransferListWidget::mapFromSource(QModelIndex index) const {
return proxyModel->mapFromSource(labelFilterModel->mapFromSource(index));
}
QStringList TransferListWidget::getCustomLabels() const { QStringList TransferListWidget::getCustomLabels() const {
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent")); QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
settings.beginGroup(QString::fromUtf8("TransferListFilters")); settings.beginGroup(QString::fromUtf8("TransferListFilters"));

1
src/transferlistwidget.h

@ -64,6 +64,7 @@ protected:
int getRowFromHash(QString hash) const; int getRowFromHash(QString hash) const;
QString getHashFromRow(int row) const; QString getHashFromRow(int row) const;
QModelIndex mapToSource(QModelIndex index) const; QModelIndex mapToSource(QModelIndex index) const;
QModelIndex mapFromSource(QModelIndex index) const;
QStringList getCustomLabels() const; QStringList getCustomLabels() const;
void saveColWidthList(); void saveColWidthList();
bool loadColWidthList(); bool loadColWidthList();

Loading…
Cancel
Save