/* 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 #include #include #include #include #include #include #include "covereditor.h" CoverEditor::CoverEditor(Mode mode, QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f), mMode(mode){ 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); QLabel *l4 = new QLabel(tr("Movie file")); mMovie = new QComboBox; mainLayout->addWidget(l4, 3, 0); mainLayout->addWidget(mMovie, 3, 1); mAddFile = new QPushButton(tr("Add cover")); if(mode == Archive){ mAddFile->setVisible(false); }else{ l4->setVisible(false); mMovie->setVisible(false); } connect(mAddFile, SIGNAL(clicked()), this, SLOT(addFile())); mainLayout->addWidget(mAddFile, 4, 1); setLayout(mainLayout); } void CoverEditor::setCovers(const QStringList &covers){ mCoverPaths = covers; QStringList coverNames("-"); QString front, back, movie; int idx(-1); foreach(QString c, mCoverPaths){ if((idx = c.lastIndexOf('/')) != -1){ c.remove(0, idx + 1); } if(c.toLower().contains("front")){ front = c; } if(c.toLower().contains("back")){ back = c; } if(c.toLower().endsWith(".avi")){ movie = c; } coverNames << c; } mFrontCover->clear(); mFrontCover->addItems(coverNames); mBackCover->clear(); mBackCover->addItems(coverNames); mCovers->clear(); mCovers->addItems(coverNames); mMovie->clear(); mMovie->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); } } if(!movie.isEmpty()){ int idx = mMovie->findText(movie); if(idx != -1){ mMovie->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::movie() const{ QString sel = mMovie->currentText(); if(sel.isEmpty() || (sel == "-")){ return QString(); } return findPath(sel); } void CoverEditor::addFile(){ QSettings s; QString startDir = s.value("ui/selectstartup").toString(); QStringList files = QFileDialog::getOpenFileNames(this, "Select covers to add to list", startDir); foreach(QString f, files){ if(!mCoverPaths.contains(f)){ files << f; int idx(-1); if((idx = f.lastIndexOf('/')) != -1){ f.remove(0, idx + 1); mFrontCover->addItem(f); mBackCover->addItem(f); mCovers->addItem(f); } } } } const QString CoverEditor::findPath(const QString &name) const{ QString retval; foreach(QString s, mCoverPaths){ if(s.endsWith(name)){ retval = s; break; } } return retval; }