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

1
src/transferlistfilterswidget.h

@ -329,6 +329,7 @@ protected slots: @@ -329,6 +329,7 @@ protected slots:
void torrentAdded(QModelIndex index) {
Q_ASSERT(index.isValid());
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(!customLabels.contains(label)) {
addLabel(label);

7
src/transferlistwidget.cpp

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

1
src/transferlistwidget.h

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

Loading…
Cancel
Save