summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archivetreeview.cpp24
-rw-r--r--archivetreeview.h13
-rw-r--r--filestreewidget.cpp18
-rw-r--r--filestreewidget.h34
-rw-r--r--seriestreemodel.h4
-rw-r--r--shemov.pro10
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;
diff --git a/shemov.pro b/shemov.pro
index 585a7b1..491142b 100644
--- a/shemov.pro
+++ b/shemov.pro
@@ -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