added SortVolumeComics widget (and models)

This commit is contained in:
Luis Ángel San Martín
2013-10-19 09:20:23 +02:00
parent 8678e5368d
commit 63636dd417
19 changed files with 411 additions and 72 deletions

View File

@ -1,14 +1,15 @@
#include "select_volume.h"
#include <QLabel>
#include <QTableView>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QHeaderView>
#include <QScrollBar>
#include <QModelIndex>
#include <QScrollArea>
#include <QDesktopServices>
#include <QHeaderView>
#include "scrapper_tableview.h"
#include <QtScript>
@ -19,22 +20,6 @@ SelectVolume::SelectVolume(QWidget *parent)
:QWidget(parent),model(0)
{
QString labelStylesheet = "QLabel {color:white; font-size:12px;font-family:Arial;}";
QString tableStylesheet = "QTableView {color:white; border:0px;alternate-background-color: #2E2E2E;background-color: #2B2B2B; outline: 0px;}"
"QTableView::item {outline: 0px; border: 0px; color:#FFFFFF;}"
"QTableView::item:selected {outline: 0px; background-color: #555555; }"
"QHeaderView::section:horizontal {background-color:#292929; border-bottom:1px solid #1F1F1F; border-right:1px solid qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #292929, stop: 1 #1F1F1F); border-left:none; border-top:none; padding:4px; color:#ebebeb;}"
"QHeaderView::section:vertical {border-bottom: 1px solid #DFDFDF;border-top: 1px solid #FEFEFE;}"
"QScrollBar:vertical { border: none; background: #2B2B2B; width: 3px; margin: 0; }"
"QScrollBar:horizontal { border: none; background: #2B2B2B; height: 3px; margin: 0; }"
"QScrollBar::handle:vertical { background: #DDDDDD; width: 7px; min-height: 20px; }"
"QScrollBar::handle:horizontal { background: #DDDDDD; width: 7px; min-height: 20px; }"
"QScrollBar::add-line:vertical { border: none; background: #404040; height: 10px; subcontrol-position: bottom; subcontrol-origin: margin; margin: 0 3px 0 0;}"
"QScrollBar::sub-line:vertical { border: none; background: #404040; height: 10px; subcontrol-position: top; subcontrol-origin: margin; margin: 0 3px 0 0;}"
"QScrollBar::add-line:horizontal { border: none; background: #404040; width: 10px; subcontrol-position: bottom; subcontrol-origin: margin; margin: 0 0 3px 0;}"
"QScrollBar::sub-line:horizontal { border: none; background: #404040; width: 10px; subcontrol-position: top; subcontrol-origin: margin; margin: 0 0 3px 0;}"
"QScrollBar::up-arrow:vertical {border:none;width: 9px;height: 6px;background: url(':/images/folders_view/line-up.png') center top no-repeat;}"
"QScrollBar::down-arrow:vertical {border:none;width: 9px;height: 6px;background: url(':/images/folders_view/line-down.png') center top no-repeat;}"
"QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical, QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {background: none; }";
QLabel * label = new QLabel(tr("Please, select the right series for your comic."));
label->setStyleSheet(labelStylesheet);
@ -80,42 +65,7 @@ SelectVolume::SelectVolume(QWidget *parent)
//iScroll->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//iScroll->show();
tableVolumes = new QTableView();
tableVolumes->setStyleSheet(tableStylesheet);
tableVolumes->setShowGrid(false);
#if QT_VERSION >= 0x050000
tableVolumes->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
#else
tableVolumes->verticalHeader()->setResizeMode(QHeaderView::Fixed);
#endif
//comicView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
tableVolumes->horizontalHeader()->setStretchLastSection(true);
#if QT_VERSION >= 0x050000
tableVolumes->horizontalHeader()->setSectionsClickable(false);
#else
tableVolumes->horizontalHeader()->setClickable(false);
#endif
//comicView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
tableVolumes->verticalHeader()->setDefaultSectionSize(24);
#if QT_VERSION >= 0x050000
tableVolumes->verticalHeader()->setSectionsClickable(false); //TODO comportamiento anómalo
#else
tableVolumes->verticalHeader()->setClickable(false); //TODO comportamiento anómalo
#endif
tableVolumes->setCornerButtonEnabled(false);
tableVolumes->setSelectionBehavior(QAbstractItemView::SelectRows);
tableVolumes->setSelectionMode(QAbstractItemView::ExtendedSelection);
tableVolumes->setAlternatingRowColors(true);
tableVolumes->verticalHeader()->hide();
tableVolumes->setSelectionMode(QAbstractItemView::SingleSelection);
tableVolumes = new ScrapperTableView();
//connections
connect(tableVolumes,SIGNAL(clicked(QModelIndex)),this,SLOT(loadVolumeInfo(QModelIndex)));
@ -221,7 +171,9 @@ void SelectVolume::setDescription(const QString & jsonDetail)
else
{
detailLabel->setAlignment(Qt::AlignTop|Qt::AlignLeft);
detailLabel->setText(sc.property("results").property("description").toString().replace("<a","<a style = 'color:#827A68; text-decoration:none;'"));
QScriptValue descriptionValues = sc.property("results").property("description");
bool valid = !descriptionValues.isNull() && descriptionValues.isValid();
detailLabel->setText(valid?descriptionValues.toString().replace("<a","<a style = 'color:#827A68; text-decoration:none;'"):tr("description unavailable"));
detailLabel->adjustSize();
}
}
@ -231,3 +183,8 @@ void SelectVolume::openLink(const QString & link)
QDesktopServices::openUrl(QUrl("http://www.comicvine.com"+link));
}
QString SelectVolume::getSelectedVolumeId()
{
return model->getVolumeId(tableVolumes->currentIndex());
}