Skip to content

Commit

Permalink
refactor; reuse QNapiSubtitleInfo ordering in opensubtitle engine
Browse files Browse the repository at this point in the history
  • Loading branch information
krzemin committed Feb 7, 2016
1 parent b6fe7e1 commit fbe374c
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 28 deletions.
3 changes: 2 additions & 1 deletion qnapi.pro
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ SOURCES += src/main.cpp \
src/subconvert/subtitleformat.cpp \
src/libmediainfomovieinfoparser.cpp \
src/qsubpostprocess.cpp \
src/forms/subdatawidget.cpp
src/forms/subdatawidget.cpp \
src/qnapisubtitleinfo.cpp


HEADERS += src/engines/qnapiabstractengine.h \
Expand Down
20 changes: 3 additions & 17 deletions src/engines/qopensubtitlesengine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#include <QDir>
#include <QMessageBox>

#include <QDebug>

// konstruktor klasy
QOpenSubtitlesEngine::QOpenSubtitlesEngine()
: rpc(QUrl(openSubtitlesXmlRpcUrl))
Expand Down Expand Up @@ -195,23 +197,7 @@ bool QOpenSubtitlesEngine::lookForSubtitles(QString lang)
// wyniki wyszukiwania
QList<QNapiSubtitleInfo> QOpenSubtitlesEngine::listSubtitles()
{
QList<QNapiSubtitleInfo> good, unknown, bad;

foreach(QNapiSubtitleInfo n, subtitlesList)
{
switch(n.resolution)
{
case SUBTITLE_GOOD: good << n; break;
case SUBTITLE_UNKNOWN: unknown << n; break;
case SUBTITLE_BAD: bad << n; break;
case SUBTITLE_NONE:break;
}
}

subtitlesList.clear();

subtitlesList << good << unknown << bad;

std::sort(subtitlesList.begin(), subtitlesList.end());
return subtitlesList;
}

Expand Down
2 changes: 1 addition & 1 deletion src/forms/frmsummary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ frmSummary::frmSummary(QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f)
move(position.topLeft());
}

void frmSummary::setSummaryList(QList<QNapiSubtitleInfo> &list)
void frmSummary::setSummaryList(QList<QNapiSubtitleInfo> list)
{
std::sort(list.begin(), list.end());

Expand Down
4 changes: 2 additions & 2 deletions src/forms/frmsummary.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ class frmSummary: public QDialog
Q_OBJECT
public:
frmSummary(QWidget *parent = 0, Qt::WindowFlags f = 0);
~frmSummary() {};
~frmSummary() {}

void setSummaryList(QList<QNapiSubtitleInfo> &list);
void setSummaryList(QList<QNapiSubtitleInfo> list);

private:
Ui::frmSummary ui;
Expand Down
16 changes: 16 additions & 0 deletions src/qnapisubtitleinfo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#include "qnapisubtitleinfo.h"
#include <algorithm>
#include <vector>

bool QNapiSubtitleInfo::operator<(const QNapiSubtitleInfo& other) const
{
std::vector<QString> v1 = { QString::number(other.resolution), name };
std::vector<QString> v2 = { QString::number(resolution), other.name };

return std::lexicographical_compare(v1.begin(), v1.end(), v2.begin(), v2.end());
}

QNapiSubtitleInfo QNapiSubtitleInfo::fromFailed(QString name)
{
return QNapiSubtitleInfo("", "", "", name, "" ,"", SUBTITLE_NONE);
}
12 changes: 5 additions & 7 deletions src/qnapisubtitleinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#define __QNAPISUBTITLEINFO__H__

#include <QUuid>
#include <QMetaType>

// Orientacyjne okreslenie czy napisy na pewno pasuja lub nie do naszego filmu
enum QNapiSubtitleResolution
Expand All @@ -32,8 +33,9 @@ enum QNapiSubtitleResolution
};

// struktura opisujaca napisy
struct QNapiSubtitleInfo
class QNapiSubtitleInfo
{
public:
QNapiSubtitleInfo(QString _lang = "",
QString _engine = "",
QString _sourceLocation = "",
Expand All @@ -59,13 +61,9 @@ struct QNapiSubtitleInfo
QNapiSubtitleResolution resolution;
QUuid id;

bool operator<(const QNapiSubtitleInfo& other) const {
return resolution > other.resolution;
}
bool operator<(const QNapiSubtitleInfo& other) const;

static QNapiSubtitleInfo fromFailed(QString name) {
return QNapiSubtitleInfo("", "", "",name, "" ,"", SUBTITLE_NONE);
}
static QNapiSubtitleInfo fromFailed(QString name);
};

Q_DECLARE_METATYPE(QNapiSubtitleInfo);
Expand Down

0 comments on commit fbe374c

Please sign in to comment.