diff --git a/src/forms/frmlistsubtitles.cpp b/src/forms/frmlistsubtitles.cpp index fcc18de..b0564ea 100644 --- a/src/forms/frmlistsubtitles.cpp +++ b/src/forms/frmlistsubtitles.cpp @@ -15,6 +15,8 @@ #include "frmlistsubtitles.h" #include "qnapi.h" +#include "subdatawidget.h" + #include #include #include @@ -32,83 +34,59 @@ frmListSubtitles::frmListSubtitles(QWidget *parent, Qt::WindowFlags f) void frmListSubtitles::setFileName(const QString & name) { ui.lbSelectSubtitles->setText(QString( "Z poniższej listy wybierz napisy, które" - " chcesz dopasować do pliku %1:") + " chcesz dopasować do pliku

%1") .arg(name)); } -void frmListSubtitles::setSubtitlesList(const QList & list) +void frmListSubtitles::setSubtitlesList(QList list) { QNapi n; n.addEngines(n.enumerateEngines()); ui.twSubtitles->clear(); - ui.twSubtitles->setColumnCount(4); - ui.twSubtitles->setRowCount(list.size()); - - ui.twSubtitles->horizontalHeader()->hide(); - ui.twSubtitles->verticalHeader()->hide(); - ui.twSubtitles->verticalHeader()->setDefaultSectionSize(20); - ui.twSubtitles->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); - int i = 0, good = 0, bad = 0; + int i = 0, goodCount = 0, badCount = 0; foreach(QNapiSubtitleInfo s, list) { - QTableWidgetItem *item; - bool highlight = (s.resolution != SUBTITLE_UNKNOWN); - QBrush brush((s.resolution == SUBTITLE_GOOD) ? QColor(qRgb(200, 255, 200)) : QColor(qRgb(255, 200, 200))); + QBrush brush((s.resolution == SUBTITLE_GOOD) ? QColor(qRgb(200, 255, 200)) : QColor(qRgb(255, 200, 200))); + + QNapiAbstractEngine *e = n.engineByName(s.engine); + QListWidgetItem *listItem = new QListWidgetItem(); + + ui.twSubtitles->addItem(listItem); - if(highlight && (s.resolution == SUBTITLE_GOOD)) - ++good; - else if(highlight && (s.resolution == SUBTITLE_BAD)) - ++bad; + subDataWidget *subData = new subDataWidget(); + + if(highlight) listItem->setBackground(brush); QString lang_path = QString(":/languages/") + s.lang + ".png"; - if(QFile::exists(lang_path)) - { - item = new QTableWidgetItem(QIcon(lang_path), ""); - } - else - { - item = new QTableWidgetItem(s.lang); + + if(highlight && (s.resolution == SUBTITLE_GOOD)){ + ++goodCount; + } else if(highlight && (s.resolution == SUBTITLE_BAD)){ + ++badCount; } - if(highlight) item->setBackground(brush); - item->setToolTip(s.comment); - ui.twSubtitles->setItem(i, 1, item); - item = new QTableWidgetItem(s.name); - if(highlight) item->setBackground(brush); - item->setToolTip(s.comment); - ui.twSubtitles->setItem(i, 2, item); + subData->setSubData(s.name, s.format, QIcon(lang_path), e->engineIcon()); - item = new QTableWidgetItem(s.format); - if(highlight) item->setBackground(brush); - item->setToolTip(s.comment); - ui.twSubtitles->setItem(i, 3, item); - QNapiAbstractEngine *e = n.engineByName(s.engine); - if(e) - { - item = new QTableWidgetItem(e->engineIcon(), ""); - if(highlight) item->setBackground(brush); - item->setToolTip(s.comment); - ui.twSubtitles->setItem(i, 0, item); - } + ui.twSubtitles->setItemWidget(listItem, subData); + listItem->setSizeHint(subData->sizeHint()); ++i; } - ui.twSubtitles->resizeColumnsToContents(); - - if(good == 0) ui.lbGreenHint->hide(); - if(bad == 0) ui.lbRedHint->hide(); + if(goodCount == 0) ui.lbGreenHint->hide(); + if(badCount == 0) ui.lbRedHint->hide(); } int frmListSubtitles::getSelectedIndex() { - return ui.twSubtitles->currentRow(); + QModelIndexList selected = ui.twSubtitles->selectionModel()->selectedIndexes(); + return selected.first().row(); } void frmListSubtitles::accept() diff --git a/src/forms/frmlistsubtitles.h b/src/forms/frmlistsubtitles.h index c902ff9..646b5f0 100644 --- a/src/forms/frmlistsubtitles.h +++ b/src/forms/frmlistsubtitles.h @@ -34,7 +34,7 @@ Q_OBJECT public slots: void setFileName(const QString & name); - void setSubtitlesList(const QList & list); + void setSubtitlesList(QList list); int getSelectedIndex(); void accept(); diff --git a/src/forms/subdatawidget.cpp b/src/forms/subdatawidget.cpp index c13f166..be02c4c 100644 --- a/src/forms/subdatawidget.cpp +++ b/src/forms/subdatawidget.cpp @@ -12,12 +12,14 @@ subDataWidget::~subDataWidget() delete ui; } -void subDataWidget::setSubData(const QIcon &stateIcon, QString name, const QIcon &langIcon, const QIcon &engineIcon){ - +void subDataWidget::clearAll(){ ui->place1->clear(); ui->place2->clear(); ui->place3->clear(); ui->place4->clear(); +} + +void subDataWidget::setSubData(const QIcon &stateIcon, QString name, const QIcon &langIcon, const QIcon &engineIcon){ ui->place1->setPixmap(stateIcon.pixmap(16)); ui->place2->setText(name); @@ -27,10 +29,7 @@ void subDataWidget::setSubData(const QIcon &stateIcon, QString name, const QIcon void subDataWidget::setSubData(const QIcon &stateIcon, QString name){ - ui->place1->clear(); - ui->place2->clear(); - ui->place3->clear(); - ui->place4->clear(); + this->clearAll(); ui->place3->hide(); ui->place4->hide(); @@ -38,3 +37,16 @@ void subDataWidget::setSubData(const QIcon &stateIcon, QString name){ ui->place1->setPixmap(stateIcon.pixmap(16)); ui->place2->setText(name); } + +void subDataWidget::setSubData(QString name, QString ext, const QIcon &langIcon, const QIcon &engineIcon){ + + this->clearAll(); + + ui->place1->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Preferred); + ui->place2->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); + + ui->place1->setText(name); + ui->place2->setText(ext); + ui->place3->setPixmap(langIcon.pixmap(16)); + ui->place4->setPixmap(engineIcon.pixmap(16)); +} diff --git a/src/forms/subdatawidget.h b/src/forms/subdatawidget.h index b8a3514..229c8cb 100644 --- a/src/forms/subdatawidget.h +++ b/src/forms/subdatawidget.h @@ -10,8 +10,10 @@ class subDataWidget : public QWidget public: explicit subDataWidget(QWidget *parent = 0); - void setSubData(const QIcon &_stateIcon, QString _name, const QIcon &_langIcon, const QIcon &_engineIcon); - void setSubData(const QIcon &_stateIcon, QString _name); + void setSubData(const QIcon &stateIcon, QString name, const QIcon &langIcon, const QIcon &engineIcon); + void setSubData(const QIcon &stateIcon, QString name); + void setSubData(QString name, QString ext, const QIcon &langIcon, const QIcon &engineIcon); + void clearAll(); ~subDataWidget(); private: diff --git a/ui/frmlistsubtitles.ui b/ui/frmlistsubtitles.ui index a031d59..7e71b30 100644 --- a/ui/frmlistsubtitles.ui +++ b/ui/frmlistsubtitles.ui @@ -40,41 +40,13 @@ - Z poniższej listy wybierz napisy, które chcesz dopasować do pliku <b>film.avi</b>: + <html><head/><body><p>Z poniższej listy wybierz napisy, które chcesz dopasować do pliku</p><p><span style=" font-weight:600;">film.avi</span></p></body></html> true - - - - QAbstractItemView::NoEditTriggers - - - false - - - true - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - false - - - @@ -106,6 +78,31 @@ + + + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + @@ -151,12 +148,12 @@ click() - 166 - 109 + 286 + 146 - 480 - 320 + 525 + 321 diff --git a/ui/subDataWidget.ui b/ui/subDataWidget.ui index aa55539..48d3e4e 100644 --- a/ui/subDataWidget.ui +++ b/ui/subDataWidget.ui @@ -37,12 +37,6 @@ - - - 16 - 16 - - []