[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/kmplayer
From: Koos Vriezen <koos.vriezen () xs4all ! nl>
Date: 2005-09-30 19:56:53
Message-ID: 1128110213.972614.24927.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 465771 by vriezen:
Support for CONTROLS="Playlist" for plugin, added a test for this
M +2 -0 ChangeLog
M +8 -0 src/kmplayer_part.cpp
M +1 -1 src/kmplayer_part.h
M +20 -7 src/kmplayerpartbase.cpp
M +4 -1 src/kmplayerpartbase.h
M +18 -0 src/kmplayerview.cpp
M +3 -1 src/kmplayerview.h
A tests/controls.html
--- trunk/extragear/multimedia/kmplayer/ChangeLog #465770:465771
@@ -1,4 +1,6 @@
Changes since version 0.9.1-pre2
+- Support for CONTROLS="Playlist" for plugin
+- Support for <base HREF='...'/> tags for ASX
- Network bandwidth setting added, this is used in SMIL's <switch> element
when <video> or <audio> elements have a system-bitrate attribute
- Unpushing the playbutton now actually stops playing
--- trunk/extragear/multimedia/kmplayer/src/kmplayer_part.cpp #465770:465771
@@ -224,6 +224,8 @@
m_features |= Feat_StatusBar;
} else if (val_lower == QString::fromLatin1("infopanel")) {
m_features |= Feat_InfoPanel;
+ } else if (val_lower == QString::fromLatin1("playlist")) {
+ m_features |= Feat_PlayList;
} else if (val_lower == QString::fromLatin1("volumeslider")) {
m_features |= Feat_VolumeSlider;
setAutoControls (false);
@@ -261,6 +263,10 @@
m_view->setNoInfoMessages (m_features != Feat_InfoPanel);
if (m_features & (Feat_Controls | Feat_VolumeSlider))
m_view->setControlPanelMode (m_features & Feat_Viewer ? \
KMPlayer::View::CP_Show : KMPlayer::View::CP_Only); + else if (m_features == \
Feat_InfoPanel) + m_view->setInfoPanelOnly ();
+ else if (m_features == Feat_PlayList)
+ m_view->setPlaylistOnly ();
else if (m_features != Feat_Unknown)
m_view->setControlPanelMode (KMPlayer::View::CP_Hide);
else
@@ -444,6 +450,8 @@
m_master = m;
m->connectPanel (m_view->controlPanel ());
m->updatePlayerMenu (m_view->controlPanel ());
+ if (m_features & Feat_PlayList)
+ m->connectPlaylist (m_view->playList ());
connectSource (m_source, m->source ());
connect (m, SIGNAL (destroyed (QObject *)),
this, SLOT (viewerPartDestroyed (QObject *)));
--- trunk/extragear/multimedia/kmplayer/src/kmplayer_part.h #465770:465771
@@ -120,7 +120,7 @@
Feat_Unknown = 0,
Feat_Viewer = 0x01, Feat_Controls = 0x02,
Feat_Label = 0x04, Feat_StatusBar = 0x08,
- Feat_InfoPanel = 0x10, Feat_VolumeSlider = 0x20,
+ Feat_InfoPanel = 0x10, Feat_VolumeSlider = 0x20, Feat_PlayList = 0x40,
Feat_All = 0xff
};
KMPlayerPart (QWidget * wparent, const char * wname,
--- trunk/extragear/multimedia/kmplayer/src/kmplayerpartbase.cpp #465770:465771
@@ -164,8 +164,7 @@
m_bPosSliderPressed = false;
m_bookmark_menu = new KBookmarkMenu (m_bookmark_manager, m_bookmark_owner, \
m_view->controlPanel ()->bookmarkMenu (), action_collection, true, \
true);
connect (m_view, SIGNAL (urlDropped (const KURL::List &)), this, SLOT (openURL \
(const KURL::List &)));
- connect (m_view->playList (), SIGNAL (addBookMark (const QString &, const \
QString &)), this, SLOT (addBookMark (const QString &, const QString \
&)));
- connect (m_view->playList (), SIGNAL (executed (QListViewItem *)), this, SLOT \
(playListItemSelected (QListViewItem *))); + connectPlaylist (m_view->playList \
());
new KAction (i18n ("Edit playlist item"), 0, 0, m_view->playList (), SLOT \
(editCurrent ()), action_collection, "edit_playlist_item"); }
@@ -200,6 +199,17 @@
//connect (panel (), SIGNAL (clicked ()), m_settings, SLOT (show ()));
}
+void PartBase::connectPlaylist (PlayListView * playlist) {
+ connect (playlist, SIGNAL (addBookMark (const QString &, const QString &)),
+ this, SLOT (addBookMark (const QString &, const QString &)));
+ connect (playlist, SIGNAL (executed (QListViewItem *)),
+ this, SLOT (playListItemSelected (QListViewItem *)));
+ connect (this, SIGNAL (treeChanged (NodePtr, NodePtr)),
+ playlist, SLOT (updateTree (NodePtr, NodePtr)));
+ connect (this, SIGNAL (treeUpdated ()),
+ playlist, SLOT (triggerUpdate ()));
+}
+
PartBase::~PartBase () {
kdDebug() << "PartBase::~PartBase" << endl;
m_view = (View*) 0;
@@ -584,10 +594,13 @@
updateTree (); // items already deleted
}
-void PartBase::updateTree () {
+void PartBase::updateTree (bool full) {
m_in_update_tree = true;
- if (m_view && m_source)
- m_view->playList ()->updateTree (m_source->document (), m_source->current \
()); + if (full) {
+ if (m_source)
+ emit treeChanged (m_source->document (), m_source->current ());
+ } else
+ emit treeUpdated ();
m_in_update_tree = false;
}
@@ -917,8 +930,8 @@
if (elm->expose () && (elm->state == Element::state_activated ||
elm->state == Element::state_deactivated))
m_player->updateTree ();
- else if (m_player->view ()) // only updates the state_began changes (if any)
- static_cast <View*> (m_player->view())->playList ()->triggerUpdate ();
+ else
+ m_player->updateTree (false); // only updates the state_began changes (if \
any) }
void Source::setEventDispatcher (NodePtr e) {
--- trunk/extragear/multimedia/kmplayer/src/kmplayerpartbase.h #465770:465771
@@ -119,6 +119,7 @@
* */
void setSource (Source * source);
void connectPanel (ControlPanel * panel);
+ void connectPlaylist (PlayListView * playlist);
void connectSource (Source * old_source, Source * source);
Process * process () const { return m_process; }
Process * recorder () const { return m_recorder; }
@@ -132,7 +133,7 @@
// these are called from Process
void changeURL (const QString & url);
- void updateTree ();
+ void updateTree (bool full=true);
public slots:
virtual bool openURL (const KURL & url);
virtual bool openURL (const KURL::List & urls);
@@ -167,6 +168,8 @@
void urlAdded (const QString & url);
void urlChanged (const QString & url);
void processChanged (const char *);
+ void treeChanged (NodePtr root, NodePtr);
+ void treeUpdated ();
protected:
bool openFile();
virtual void timerEvent (QTimerEvent *);
--- trunk/extragear/multimedia/kmplayer/src/kmplayerview.cpp #465770:465771
@@ -1360,6 +1360,24 @@
m_dock_infopanel->undock ();
}
+void View::setInfoPanelOnly () {
+ if (m_dock_playlist->mayBeHide ())
+ m_dock_playlist->undock ();
+ m_dock_video->setEnableDocking (KDockWidget::DockCenter);
+ m_dock_video->undock ();
+ m_dock_infopanel->setEnableDocking (KDockWidget::DockNone);
+ m_dockarea->setMainDockWidget (m_dock_infopanel);
+}
+
+void View::setPlaylistOnly () {
+ if (m_dock_infopanel->mayBeHide ())
+ m_dock_infopanel->undock ();
+ m_dock_video->setEnableDocking (KDockWidget::DockCenter);
+ m_dock_video->undock ();
+ m_dock_playlist->setEnableDocking (KDockWidget::DockNone);
+ m_dockarea->setMainDockWidget (m_dock_playlist);
+}
+
bool View::setPicture (const QString & path) {
delete m_image;
if (path.isEmpty ())
--- trunk/extragear/multimedia/kmplayer/src/kmplayerview.h #465770:465771
@@ -85,7 +85,6 @@
public:
PlayListView (QWidget * parent, View * view);
~PlayListView ();
- void updateTree (NodePtr root, NodePtr active);
void selectItem (const QString & txt);
void setActiveForegroundColor (const QColor & c) { m_active_color = c; }
const QColor & activeColor () const { return m_active_color; }
@@ -96,6 +95,7 @@
public slots:
void editCurrent ();
void rename (QListViewItem * item, int c);
+ void updateTree (NodePtr root, NodePtr active);
private slots:
void contextMenuItem (QListViewItem *, const QPoint &, int);
void itemExpanded (QListViewItem *);
@@ -254,6 +254,8 @@
void setInfoMessage (const QString & msg);
void setNoInfoMessages (bool b) { m_no_info = b; }
void setViewOnly ();
+ void setInfoPanelOnly ();
+ void setPlaylistOnly ();
void dragEnterEvent (QDragEnterEvent *);
void dropEvent (QDropEvent *);
KDE_NO_EXPORT void emitPictureClicked () { emit pictureClicked (); }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic