summaryrefslogtreecommitdiffstats
path: root/archiveview.cpp
blob: dc4b13537af73535af114fbd50ee0a9db1e9a950 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
  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 <QComboBox>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QSortFilterProxyModel>
#include <QSplitter>
#include <QVBoxLayout>

#include "archiveview.h"
#include "smglobals.h"

ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) {
    mArchiveModel = static_cast<ArchiveModel*>(SmGlobals::instance()->model("ArchiveModel"));
    QSortFilterProxyModel *proxy = new QSortFilterProxyModel;
    proxy->setSourceModel(mArchiveModel);
    mTree = new ArchiveTree;
    mTree->setModel(proxy);
    mTree->setColumnHidden(ArchiveModel::GenericId, true);
    mTree->setColumnHidden(ArchiveModel::SeriesPartId, true);
    mTree->setColumnHidden(ArchiveModel::SeriesPart, true);
    mTree->setColumnHidden(ArchiveModel::Type, true);
    mTree->setColumnHidden(ArchiveModel::Favorite, true);
    mTree->setColumnHidden(ArchiveModel::Subtitle, true);
    mTree->setColumnHidden(ArchiveModel::Count, true);
    mTree->resizeColumnToContents(ArchiveModel::Name);
    mSortOrder = new QComboBox;
    mSortOrder->addItems(mArchiveModel->availableOrders());
    connect(mSortOrder, SIGNAL(currentIndexChanged(QString)), mArchiveModel, SLOT(setOrder(QString)));
    QLabel *l1 = new QLabel(tr("Filter"));
    mFilter = new QLineEdit;
    QPushButton *filter = new QPushButton(tr("Filter"));
    QPushButton *clear = new QPushButton(tr("Clear"));
    QHBoxLayout *filterLayout = new QHBoxLayout;
    filterLayout->addWidget(l1);
    filterLayout->addWidget(mFilter);
    filterLayout->addWidget(filter);
    filterLayout->addWidget(clear);
    QVBoxLayout *treeLayout = new QVBoxLayout;
    treeLayout->addWidget(mSortOrder);
    treeLayout->addLayout(filterLayout);
    treeLayout->addWidget(mTree);
    QWidget *treeWidget = new QWidget;
    treeWidget->setLayout(treeLayout);
    mFiles = new ArchiveFiles;
    QSplitter *treeSplitter = new QSplitter(Qt::Horizontal);
    treeSplitter->addWidget(treeWidget);
    treeSplitter->addWidget(mFiles);
    treeSplitter->setStretchFactor(0, 1);
    treeSplitter->setStretchFactor(1, 4);
    QHBoxLayout *mainLayout = new QHBoxLayout;
    mainLayout->addWidget(treeSplitter);
    setLayout(mainLayout);
}

ArchiveTree::ArchiveTree(QWidget *parent) : SmTreeView(parent) {
}

ArchiveFiles::ArchiveFiles(QWidget *parent) : SmTreeView(parent){
}