From kde-commits Sun Feb 25 18:32:45 2007 From: Stefan Gehn Date: Sun, 25 Feb 2007 18:32:45 +0000 To: kde-commits Subject: KDE/kdemultimedia/noatun/modules/splitplaylist Message-Id: <1172428365.301294.12504.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=117242839129943 SVN commit 637192 by metz: - Remove obsolete/annoying paint/resize code from splitplaylist - try to guess mimetype for added files by looking at the url before trying stupid KIO::MimeTypeJob, it always seems to fetch the WHOLE file :( M +26 -59 view.cpp M +0 -2 view.h --- trunk/KDE/kdemultimedia/noatun/modules/splitplaylist/view.cpp #637191:637192 @@ -230,30 +230,15 @@ void SafeListViewItem::modified() { - bool widthChangeNeeded = false; + PlaylistItem pli = SPL->item(new ItemData(SPL, this)); + const QString titlestring = SPL->Plugin::global()->player()->title(pli); - PlaylistItem pli(SPL->item(new ItemData(SPL, this))); - QString titlestring = SPL->Plugin::global()->player()->title(pli); + setText(0, titlestring); + setText(1, pli.lengthString()); - if (text(0) != titlestring) - { - setText(0, titlestring); - widthChangeNeeded = true; - } - - if (pli.length()!=-1 && text(1)!=pli.lengthString()) - { - setText(1, pli.lengthString()); - widthChangeNeeded = true; - } - - if (widthChangeNeeded) - widthChanged(-1); - pli.modified(SPL->Plugin::global()); } - void SafeListViewItem::stateChange(bool s) { // if you uncheck this, uncheck the others that @@ -273,26 +258,6 @@ } } - -void SafeListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align) -{ - Q3CheckListItem::paintCell(p, cg, column, width, align); - - ItemData *item = SPL->item(SPL->current()); - if (item && item->item() == this) - { - kDebug(66666) << k_funcinfo << "for current item" << endl; - p->save(); - - // p->setRasterOp(XorROP); // TODO KDE4 XXX - p->setOpacity(0.5); - p->fillRect(0, 0, width, height(), Qt::white); - - p->restore(); - } -} - - void SafeListViewItem::remove() { kDebug(66666) << k_funcinfo << "For item " << text(0) << endl; @@ -318,18 +283,7 @@ void SafeListViewItem::showPlaying(bool p) { - if (p) - { - setPixmap(0, ::SmallIcon("player_play")); - } - else - { - setPixmap(0, QPixmap()); - } - - QRect rect(listView()->itemRect(this)); - rect.setWidth(listView()->viewport()->width()); - listView()->viewport()->update(rect); + setPixmap(0, (p ? ::SmallIcon("player_play") : QPixmap())); } @@ -344,7 +298,8 @@ setDragEnabled(true); setItemsMovable(true); setSelectionMode(Q3ListView::Extended); - connect(this, SIGNAL(dropped(QDropEvent*, Q3ListViewItem*)), SLOT(dropEvent(QDropEvent*, Q3ListViewItem*))); + connect(this, SIGNAL(dropped(QDropEvent*, Q3ListViewItem*)), + SLOT(dropEvent(QDropEvent*, Q3ListViewItem*))); connect(this, SIGNAL(moved()), SLOT(move())); connect(this, SIGNAL(aboutToMove()), parent, SLOT(setNoSorting())); connect(this, SIGNAL(deleteCurrentItem()), parent, SLOT(deleteSelected())); @@ -486,19 +441,26 @@ Q3ListViewItem *List::addFile(const KUrl& url, bool play, Q3ListViewItem *after) { // when a new item is added, we don't want to sort anymore - //SPL->view->setNoSorting(); static_cast(parent())->setNoSorting(); Q3ListViewItem *currentItem = 0; + QString mimeType; - QString mimetype = KIO::NetAccess::mimetype(url, 0); + mimeType = KMimeType::findByUrl(url, 0 /*mode*/, + url.isLocalFile() /*is local*/, false /*fast mode*/)->name(); + if (mimeType == "application/octet-stream") + { + kDebug(66666) << "COULD NOT DETERMINE MIMETYPE FOR URL, ASKING KIO" << endl; + mimeType = KIO::NetAccess::mimetype(url, 0); + } + kDebug(66666) << "==> Found MimeType " << mimeType << endl; - kDebug(66666) << "mimetype: " << mimetype << endl; - if (PlaylistSaver::loadableMimeTypes().contains(mimetype)) + if (PlaylistSaver::loadableMimeTypes().contains(mimeType)) { + kDebug(66666) << "Passed KUrl ist supported by PlaylistSaver" << endl; // it's a playlist NoatunSaver saver(this, after); - if (saver.load(url)) + if (saver.load(url, mimeType)) { // return the first item added from this playlist // that way noatun can start playing the first item @@ -509,12 +471,13 @@ currentItem = saver.getAfter(); } } - else // check player()->mimeTypes() + else if (SPL->Plugin::global()->player()->mimeTypes().contains(mimeType)) { + kDebug(66666) << "Passed KUrl ist supported by Player" << endl; if (!after) after = lastItem(); - KFileItem fileItem(KFileItem::Unknown,KFileItem::Unknown,url); + KFileItem fileItem(KFileItem::Unknown, KFileItem::Unknown,url); if (fileItem.isDir()) { addDirectoryRecursive(url, after); @@ -525,6 +488,10 @@ currentItem = new SafeListViewItem(this, after, url); } } + else + { + kDebug(66666) << "Passed KUrl ist unsupported by Noatun" << endl; + } if (play && currentItem) SPL->listItemSelected(currentItem); --- trunk/KDE/kdemultimedia/noatun/modules/splitplaylist/view.h #637191:637192 @@ -62,8 +62,6 @@ virtual void modified(); virtual void stateChange(bool s); - void paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align); - private: struct Property {