From 20739414e871f9987a35a9db27e95fe13dc16868 Mon Sep 17 00:00:00 2001 From: APTX Date: Wed, 1 May 2013 00:18:04 +0200 Subject: [PATCH] Add option to delete selected unknown files. --- .../tabs/unknownfilestab.cpp | 30 ++++++++++++++- localmylist-management/tabs/unknownfilestab.h | 3 ++ .../tabs/unknownfilestab.ui | 38 +++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/localmylist-management/tabs/unknownfilestab.cpp b/localmylist-management/tabs/unknownfilestab.cpp index 4667ec8..5f7e641 100644 --- a/localmylist-management/tabs/unknownfilestab.cpp +++ b/localmylist-management/tabs/unknownfilestab.cpp @@ -37,10 +37,16 @@ void UnknownFilesTab::init() ui->unknownFilesView->setSelectionBehavior(QAbstractItemView::SelectRows); model->setRelation(2, QSqlRelation("host", "host_id", "name")); - model->setHeaderData(0, Qt::Horizontal, tr("ed2k")); + model->setHeaderData(0, Qt::Horizontal, tr("Ed2k")); model->setHeaderData(1, Qt::Horizontal, tr("Size")); model->setHeaderData(2, Qt::Horizontal, tr("Host")); model->setHeaderData(3, Qt::Horizontal, tr("Path")); + + ui->unknownFilesView->setSelectionMode(QAbstractItemView::ContiguousSelection); + + connect(ui->clearSelectionButton, SIGNAL(clicked()), ui->unknownFilesView, SLOT(clearSelection())); + connect(ui->selectAllButton, SIGNAL(clicked()), ui->unknownFilesView, SLOT(selectAll())); + connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteSelected())); } void UnknownFilesTab::activate() @@ -48,3 +54,25 @@ void UnknownFilesTab::activate() model->select(); ui->unknownFilesView->setModel(model); } + +void UnknownFilesTab::deleteSelected() +{ + using namespace LocalMyList; + + QModelIndexList selection = ui->unknownFilesView->selectionModel()->selectedRows(); + + RaiiTransaction t(MyList::instance()->database()); + for (const QModelIndex &idx : selection) + { + QByteArray ed2k = idx.data().toByteArray(); + qint64 size = model->data(model->index(idx.row(), 1)).toLongLong(); + + MyList::instance()->database()->removeUnknownFile(ed2k, size); + PendingRequest pr; + pr.ed2k = ed2k; + pr.size = size; + MyList::instance()->database()->clearRequest(pr); + } + t.commit(); + model->select(); +} diff --git a/localmylist-management/tabs/unknownfilestab.h b/localmylist-management/tabs/unknownfilestab.h index 226c793..14d1cab 100644 --- a/localmylist-management/tabs/unknownfilestab.h +++ b/localmylist-management/tabs/unknownfilestab.h @@ -22,6 +22,9 @@ public: void init(); void activate(); +public slots: + void deleteSelected(); + private: Ui::UnknownFilesTab *ui; diff --git a/localmylist-management/tabs/unknownfilestab.ui b/localmylist-management/tabs/unknownfilestab.ui index a9a291a..815f384 100644 --- a/localmylist-management/tabs/unknownfilestab.ui +++ b/localmylist-management/tabs/unknownfilestab.ui @@ -26,6 +26,44 @@ + + + + + + Select All + + + + + + + Clear Selection + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Delete Selected + + + + + -- 2.52.0