root/src/tvshowlistwidget.cpp

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
#include "tvshowlistwidget.h"
#include "ui_tvshowlistwidget.h"

TvShowListWidget::TvShowListWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::GuiTvShowList)
{
    ui->setupUi(this);
}

TvShowListWidget::~TvShowListWidget()
{
    delete ui;
}

void TvShowListWidget::set(QList<TvShow*> showList, QString title) {
    this->ui->treeWidget->clear();
    for (int i=0; i < showList.length(); ++i) {
        const TvShow* show = showList.at(i);
        this->add(show, false);
    }
    this->sortList();

    if (!title.isNull()) {
        this->ui->titleLabel->setText(title);
    }
}

void TvShowListWidget::add(const TvShow* show, bool sort) {
    QStringList strings;
    strings.append(show->name());
    strings.append(QString("%1/%2/%3").arg(
        QString::number(show->episodeList().numberOfWatchedEpisodes()),
        QString::number(show->episodeList().numberOfEpisodes()),
        QString::number(show->getTotalEpisodes())
    ));
    QTreeWidgetItem* item = new QTreeWidgetItem(strings);
    this->ui->treeWidget->addTopLevelItem(item);
    if (sort) {
        this->sortList();
    }
}

void TvShowListWidget::sortList() {
    this->ui->treeWidget->resizeColumnToContents(0);
    this->ui->treeWidget->sortByColumn(0, Qt::AscendingOrder);
}