diff --git a/src/GUI.cpp b/src/GUI.cpp index 8ce15deb8..dc4d7848b 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -62,6 +62,7 @@ #include "console_imp.h" #include "httpserver.h" #include "torrentPersistentData.h" +#include "TransferListFiltersWidget.h" using namespace libtorrent; @@ -135,10 +136,16 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis qDebug("create tabWidget"); tabs = new QTabWidget(); + vSplitter = new QSplitter(Qt::Horizontal); + // Transfer List tab - transferList = new TransferListWidget(tabs, BTSession); - int index_tab = tabs->addTab(transferList, tr("Transfers")); - tabs->setTabIcon(index_tab, QIcon(QString::fromUtf8(":/Icons/oxygen/folder-remote.png"))); + transferListFilters = new TransferListFiltersWidget(vSplitter); + vSplitter->addWidget(transferListFilters); + transferList = new TransferListWidget(vSplitter, BTSession); + vSplitter->addWidget(transferList); + + tabs->addTab(vSplitter, QIcon(QString::fromUtf8(":/Icons/oxygen/folder-remote.png")), tr("Transfers")); + vboxLayout->addWidget(tabs); // Transfer list slots @@ -155,8 +162,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis //connect(downloadingTorrentTab, SIGNAL(torrentDoubleClicked(QString, bool)), this, SLOT(torrentDoubleClicked(QString, bool))); // Search engine tab searchEngine = new SearchEngine(BTSession, myTrayIcon, systrayIntegration); - index_tab = tabs->addTab(searchEngine, tr("Search")); - tabs->setTabIcon(index_tab, QIcon(QString::fromUtf8(":/Icons/oxygen/edit-find.png"))); + tabs->addTab(searchEngine, QIcon(QString::fromUtf8(":/Icons/oxygen/edit-find.png")), tr("Search")); readSettings(); // RSS Tab rssWidget = 0; @@ -233,6 +239,11 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis if(settings.value(QString::fromUtf8("Preferences/General/StartMinimized"), false).toBool()) { this->setWindowState(Qt::WindowMinimized); } + // Splitter size + QList sizes; + sizes << 120; + sizes << vSplitter->width()-120; + vSplitter->setSizes(sizes); scrapeTimer = new QTimer(this); connect(scrapeTimer, SIGNAL(timeout()), this, SLOT(scrapeTrackers())); scrapeTimer->start(20000); @@ -260,7 +271,9 @@ GUI::~GUI() { if(rssWidget != 0) delete rssWidget; delete searchEngine; + delete transferListFilters; delete transferList; + delete vSplitter; delete checkConnect; qDebug("1"); if(systrayCreator) { diff --git a/src/GUI.h b/src/GUI.h index 59fd72069..1cc7dee8d 100644 --- a/src/GUI.h +++ b/src/GUI.h @@ -56,6 +56,8 @@ class QModelIndex; class HttpServer; class QFrame; class TransferListWidget; +class TransferListFiltersWidget; +class QSplitter; class GUI : public QMainWindow, private Ui::MainWindow{ Q_OBJECT @@ -73,6 +75,8 @@ class GUI : public QMainWindow, private Ui::MainWindow{ QPointer systrayCreator; QMenu *myTrayIconMenu; TransferListWidget *transferList; + TransferListFiltersWidget *transferListFilters; + QSplitter *vSplitter; QLabel *connecStatusLblIcon; bool systrayIntegration; bool displaySpeedInTitle; diff --git a/src/Icons/oxygen/draw-rectangle.png b/src/Icons/oxygen/draw-rectangle.png new file mode 100644 index 000000000..04e093770 Binary files /dev/null and b/src/Icons/oxygen/draw-rectangle.png differ diff --git a/src/Icons/oxygen/draw-triangle2.png b/src/Icons/oxygen/draw-triangle2.png new file mode 100644 index 000000000..3c29299bb Binary files /dev/null and b/src/Icons/oxygen/draw-triangle2.png differ diff --git a/src/Icons/oxygen/folder-remote16.png b/src/Icons/oxygen/folder-remote16.png new file mode 100644 index 000000000..38465e573 Binary files /dev/null and b/src/Icons/oxygen/folder-remote16.png differ diff --git a/src/TransferListFiltersWidget.h b/src/TransferListFiltersWidget.h index daed7e157..db05a423f 100644 --- a/src/TransferListFiltersWidget.h +++ b/src/TransferListFiltersWidget.h @@ -1,4 +1,30 @@ #ifndef TRANSFERLISTFILTERSWIDGET_H #define TRANSFERLISTFILTERSWIDGET_H +#include +#include +#include + +class TransferListFiltersWidget: public QListWidget { +public: + TransferListFiltersWidget(QWidget *parent): QListWidget(parent) { + // Add filters + QListWidgetItem *all = new QListWidgetItem(this); + all->setData(Qt::DisplayRole, tr("All")); + all->setData(Qt::DecorationRole, QIcon(":/Icons/oxygen/folder-remote16.png")); + QListWidgetItem *downloading = new QListWidgetItem(this); + downloading->setData(Qt::DisplayRole, tr("Downloading")); + downloading->setData(Qt::DecorationRole, QIcon(":/Icons/skin/downloading.png")); + QListWidgetItem *completed = new QListWidgetItem(this); + completed->setData(Qt::DisplayRole, tr("Completed")); + completed->setData(Qt::DecorationRole, QIcon(":/Icons/skin/seeding.png")); + QListWidgetItem *active = new QListWidgetItem(this); + active->setData(Qt::DisplayRole, tr("Active")); + active->setData(Qt::DecorationRole, QIcon(":/Icons/oxygen/draw-triangle2.png")); + QListWidgetItem *inactive = new QListWidgetItem(this); + inactive->setData(Qt::DisplayRole, tr("Inactive")); + inactive->setData(Qt::DecorationRole, QIcon(":/Icons/oxygen/draw-rectangle.png")); + } +}; + #endif // TRANSFERLISTFILTERSWIDGET_H diff --git a/src/icons.qrc b/src/icons.qrc index dbe10243d..e014c332b 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -70,6 +70,7 @@ Icons/oxygen/mail-queue.png Icons/oxygen/view-refresh.png Icons/oxygen/file.png + Icons/oxygen/folder-remote16.png Icons/oxygen/mail-folder-inbox.png Icons/oxygen/edit-find.png Icons/oxygen/folder-new.png @@ -88,6 +89,7 @@ Icons/oxygen/download.png Icons/oxygen/application-x-kgetlist-no.png Icons/oxygen/gear.png + Icons/oxygen/draw-triangle2.png Icons/oxygen/remove.png Icons/oxygen/browse.png Icons/oxygen/unsubscribe16.png @@ -107,6 +109,7 @@ Icons/oxygen/folder.png Icons/oxygen/edit-cut.png Icons/oxygen/unsubscribe.png + Icons/oxygen/draw-rectangle.png Icons/oxygen/subscribe16.png \ No newline at end of file