Track Number column in music browser
Robert Hart <[email protected]>
| Newsgroups | gmane.comp.audio.zinf.devel |
|---|---|
| Message-ID | <1052816954.897.7.camel@euclid> |
I've got a nagging feeling that this has been done before.... The unix version of the musicbrowser doesn't seem to let you have the tracknumber as a column. Any reason why this shouldn't go in? Rob
track.diff
(text/x-patch, 5.5 KB)
Index: ui/musicbrowser/unix/include/gtkmusicbrowser.h
===================================================================
RCS file: /cvsroot/zinf/zinf/ui/musicbrowser/unix/include/gtkmusicbrowser.h,v
retrieving revision 1.8
diff -u -r1.8 gtkmusicbrowser.h
--- ui/musicbrowser/unix/include/gtkmusicbrowser.h 13 Feb 2003 12:17:58 -0000 1.8
+++ ui/musicbrowser/unix/include/gtkmusicbrowser.h 12 May 2003 22:44:52 -0000
@@ -52,6 +52,7 @@
kPositionColumn,
kTitleColumn,
kTimeColumn,
+ kTrackColumn,
kYearColumn
} PlaylistColumns;
@@ -261,7 +262,7 @@
GtkWidget *artistSubTree;
GtkWidget *playlistSubTree;
- PlaylistColumns playlistCols[9];
+ PlaylistColumns playlistCols[10];
bool playlistColsChanged;
void ParsePlaylistCols();
void UpdateColumnHeaders();
Index: ui/musicbrowser/unix/src/browserlist.cpp
===================================================================
RCS file: /cvsroot/zinf/zinf/ui/musicbrowser/unix/src/browserlist.cpp,v
retrieving revision 1.9
diff -u -r1.9 browserlist.cpp
--- ui/musicbrowser/unix/src/browserlist.cpp 15 Mar 2003 01:01:53 -0000 1.9
+++ ui/musicbrowser/unix/src/browserlist.cpp 12 May 2003 22:44:58 -0000
@@ -137,6 +137,7 @@
char *album;
char *genre;
char *comment;
+ char track[4];
char year[10];
char length[50];
@@ -152,6 +153,11 @@
URLToFilePath((*i)->URL().c_str(), location);
if(blah) blah << "location "<<location<<endl;
+ if (mdata.Track() == 0 || mdata.Track()>999)
+ sprintf(track, "-");
+ else {
+ sprintf(track, "%d", mdata.Track());
+ }
if (mdata.Year() == 0)
sprintf(year, _("Unknown"));
else
@@ -196,6 +202,9 @@
case kTimeColumn:
iText[i] = length;
break;
+ case kTrackColumn:
+ iText[i] = track;
+ break;
case kYearColumn:
iText[i] = year;
break;
@@ -244,6 +253,7 @@
char *album;
char *genre;
char *comment;
+ char track[4];
char length[50];
string empty = " ";
@@ -256,11 +266,17 @@
album = (char *)mdata.Album().c_str();
genre = (char *)mdata.Genre().c_str();
comment = (char *)mdata.Comment().c_str();
-
URLToFilePath(item->URL().c_str(), location);
if(blah) blah << "location "<<location<<endl;
-
+
+ if (mdata.Track() == 0 || mdata.Track()>999)
+ sprintf(track, "-");
+ else {
+ sprintf(track, "%d", mdata.Track());
+ }
+
if (mdata.Time() == 0)
sprintf(length, _("Unknown"));
else {
@@ -300,6 +316,9 @@
case kTimeColumn:
iText[i] = length;
break;
+ case kTrackColumn:
+ iText[i] = track;
+ break;
default:
iText[i] = (char *)empty.c_str();
break;
@@ -365,7 +384,7 @@
char *buf2 = new char[buffer.length()+1];
strcpy(buf2,buffer.c_str());
char *token = strtok(buf2, "|");
- while (token != NULL && column < 9)
+ while (token != NULL && column < 10)
{
PlaylistColumns newcol = kEmptyColumn;
@@ -385,6 +404,8 @@
newcol = kTimeColumn;
else if (!strcmp(token, "Year"))
newcol = kYearColumn;
+ else if (!strcmp(token, "Track"))
+ newcol = kTrackColumn;
else
newcol = kEmptyColumn;
@@ -395,7 +416,7 @@
token = strtok(NULL, "|");
column++;
}
- for (; column < 9; column++)
+ for (; column < 10; column++)
playlistCols[column] = kEmptyColumn;
delete [] buf2;
}
@@ -435,6 +456,9 @@
case kTimeColumn:
title = "Length";
break;
+ case kTrackColumn:
+ title = "Track";
+ break;
case kYearColumn:
title = "Year";
break;
@@ -488,6 +512,7 @@
char *album;
char *genre;
char *comment;
+ char track[4];
char length[50];
char year[10];
string empty = " ";
@@ -503,7 +528,11 @@
URLToFilePath(item->URL().c_str(), location);
if(blah) blah << "location " << location.c_str() << endl;
if(blah) blah << "url() "<< item->URL().c_str() << endl;
-
+ if (mdata.Track() == 0 || mdata.Track()>999)
+ sprintf(track, "-");
+ else {
+ sprintf(track, "%d", mdata.Track());
+ }
if (mdata.Year() == 0)
sprintf(year, "Unknown");
else
@@ -547,6 +576,9 @@
break;
case kTimeColumn:
iText[i] = length;
+ break;
+ case kTrackColumn:
+ iText[i] = track;
break;
case kYearColumn:
iText[i] = year;
Index: ui/zinf/unix/src/GTKPreferenceWindow.cpp
===================================================================
RCS file: /cvsroot/zinf/zinf/ui/zinf/unix/src/GTKPreferenceWindow.cpp,v
retrieving revision 1.19
diff -u -r1.19 GTKPreferenceWindow.cpp
--- ui/zinf/unix/src/GTKPreferenceWindow.cpp 15 Mar 2003 01:01:53 -0000 1.19
+++ ui/zinf/unix/src/GTKPreferenceWindow.cpp 12 May 2003 22:45:10 -0000
@@ -2420,7 +2420,7 @@
delete [] columns;
char *available[] = {"Artist", "Album", "Comment", "Genre", "Location",
- "Time", "Title", "Year"};
+ "Time", "Title", "Track", "Year"};
int nCols = sizeof(available) / sizeof(available[0]);
for (int i = 0; i < nCols; i++)
{