diff options
Diffstat (limited to 'covereditor.cpp')
-rw-r--r-- | covereditor.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/covereditor.cpp b/covereditor.cpp new file mode 100644 index 0000000..13bd461 --- /dev/null +++ b/covereditor.cpp @@ -0,0 +1,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; +} + |