diff options
-rw-r--r-- | archivetreeview.cpp | 24 | ||||
-rw-r--r-- | archivetreeview.h | 13 | ||||
-rw-r--r-- | filestreewidget.cpp | 18 | ||||
-rw-r--r-- | filestreewidget.h | 34 | ||||
-rw-r--r-- | seriestreemodel.h | 4 | ||||
-rw-r--r-- | shemov.pro | 10 |
6 files changed, 91 insertions, 12 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp index fbc9254..d59d723 100644 --- a/archivetreeview.cpp +++ b/archivetreeview.cpp @@ -9,24 +9,44 @@ #include <QSplitter> #include <QHBoxLayout> #include <QVBoxLayout> +#include <QItemSelectionModel> +#include <QAbstractItemModel> #include "archivetreeview.h" #include "smmodelsingleton.h" #include "smtreemodel.h" #include "seriestreewidget.h" +#include "filestreewidget.h" +#include "filestreemodel.h" ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){ // series view mSeriesWidget = new SeriesTreeWidget; + QItemSelectionModel *selModel = mSeriesWidget->seriesTree()->selectionModel(); + connect(selModel, SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(currentChanged())); // files view - mFilesView = new QTreeView; + mFilesWidget = new FilesTreeWidget; + QAbstractItemModel *filesModel = SmModelSingleton::instance()->model("FilesTreeModel"); + mFilesModel = static_cast<FilesTreeModel*>(filesModel); + // layout QHBoxLayout *mainLayout = new QHBoxLayout; QSplitter *splitter = new QSplitter; splitter->addWidget(mSeriesWidget); - splitter->addWidget(mFilesView); + splitter->addWidget(mFilesWidget); mainLayout->addWidget(splitter); setLayout(mainLayout); } + +void ArchiveTreeView::currentChanged(){ + QModelIndexList sel = mSeriesWidget->seriesTree()->selectionModel()->selectedRows(); + if(sel.isEmpty()){ + return; + } + mSelectedPartIds.clear(); + foreach(QModelIndex i, sel){ + + } +} diff --git a/archivetreeview.h b/archivetreeview.h index 2f07d2f..613bdc6 100644 --- a/archivetreeview.h +++ b/archivetreeview.h @@ -9,10 +9,12 @@ #define ARCHIVETREEVIEW_H #include <QWidget> +#include <QList> class SmUberModel; -class QTreeView; class SeriesTreeWidget; +class FilesTreeWidget; +class FilesTreeModel; class ArchiveTreeView : public QWidget { @@ -20,12 +22,17 @@ class ArchiveTreeView : public QWidget public: explicit ArchiveTreeView(QWidget *parent = 0); SeriesTreeWidget *seriesWidget() { return mSeriesWidget; } + FilesTreeWidget *filesWidget() { return mFilesWidget; } + + private slots: + void currentChanged(); private: //widgets SeriesTreeWidget *mSeriesWidget; - QTreeView *mFilesView; - + FilesTreeWidget *mFilesWidget; + QList<int> mSelectedPartIds; + FilesTreeModel *mFilesModel; }; #endif diff --git a/filestreewidget.cpp b/filestreewidget.cpp new file mode 100644 index 0000000..5b1211d --- /dev/null +++ b/filestreewidget.cpp @@ -0,0 +1,18 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#include "filestreewidget.h" +#include "smmodelsingleton.h" +#include "filestreemodel.h" + +FilesTreeWidget::FilesTreeWidget(QWidget *parent) : QWidget(parent){ + mView = new FilesTreeView; + mModel = static_cast<FilesTreeModel*>(SmModelSingleton::instance()->model("FilesModel")); + mView->setModel(mModel); +} + +FilesTreeView::FilesTreeView(QWidget *parent) : QTreeView(parent) {} diff --git a/filestreewidget.h b/filestreewidget.h new file mode 100644 index 0000000..fd06f30 --- /dev/null +++ b/filestreewidget.h @@ -0,0 +1,34 @@ +/* + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version + 2 of the License, or (at your option) any later version. +*/ + +#ifndef FILESTREEWIDGET_H +#define FILESTREEWIDGET_H + +#include <QWidget> +#include <QTreeView> + +class FilesTreeView; +class FilesTreeModel; + +class FilesTreeWidget : public QWidget { + Q_OBJECT + public: + explicit FilesTreeWidget(QWidget *parent = 0); + FilesTreeView *filesTree() { return mView; } + + private: + FilesTreeView *mView; + FilesTreeModel *mModel; +}; + +class FilesTreeView : public QTreeView { + Q_OBJECT + public: + explicit FilesTreeView(QWidget *parent = 0); +}; + +#endif diff --git a/seriestreemodel.h b/seriestreemodel.h index a0c5a23..6d88535 100644 --- a/seriestreemodel.h +++ b/seriestreemodel.h @@ -10,6 +10,7 @@ #include <QSqlDatabase> #include <QFileInfoList> +#include <QList> #include "smtreemodel.h" @@ -24,9 +25,6 @@ class SeriesTreeModel : public SmTreeModel { explicit SeriesTreeModel(QStringList &headers, QObject *parent = 0); ~SeriesTreeModel(); - //numColumns - int numColumns() const { return 5; } - //data + flags Qt::ItemFlags flags(const QModelIndex &index) const; QVariant data(const QModelIndex &index, int role) const; @@ -48,11 +48,12 @@ SOURCES = main.cpp \ archiveitemeditdialog.cpp \ smtreeitem.cpp \ smtreemodel.cpp \ - smmodelsingleton.cpp \ + smmodelsingleton.cpp \ archivetreeview.cpp \ seriestreewidget.cpp \ seriestreemodel.cpp \ - filestreemodel.cpp + filestreemodel.cpp \ + filestreewidget.cpp HEADERS = listitem.h \ listmodel.h \ movieitem.h \ @@ -96,10 +97,11 @@ HEADERS = listitem.h \ archiveitemeditdialog.h \ smtreeitem.h \ smtreemodel.h \ - smmodelsingleton.h \ + smmodelsingleton.h \ archivetreeview.h \ seriestreewidget.h \ seriestreemodel.h \ - filestreemodel.h + filestreemodel.h \ + filestreewidget.h LIBS += -lmagic RESOURCES = shemov.qrc |