From 646944d06ba2c7a420e94ea1591e24dc5d7edcd5 Mon Sep 17 00:00:00 2001 From: Tobias Rundstrom Date: Thu, 17 Aug 2006 17:06:34 -0400 Subject: [PATCH] Remove old medialib browser --- FileDialog.cpp | 1 - MediaAlbumList.cpp | 105 ------------------- MediaAlbumList.h | 24 ----- MediaArtistList.cpp | 102 ------------------ MediaArtistList.h | 24 ----- MediaSongList.cpp | 100 ------------------ MediaSongList.h | 23 ---- Medialib.cpp | 250 -------------------------------------------- Medialib.h | 141 ------------------------- 9 files changed, 770 deletions(-) delete mode 100644 MediaAlbumList.cpp delete mode 100644 MediaAlbumList.h delete mode 100644 MediaArtistList.cpp delete mode 100644 MediaArtistList.h delete mode 100644 MediaSongList.cpp delete mode 100644 MediaSongList.h delete mode 100644 Medialib.cpp delete mode 100644 Medialib.h diff --git a/FileDialog.cpp b/FileDialog.cpp index 3eede49..6bba5a0 100644 --- a/FileDialog.cpp +++ b/FileDialog.cpp @@ -36,4 +36,3 @@ FileDialog::getDirectory () return ret; } - diff --git a/MediaAlbumList.cpp b/MediaAlbumList.cpp deleted file mode 100644 index 69f2bb3..0000000 --- a/MediaAlbumList.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include "XMMSHandler.h" - -#include "MediaAlbumList.h" - -#include "qtmd5.h" - -#include - - -MediaAlbumList::MediaAlbumList (QWidget *parent, const QString &name) : - MedialibList (parent, name) -{ - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - connect (xmmsh, SIGNAL (medialibResponse (uint, QList >)), - this, SLOT (queryCallback (uint, QList >))); - - refresh (); -} - -void -MediaAlbumList::refresh (void) -{ - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - m_cid = xmmsh->medialibQuery ("select distinct ifnull(nullif(ifnull(nullif(ifnull(m3.value,0),1),'Various Artists'),0),m1.value) as artist, ifnull(m2.value,'[unknown]') as album, m4.value as art from Media m1 left join Media m2 on m1.id = m2.id and m2.key='album' left join Media m3 on m1.id = m3.id and m3.key='compilation' left join Media m4 on m4.id = m1.id and m4.key='album_front_small' where m1.key='artist' order by artist, album"); -} - - -QStringList -MediaAlbumList::mimeTypes () const -{ - QStringList types; - types << "application/mlib.album"; - return types; -} - -QMimeData * -MediaAlbumList::mimeData(const QList items) const -{ - QMimeData *mimeData = new QMimeData(); - QByteArray encodedData; - - MedialibListItem *it = dynamic_cast (currentItem ()); - - QDataStream stream(&encodedData, QIODevice::WriteOnly); - stream << it->getArtist (); - stream << it->getAlbum (); - - mimeData->setData("application/mlib.album", encodedData); - return mimeData; -} - - -void -MediaAlbumList::queryCallback (uint id, QList >l) -{ - if (m_cid != id) - return; - - clear (); - - qDebug ("in query callback album"); - - for (int i = 0; i < l.count (); i++) { - QHash h(l.value (i)); - - MedialibListItem *item = new MedialibListItem (h.value("artist"), h.value("album"), this); - item->setFont (m_font); - item->setTextAlignment (Qt::AlignVCenter); - - if (m_noicon) { - continue; - } - - item->setIcon (QIcon (":noalbum.png")); - item->setSizeHint (iconSize () + QSize (2, 2)); - - if (h.contains ("art")) { - - QString name = qtMD5 ((h.value("artist").toLower()+"-"+h.value("album").toLower()).toUtf8()); - QString fname (QDir::homePath () +"/.xmms2/clients/generic/art/"+name+"-small.jpg"); - - if (!QFile::exists (fname)) { - QUrl url (h.value("art")); - - QFile *file = new QFile ("/tmp/"+name+"-small.jpg"); - file->open(QIODevice::WriteOnly); - - item->setFile (file); - m_win->addRequest (url, item); - - } else { - QIcon ico (fname); - item->setIcon (ico); - } - - } - - - } - - -} - diff --git a/MediaAlbumList.h b/MediaAlbumList.h deleted file mode 100644 index ed8b870..0000000 --- a/MediaAlbumList.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __MEDIAALBUMLIST_H__ -#define __MEDIAALBUMLIST_H__ - -class MediaAlbumList; - -#include "Medialib.h" - -class MediaAlbumList : public MedialibList -{ - Q_OBJECT - public: - MediaAlbumList (QWidget *parent, const QString &name); - ~MediaAlbumList () {} - QStringList mimeTypes (void) const; - - void refresh (void); - - public slots: - void queryCallback (uint, QList >); - QMimeData *mimeData(const QList items) const; - -}; - -#endif diff --git a/MediaArtistList.cpp b/MediaArtistList.cpp deleted file mode 100644 index 5cd35a6..0000000 --- a/MediaArtistList.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "XMMSHandler.h" - -#include "MediaArtistList.h" - -#include "qtmd5.h" - -#include - -MediaArtistList::MediaArtistList (QWidget *parent, const QString &name) : - MedialibList (parent, name) -{ - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - connect (xmmsh, SIGNAL (medialibResponse (uint, QList >)), - this, SLOT (queryCallback (uint, QList >))); - - refresh (); -} - -void -MediaArtistList::refresh (void) -{ - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - m_cid = xmmsh->medialibQuery ("select distinct ifnull(nullif(ifnull(nullif(ifnull(m2.value,0),1),'Various Artists'),0),m1.value) as artist, m3.value as art from Media m1 left join Media m2 on m1.id = m2.id and m2.key='compilation' left join Media m3 on m3.id = m1.id and m3.key='artist_art_small' where m1.key='artist' order by artist"); -} - -QStringList -MediaArtistList::mimeTypes () const -{ - QStringList types; - types << "application/mlib.artist"; - return types; -} - -QMimeData * -MediaArtistList::mimeData(const QList items) const -{ - QMimeData *mimeData = new QMimeData(); - QByteArray encodedData; - - MedialibListItem *it = dynamic_cast (currentItem ()); - - QDataStream stream(&encodedData, QIODevice::WriteOnly); - stream << it->getArtist (); - - mimeData->setData("application/mlib.artist", encodedData); - return mimeData; -} - - -void -MediaArtistList::queryCallback (uint id, QList >l) -{ - if (m_cid != id) - return; - - clear (); - - qDebug ("in query callback artist"); - - for (int i = 0; i < l.count (); i++) { - QHash h(l.value (i)); - - MedialibListItem *item = new MedialibListItem (h.value("artist"), this); - item->setFont (m_font); - item->setTextAlignment (Qt::AlignVCenter); - - if (m_noicon) { - continue; - } - - item->setIcon (QIcon (":noartist.png")); - item->setSizeHint (iconSize () + QSize (5, 5)); - - if (h.contains ("art")) { - - QString name = qtMD5 ((h.value("artist").toLower()).toUtf8()); - QString fname (QDir::homePath () +"/.xmms2/clients/generic/art/"+name+"-small.jpg"); - - if (!QFile::exists (fname)) { - QUrl url (h.value("art")); - - QFile *file = new QFile ("/tmp/"+name+"-small.jpg"); - file->open(QIODevice::WriteOnly); - - item->setFile (file); - m_win->addRequest (url, item); - - } else { - QIcon ico (fname); - item->setIcon (ico); - } - - } - - - } - - -} - diff --git a/MediaArtistList.h b/MediaArtistList.h deleted file mode 100644 index 30b9e9a..0000000 --- a/MediaArtistList.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __MEDIAARTISTLIST_H__ -#define __MEDIAARTISTLIST_H__ - -class MediaArtistList; - -#include "Medialib.h" - -class MediaArtistList : public MedialibList -{ - Q_OBJECT - - public: - MediaArtistList (QWidget *parent, const QString &name); - ~MediaArtistList () {} - QStringList mimeTypes (void) const; - void refresh (void); - - public slots: - void queryCallback (uint, QList >); - QMimeData *mimeData(const QList items) const; - -}; - -#endif diff --git a/MediaSongList.cpp b/MediaSongList.cpp deleted file mode 100644 index 4c35221..0000000 --- a/MediaSongList.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include "XMMSHandler.h" - -#include "MediaSongList.h" - -#include "qtmd5.h" - -#include - -MediaSongList::MediaSongList (QWidget *parent, const QString &name) : - MedialibList (parent, name) -{ - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - connect (xmmsh, SIGNAL (medialibResponse (uint, QList >)), - this, SLOT (queryCallback (uint, QList >))); - - refresh (); -} - -void -MediaSongList::refresh (void) -{ - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - m_cid = xmmsh->medialibQuery ("select distinct ifnull(m1.value,'[unknown]') as artist, ifnull(m2.value,'[unknown]') as album, ifnull(m5.value,m6.value) as song, ifnull(m7.value,-1) as tracknr, m4.value as art from Media m1 left join Media m2 on m1.id = m2.id and m2.key='album' left join Media m4 on m4.id = m1.id and m4.key='album_front_small' left join Media m5 on m1.id = m5.id and m5.key='title' left join Media m6 on m1.id = m6.id and m6.key='url' left join Media m7 on m1.id = m7.id and m7.key='tracknr' where m1.key='artist' order by artist, album, tracknr, song"); - -} - -QStringList -MediaSongList::mimeTypes () const -{ - QStringList types; - types << "application/mlib.song"; - return types; -} - -QMimeData * -MediaSongList::mimeData(const QList items) const -{ - QMimeData *mimeData = new QMimeData(); - QByteArray encodedData; - - MedialibListItem *it = dynamic_cast (currentItem ()); - - QDataStream stream(&encodedData, QIODevice::WriteOnly); - stream << it->getArtist (); - stream << it->getAlbum (); - stream << it->getSong (); - - mimeData->setData("application/mlib.song", encodedData); - return mimeData; -} - - -void -MediaSongList::queryCallback (uint id, QList >l) -{ - if (m_cid != id) - return; - - qDebug ("in query callback song"); - - clear (); - - m_win->setBusy (false); - m_win->setStatusText ("idle"); - - for (int i = 0; i < l.count (); i++) { - QHash h(l.value (i)); - - MedialibListItem *item = new MedialibListItem (h.value("artist"), - h.value("album"), - h.value("song"), - this); - item->setFont (m_font); - item->setTextAlignment (Qt::AlignVCenter); - - if (m_noicon) { - continue; - } - - item->setIcon (QIcon (":nosong.png")); - item->setSizeHint (iconSize () + QSize (2, 2)); - - if (h.contains ("art")) { - - QString name = qtMD5 ((h.value("artist").toLower()+"-"+h.value("album").toLower()).toUtf8()); - QString fname (QDir::homePath () +"/.xmms2/clients/generic/art/"+name+"-small.jpg"); - - if (QFile::exists (fname)) { - QIcon ico (fname); - item->setIcon (ico); - } - - } - - - } -} - diff --git a/MediaSongList.h b/MediaSongList.h deleted file mode 100644 index 5ca5f33..0000000 --- a/MediaSongList.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __MEDIASONGLIST_H__ -#define __MEDIASONGLIST_H__ - -class MediaSongList; - -#include "Medialib.h" - -class MediaSongList : public MedialibList -{ - Q_OBJECT - public: - MediaSongList (QWidget *parent, const QString &name); - ~MediaSongList () {} - QStringList mimeTypes (void) const; - void refresh (void); - - public slots: - void queryCallback (uint, QList >); - QMimeData *mimeData(const QList items) const; - -}; - -#endif diff --git a/Medialib.cpp b/Medialib.cpp deleted file mode 100644 index 69c51b1..0000000 --- a/Medialib.cpp +++ /dev/null @@ -1,250 +0,0 @@ -#include "XMMSHandler.h" -#include "Medialib.h" - -#include -#include -#include -#include -#include -#include "qtmd5.h" - -#include "MediaArtistList.h" -#include "MediaAlbumList.h" -#include "MediaSongList.h" - -MedialibWindow::MedialibWindow (QWidget *parent) : QMainWindow (parent) -{ -#ifndef _WIN32 - setWindowIcon (QIcon (":icon.png")); -#endif - setWindowTitle ("Promoe - Medialib Window"); - setWindowFlags (Qt::Dialog); - setAttribute (Qt::WA_DeleteOnClose); - - XMMSHandler *xmmsh = XMMSHandler::getInstance (); - - QSettings s; - s.beginGroup ("medialib"); - - if (!s.contains ("selected")) { - s.setValue ("selected", tr ("Artists")); - } - - resize (500, 550); - - m_dummy = new QWidget (this); - setCentralWidget (m_dummy); - - m_vbox = new QVBoxLayout (m_dummy); - m_search = new QLineEdit (m_dummy); - m_search->setFocusPolicy (Qt::StrongFocus); - m_vbox->addWidget (m_search); - - m_tab = new QTabWidget (m_dummy); - m_vbox->addWidget (m_tab); - - m_progress = new QProgressBar (statusBar ()); - statusBar ()->addPermanentWidget (m_progress, 1); - m_progress->setSizePolicy (QSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed)); - - m_status = new QLabel (tr ("Idle"), statusBar ()); - m_status->setFrameStyle (QFrame::NoFrame); - statusBar ()->addPermanentWidget (m_status, 2); - - - /*** Init views ***/ - QDir dir (QDir::homePath ()+"/.xmms2/clients/generic/art/"); - if (!dir.exists()) { - dir.mkpath (dir.path ()); - } - m_http = new QHttp (this); - connect (m_http, SIGNAL (requestFinished (int, bool)), this, - SLOT (httpDone (int, bool))); - connect (m_http, SIGNAL (requestStarted (int)), this, - SLOT (httpStarted (int))); - - /*** artist ***/ - m_artist = new MediaArtistList (this, "artist"); - m_tab->addTab (m_artist, tr ("Artists")); - connect (m_search, SIGNAL (textEdited (QString)), - m_artist, SLOT (search (QString))); - - /*** album ***/ - m_album = new MediaAlbumList (this, "album"); - m_tab->addTab (m_album, tr ("Albums")); - connect (m_search, SIGNAL (textEdited (QString)), - m_album, SLOT (search (QString))); - - /*** song ***/ - m_song = new MediaSongList (this, "song"); - m_tab->addTab (m_song, tr ("Songs")); - connect (m_search, SIGNAL (textEdited (QString)), - m_song, SLOT (search (QString))); - - - /*** set active view from config ***/ - for (int i = 0; i < m_tab->count() ; i++) { - if (s.value("selected").toString () == m_tab->tabText (i)) { - m_tab->setCurrentIndex (i); - break; - } - } - - s.endGroup (); - - setBusy (true); - setStatusText ("Loading medialib"); - - connect (xmmsh, SIGNAL (settingsSaved ()), this, SLOT (settingsSaved ())); -} - -void -MedialibWindow::settingsSaved () -{ - m_artist->setSizes(); - m_album->setSizes(); - m_song->setSizes(); - - setBusy (true); - setStatusText ("Refreshing medialib"); - - m_artist->refresh(); - m_album->refresh(); - m_song->refresh(); - - update (); -} - -void -MedialibWindow::addRequest (QUrl url, MedialibListItem *item) -{ - m_http->setHost (url.host (), url.port () != -1 ? url.port () : 80); - - if (!url.userName().isEmpty()) { - m_http->setUser (url.userName(), url.password()); - } - - int id = m_http->get (url.path (), item->getFile ()); - m_httpmap.insert (id, item); - -} - -void -MedialibWindow::httpStarted (int id) -{ - MedialibListItem *it = m_httpmap[id]; - - if (it) { - setStatusText ("Downloading art: " + it->text ()); - } -} - -void -MedialibWindow::httpDone (int id, bool error) -{ - MedialibListItem *it = m_httpmap[id]; - - if (error) { - if (it) { - setStatusText ("Error when downloading " + it->text ()); - } else { - setStatusText ("Generic error in HTTP"); - } - qDebug (qPrintable (m_http->errorString ())); - return; - } - - if (it) { - QFile *f = it->getFile (); - f->close (); - - QString newname (QDir::homePath()+"/.xmms2/clients/generic/art/"+(f->fileName ().section("/", -1))); - f->rename (newname); - f->setFileName (newname); - - QIcon ico (f->fileName ()); - if (!ico.isNull()) { - it->setIcon (ico); - } else { - f->remove (); - } - - delete f; - m_httpmap.remove (id); - if (m_httpmap.count () == 0) { - setBusy (false); - setStatusText ("idle"); - } else { - setBusy (m_httpmap.count ()); - setStatusText ("Got art for: " + it->text()); - } - } - - update (); - -} - - - -MedialibList::MedialibList (QWidget *parent, const QString &name) : QListWidget () -{ - m_win = dynamic_cast (parent); - - setDragEnabled (true); - - m_name = name; - setSizes (); -} - -void -MedialibList::setSizes (void) -{ - QSettings s; - - s.beginGroup ("medialib_"+m_name); - - if (!s.contains ("size")) { - s.setValue ("size", tr ("Large")); - } - - QString size = s.value("size").toString (); - - m_noicon = false; - - if (size == tr ("Small")) { - setIconSize (QSize (42, 42)); - m_font.setPixelSize (10); - } else if (size == tr ("Large")) { - setIconSize (QSize (85, 85)); - m_font.setPixelSize (14); - } else if (size == tr ("None")) { - setIconSize (QSize (10, 10)); - m_noicon = true; - m_font.setPixelSize (10); - } - -} - -void -MedialibList::search (const QString &s) -{ - if (s.length () > 0) { - for (int i = 0; i < count (); i++) { - MedialibListItem *it = dynamic_cast (item (i)); - if (!it->text().contains (s, Qt::CaseInsensitive)) { - setItemHidden (it, true); - } else if (isItemHidden (it)) { - setItemHidden (it, false); - } - } - - } else { - for (int i = 0; i < count (); i++) { - MedialibListItem *it = dynamic_cast (item (i)); - setItemHidden (it, false); - } - } - -} - - diff --git a/Medialib.h b/Medialib.h deleted file mode 100644 index 293ba08..0000000 --- a/Medialib.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef __MEDIALIB_H__ -#define __MEDIALIB_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class MedialibWindow; - -class MedialibListItem : public QListWidgetItem -{ - public: - MedialibListItem (const QString &artist, const QString &album, - const QString &song, QListWidget *parent) : - QListWidgetItem (artist + " - " + song, parent) { - m_artist = artist; - m_album = album; - m_song = song; - } - MedialibListItem (const QString &artist, const QString &album, - QListWidget *parent) : - QListWidgetItem (artist + " - " + album, parent) { - m_artist = artist; - m_album = album; - } - MedialibListItem (const QString &artist, QListWidget *parent) : - QListWidgetItem (artist, parent) { - m_artist = artist; - } - - ~MedialibListItem () {} - void setFile (QFile *f) { m_file = f; } - QFile *getFile (void) { return m_file; } - - QString getArtist (void) { return m_artist; } - QString getAlbum (void) { return m_album; } - QString getSong (void) { return m_song; } - - private: - QFile *m_file; - QString m_artist; - QString m_album; - QString m_song; -}; - -class MedialibList : public QListWidget -{ - Q_OBJECT - public: - MedialibList (QWidget *parent, const QString &name); - ~MedialibList () {} - void setSizes (void); - void refresh (void) {} - /* - QStringList mimeTypes (void) const {}; - */ - - public slots: - - /* - void queryCallback (uint, QList >) {}; - QMimeData *mimeData(const QList items) const {}; - */ - - void search (const QString &); - - protected: - uint m_cid; - QFont m_font; - MedialibWindow *m_win; - bool m_noicon; - - private: - QString m_name; - -}; - -class MedialibWindow : public QMainWindow -{ - Q_OBJECT - public: - MedialibWindow (QWidget *parent); - ~MedialibWindow () {} - - void setBusy (bool b) { - if (b) { - m_progress->setMaximum (0); - m_progress->setMinimum (0); - } else { - m_progress->setMaximum (1); - m_progress->reset (); - } - } - - void setBusy (int min, int max) { - m_progress->setMaximum (max); - m_progress->setMinimum (min); - } - - void setBusy (int cur) { - m_progress->setValue (cur); - } - - void setStatusText (QString s) { - m_status->setText (s); - } - - void addRequest (QUrl url, MedialibListItem *item); - - public slots: - void httpDone (int, bool); - void httpStarted (int); - void settingsSaved (void); - - private: - QWidget *m_dummy; - QTabWidget *m_tab; - QLineEdit *m_search; - QVBoxLayout *m_vbox; - QProgressBar *m_progress; - QLabel *m_status; - MedialibList *m_artist; - MedialibList *m_album; - MedialibList *m_song; - - QMap m_httpmap; - QHttp *m_http; -}; - -#endif