]> Some of my projects - localmylist.git/commitdiff
Add option to delete selected unknown files.
authorAPTX <marek321@gmail.com>
Tue, 30 Apr 2013 22:18:04 +0000 (00:18 +0200)
committerAPTX <marek321@gmail.com>
Tue, 30 Apr 2013 22:18:04 +0000 (00:18 +0200)
localmylist-management/tabs/unknownfilestab.cpp
localmylist-management/tabs/unknownfilestab.h
localmylist-management/tabs/unknownfilestab.ui

index 4667ec867aa906f8361e39e8f586d03ae1317fe0..5f7e6419b1bf87ddd84b7d4ce856ad44b9c32626 100644 (file)
@@ -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();
+}
index 226c79315df25b2979d87b860feeedd5ca2ba03f..14d1cab315070d0bf8e1b2fe18defe7f7c84398f 100644 (file)
@@ -22,6 +22,9 @@ public:
        void init();
        void activate();
 
+public slots:
+       void deleteSelected();
+
 private:
        Ui::UnknownFilesTab *ui;
 
index a9a291aa5a2985bad3833547677eeafee60dbd1f..815f384ddc5a9f0e73f1bb82f39fb03a08d2e945 100644 (file)
    <item>
     <widget class="QTableView" name="unknownFilesView"/>
    </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QPushButton" name="selectAllButton">
+       <property name="text">
+        <string>Select All</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="clearSelectionButton">
+       <property name="text">
+        <string>Clear Selection</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="deleteButton">
+       <property name="text">
+        <string>Delete Selected</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <resources/>