]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add buttons to remove tracks from the playlist
authorterencehill <piuntn@gmail.com>
Sun, 4 Aug 2013 13:12:02 +0000 (15:12 +0200)
committerterencehill <piuntn@gmail.com>
Sun, 4 Aug 2013 13:19:31 +0000 (15:19 +0200)
qcsrc/menu/xonotic/dialog_multiplayer_musicplayer.c
qcsrc/menu/xonotic/playlist.c
qcsrc/menu/xonotic/soundlist.c

index 9ac0be8f860188d53c36bd4184eee119d5caa0a0..d2d4f5da46c286b8dba5791b665ec43fd93699c7 100644 (file)
@@ -35,7 +35,7 @@ void XonoticMusicPlayerTab_fill(entity me)
                        soundList.playlist = playList;
 
        me.TR(me);
-               me.TD(me, me.rows - 4, columns_nospacing / 2, soundList);
+               me.TD(me, me.rows - 5, columns_nospacing / 2, soundList);
 
        me.gotoRC(me, me.rows - 4, 0);
                me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Add")), '0 0 0'));
@@ -58,9 +58,9 @@ void XonoticMusicPlayerTab_fill(entity me)
                me.TD(me, 1, columns_nospacing / 4, e = makeXonoticTextLabel(0, _("Playlist:")));
                me.TD(me, 1, columns_nospacing / 4, e = makeXonoticCheckBox(0, "music_playlist_random0", _("Random order")));
        me.TR(me);
-               me.TD(me, me.rows - 3, columns_nospacing / 2, playList);
+               me.TD(me, me.rows - 4, columns_nospacing / 2, playList);
 
-       me.gotoRC(me, me.rows - 2, columns_nospacing / 2 + 0.2);
+       me.gotoRC(me, me.rows - 3, columns_nospacing / 2 + 0.2);
                me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Stop")), '0 0 0'));
                        e.onClick = StopSound_Click;
                        e.onClickEntity = playList;
@@ -76,5 +76,12 @@ void XonoticMusicPlayerTab_fill(entity me)
                me.TD(me, 1, columns_nospacing / 10, e = makeXonoticButton(ZCTX(_("MUSICPL^Next")), '0 0 0'));
                        e.onClick = NextSound_Click;
                        e.onClickEntity = playList;
+       me.TR(me);
+               me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Remove")), '0 0 0'));
+                       e.onClick = PlayList_Remove;
+                       e.onClickEntity = playList;
+               me.TD(me, 1, columns_nospacing / 4, e = makeXonoticButton(ZCTX(_("MUSICPL^Remove all")), '0 0 0'));
+                       e.onClick = PlayList_Remove_All;
+                       e.onClickEntity = playList;
 }
 #endif
index d9ca2f7df4160b3f0e29c4b77504566b0aa01083..0127181d9cc427ccd1ca19c5e29d03413388f43b 100644 (file)
@@ -13,7 +13,7 @@ CLASS(XonoticPlayList) EXTENDS(XonoticListBox)
        METHOD(XonoticPlayList, mouseDrag, float(entity, vector))
 
        METHOD(XonoticPlayList, addToPlayList, void(entity, string))
-       METHOD(XonoticPlayList, removeFromPlayList, void(entity, string))
+       METHOD(XonoticPlayList, removeSelectedFromPlayList, void(entity))
        ATTRIB(XonoticPlayList, playingTrack, string, string_null)
 
        ATTRIB(XonoticPlayList, realFontSize, vector, '0 0 0')
@@ -30,6 +30,8 @@ CLASS(XonoticPlayList) EXTENDS(XonoticListBox)
 ENDCLASS(XonoticPlayList)
 
 entity makeXonoticPlayList();
+void PlayList_Remove(entity btn, entity me);
+void PlayList_Remove_All(entity btn, entity me);
 void StopSound_Click(entity btn, entity me);
 void StartSound_Click(entity btn, entity me);
 void PauseSound_Click(entity btn, entity me);
@@ -86,7 +88,7 @@ void XonoticPlayList_addToPlayList(entity me, string track)
        cvar_set("music_playlist_list0", strcat(cvar_string("music_playlist_list0"), " ", track));
 }
 
-void XonoticPlayList_removeFromPlayList(entity me, string track)
+void XonoticPlayList_removeSelectedFromPlayList(entity me)
 {
        float i, cpt = FALSE;
        string s = "";
@@ -95,7 +97,7 @@ void XonoticPlayList_removeFromPlayList(entity me, string track)
                return;
        for(i = 0; i < me.nItems; ++i)
        {
-               if(argv(i) == track)
+               if(i == me.selectedItem)
                {
                        if(i == me.nItems - 1)
                                me.setSelected(me, me.selectedItem - 1);
@@ -121,6 +123,18 @@ void XonoticPlayList_removeFromPlayList(entity me, string track)
                me.startSound(me, 0); // stop current playing track otherwise pause/play button will resume from another track
 }
 
+void PlayList_Remove(entity btn, entity me)
+{
+       me.removeSelectedFromPlayList(me);
+}
+
+void PlayList_Remove_All(entity btn, entity me)
+{
+       cvar_set("music_playlist_list0", "");
+       me.stopSound(me);
+       me.selectedItem = 0;
+}
+
 float XonoticPlayList_mouseDrag(entity me, vector pos)
 {
        float f, i;
@@ -267,8 +281,7 @@ float XonoticPlayList_keyDown(entity me, float scan, float ascii, float shift)
                return 1;
        }
        else if(scan == K_DEL || scan == K_KP_DEL || scan == K_BACKSPACE || scan == K_MOUSE3) {
-               me.nItems = tokenize_console(cvar_string("music_playlist_list0"));
-               me.removeFromPlayList(me, argv(me.selectedItem));
+               me.removeSelectedFromPlayList(me);
                return 1;
        }
        else
index 126b017218f1c9fcc37117443ebf8c17a270644e..f1b4aa300800134875f8e2e1f11eb3531395b18d 100644 (file)
@@ -177,10 +177,6 @@ float XonoticSoundList_keyDown(entity me, float scan, float ascii, float shift)
                me.playlist.addToPlayList(me.playlist, me.soundName(me, me.selectedItem));
                return 1;
        }
-       else if(scan == K_DEL || scan == K_KP_DEL) {
-               me.playlist.removeFromPlayList(me.playlist, me.soundName(me, me.selectedItem));
-               return 1;
-       }
        else
                return SUPER(XonoticSoundList).keyDown(me, scan, ascii, shift);
 }