[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