diff options
Diffstat (limited to 'archivetreeview.cpp')
-rw-r--r-- | archivetreeview.cpp | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp index 4bcf584..2ccc043 100644 --- a/archivetreeview.cpp +++ b/archivetreeview.cpp @@ -83,9 +83,6 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent), mShowAllFil verticalSplitter->setStretchFactor(1, 1); // misc - mNoCoverDialog = new NoCoverMovieDialog(this); - mNoCoverDialog->setHidden(true); - connect(mNoCoverDialog->view(), SIGNAL(doubleClicked(QModelIndex)), this, SLOT(selectMovie(QModelIndex))); mFilesWidget->filesTree()->setAlternatingRowColors(true); mSeriesWidget->seriesTree()->setAlternatingRowColors(true); @@ -174,10 +171,6 @@ void ArchiveTreeView::cleanDatabase(const QString &table){ } } -void ArchiveTreeView::showNoCoverDialog(){ - mNoCoverDialog->show(); -} - void ArchiveTreeView::selectMoviePart(int seriespartId, int seriesId){ QModelIndex seriesIdx = mSeriesModel->findValue(seriesId, QModelIndex(), SeriesTreeModel::SeriesId); QModelIndex partIdx = mSeriesModel->findValue(seriespartId, seriesIdx, SeriesTreeModel::SeriesPartId); @@ -189,24 +182,6 @@ void ArchiveTreeView::selectMoviePart(int seriespartId, int seriesId){ } } -void ArchiveTreeView::selectMovie(const QModelIndex &idx){ - if(!idx.isValid()){ - return; - } - QVariant movieName = idx.data(NoCoverMovieModel::SeriesNameRole); - QVariant part = idx.data(NoCoverMovieModel::SeriesPartRole); - QModelIndex movieIdx = mSeriesModel->findValue(movieName, QModelIndex(), SeriesTreeModel::Name); - if(!movieIdx.isValid()){ - return; - } - QModelIndex partIdx = mSeriesModel->findValue(part, movieIdx, SeriesTreeModel::SeriesPart, 0); - QModelIndex toSelect = partIdx.isValid() ? mSeriesWidget->seriesProxy()->mapFromSource(partIdx) : mSeriesWidget->seriesProxy()->mapFromSource(movieIdx); - mSeriesWidget->seriesTree()->expand(mSeriesWidget->seriesProxy()->mapFromSource(movieIdx)); - mSeriesWidget->seriesTree()->selectionModel()->select(toSelect, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); - mSeriesWidget->seriesTree()->scrollTo(toSelect, QAbstractItemView::PositionAtCenter); - mNoCoverDialog->hide(); -} - void ArchiveTreeView::copyPath(int type){ QModelIndexList selected = mFilesWidget->filesTree()->selectionModel()->selectedRows(); if(selected.isEmpty()){ @@ -363,156 +338,3 @@ const QString ArchiveTreeView::createWindowsPath(const QString &path) const{ retval = QString("%1\\%2").arg(s.value("paths/windowsdrive").toString()).arg(retval); return retval; } - -//NoCoverMovieModel - -NoCoverMovieModel::NoCoverMovieModel(const QStringList &headers, QObject *parent) : SmTreeModel(headers, parent){ - mDb = QSqlDatabase::database("treedb"); - mDataQuery = new QSqlQuery(mDb); - mDataQuery->prepare("SELECT files.iseriespart_id, series.tseries_name, seriesparts.iseriespart FROM files, series, seriesparts WHERE files.iseriespart_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id GROUP BY files.iseriespart_id,series.tseries_name,seriesparts.iseriespart HAVING COUNT(iseriespart_id) = 1 ORDER BY series.tseries_name"); - refresh(); -} - -NoCoverMovieModel::~NoCoverMovieModel(){ - delete mDataQuery; - mDb = QSqlDatabase(); -} - -QVariant NoCoverMovieModel::data(const QModelIndex &index, int role) const{ - if(!index.isValid()){ - return QVariant(); - } - SmTreeItem *item = itemAt(index); - if(role == SeriesNameRole){ - return item->data(SeriesName); - } - if(role == SeriesPartRole){ - return item->data(SeriesPart); - } - if(role == SeriesIdRole){ - return item->data(SeriesId); - } - return SmTreeModel::data(index, role); -} void populate(); - - -void NoCoverMovieModel::refresh(){ - SmTreeItem *rootItem = new SmTreeItem(4); - mDataQuery->exec(); - while(mDataQuery->next()){ - QString displayName = QString("%1 %2").arg(mDataQuery->value(1).toString()).arg(QString::number(mDataQuery->value(2).toInt())); - QList<QVariant> data; - data << displayName << mDataQuery->value(1) << mDataQuery->value(2) << mDataQuery->value(0); - SmTreeItem *child = new SmTreeItem(data, rootItem); - rootItem->appendChild(child); - } - setRoot(rootItem); - emit refreshed(); -} - -Qt::ItemFlags NoCoverMovieModel::flags(const QModelIndex &index) const{ - if(!index.isValid()){ - return 0; - } - return Qt::ItemIsSelectable | Qt::ItemIsEnabled; -} - -//NoCoverMovieView - -NoCoverMovieView::NoCoverMovieView(QWidget *parent) : QTreeView(parent) {} - -void NoCoverMovieView::contextMenuEvent(QContextMenuEvent *e){ - QMenu ctxMenu; - foreach(QAction *a, actions()){ - ctxMenu.addAction(a); - } - ctxMenu.exec(e->globalPos()); -} - -//NoCoverMovieDialog - -NoCoverMovieDialog::NoCoverMovieDialog(QWidget *parent, Qt::WindowFlags flags) : SmDialog(parent, flags){ - //model + view - mView = new NoCoverMovieView; - QStringList headers = QStringList() << "Movie" << "Name" << "Part" << "Id"; - mModel = new NoCoverMovieModel(headers, this); - mView->setModel(mModel); - connect(mModel, SIGNAL(refreshed()), this, SLOT(updateLabel())); - mView->setColumnHidden(1, true); - mView->setColumnHidden(2, true); - mView->setColumnHidden(3, true); - mView->resizeColumnToContents(0); - - //actions - mBrowserA = new QAction(tr("Search with google..."), this); - connect(mBrowserA, SIGNAL(triggered()), this, SLOT(openInBrowser())); - mView->addAction(mBrowserA); - mCopyA = new QAction(tr("Copy name"), this); - connect(mCopyA, SIGNAL(triggered()), this, SLOT(copyToClipboard())); - mView->addAction(mCopyA); - - //buttons - QHBoxLayout *buttonLayout = new QHBoxLayout; - mClose = new QPushButton(tr("Close")); - connect(mClose, SIGNAL(clicked()), this, SLOT(hide())); - mRefresh = new QPushButton(tr("Refresh")); - connect(mRefresh, SIGNAL(clicked()), mModel, SLOT(refresh())); - buttonLayout->addWidget(mRefresh); - buttonLayout->addStretch(); - buttonLayout->addWidget(mClose); - - //label - mMovieLabel = new QLabel(labelText()); - - //main - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(mMovieLabel); - mainLayout->addWidget(mView); - mainLayout->addLayout(buttonLayout); - setLayout(mainLayout); -} - -void NoCoverMovieDialog::openInBrowser(){ - QString selText = selectedText(); - if(selText.isEmpty()){ - return; - } - selText.append(" covers"); - QByteArray searchString = QUrl::toPercentEncoding(selText); - QString url = QString("http://www.google.com/search?hl=en&q=%1").arg(QString(searchString)); - QStringList args = QStringList() << "openURL" << url; - bool success = QProcess::startDetached("kfmclient", args); - if(!success){ - QMessageBox::critical(this, tr("Error"), tr("Launching browser failed. Most likely kfmclient is not installed")); - } -} - -void NoCoverMovieDialog::copyToClipboard(){ - QString selText = selectedText(); - if(selText.isEmpty()){ - return; - } - QClipboard *clip = QApplication::clipboard(); - clip->setText(selText); -} - -void NoCoverMovieDialog::updateLabel(){ - mMovieLabel->setText(labelText()); -} - -const QString NoCoverMovieDialog::selectedText() const{ - QModelIndexList selected = mView->selectionModel()->selectedRows(); - if(selected.isEmpty()){ - return QString(); - } - QModelIndex real = mModel->index(selected.at(0).row(), 0, selected.at(0).parent()); - if(!real.isValid()){ - return QString(); - } - return real.data().toString(); -} - -const QString NoCoverMovieDialog::labelText() const{ - QString retval = QString(tr("Movies without covers (%1)")).arg(QString::number(mModel->rowCount(QModelIndex()))); - return retval; -} |