summaryrefslogtreecommitdiffstats
path: root/covereditor.cpp
blob: 13bd46109f59bf3c1cc3201af634a7935d1c2307 (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
  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 <QStringList>
#include <QLabel>
#include <QGridLayout>

#include "covereditor.h"

CoverEditor::CoverEditor(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f){
	QGridLayout *mainLayout = new QGridLayout;
	QLabel *l1 = new QLabel(tr("Front cover"));
	mFrontCover = new QComboBox;
	mainLayout->addWidget(l1, 0, 0);
	mainLayout->addWidget(mFrontCover, 0, 1);
	QLabel *l2 = new QLabel(tr("Back cover"));
	mBackCover = new QComboBox;
	mainLayout->addWidget(l2, 1, 0);
	mainLayout->addWidget(mBackCover, 1, 1);
	QLabel *l3 = new QLabel(tr("General cover"));
	mCovers = new QComboBox;
	mainLayout->addWidget(l3, 2, 0);
	mainLayout->addWidget(mCovers, 2, 1);
	setLayout(mainLayout);
}

void CoverEditor::setCovers(const QStringList &covers){
	mCoverPaths = covers;
	QStringList coverNames("-");
	QString front, back;
	int idx(-1);
	foreach(QString c, mCoverPaths){
		if((idx = c.lastIndexOf('/')) != -1){
			c.remove(0, idx);
		}
		if(c.toLower().contains("front")){
			front = c;
		}
		if(c.toLower().contains("back")){
			back = c;
		}
		coverNames << c;
	}
	mFrontCover->clear();
	mFrontCover->addItems(coverNames);
	mBackCover->clear();
	mBackCover->addItems(coverNames);
	mCovers->clear();
	mCovers->addItems(coverNames);
	if(!front.isEmpty()){
		int idx = mFrontCover->findText(front);
		if(idx != -1){
			mFrontCover->setCurrentIndex(idx);
		}
	}
	if(!back.isEmpty()){
		int idx = mBackCover->findText(back);
		if(idx != -1){
			mBackCover->setCurrentIndex(idx);
		}
	}
}

const QString CoverEditor::frontCover() const{
	QString sel = mFrontCover->currentText();
	if(sel.isEmpty() || (sel == "-")){
		return QString();
	}
	return findPath(sel);	
}

const QString CoverEditor::backCover() const{
	QString sel = mBackCover->currentText();
	if(sel.isEmpty() || (sel == "-")){
		return QString();
	}
	return findPath(sel);
}

const QString CoverEditor::covers() const{
	QString sel = mCovers->currentText();
	if(sel.isEmpty() || (sel == "-")){
		return QString();
	}
	return findPath(sel);

}

const QString CoverEditor::findPath(const QString &name) const{
	QString retval;
	foreach(QString s, mCoverPaths){
		if(s.endsWith(name)){
			retval = s;
			break;
		}
	}
	return retval;
}