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;
}
|