|
|
|
@ -28,7 +28,7 @@ std::string Display::Columns() |
|
|
|
if (Config.columns.empty()) |
|
|
|
if (Config.columns.empty()) |
|
|
|
return ""; |
|
|
|
return ""; |
|
|
|
|
|
|
|
|
|
|
|
std::string result, tag; |
|
|
|
std::basic_string<my_char_t> result, tag; |
|
|
|
size_t where = 0; |
|
|
|
size_t where = 0; |
|
|
|
int width; |
|
|
|
int width; |
|
|
|
|
|
|
|
|
|
|
|
@ -46,71 +46,79 @@ std::string Display::Columns() |
|
|
|
else |
|
|
|
else |
|
|
|
width = it->width*(it->fixed ? 1 : COLS/100.0); |
|
|
|
width = it->width*(it->fixed ? 1 : COLS/100.0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (it->name.empty()) |
|
|
|
|
|
|
|
{ |
|
|
|
switch (it->type) |
|
|
|
switch (it->type) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 'l': |
|
|
|
case 'l': |
|
|
|
tag = "Time"; |
|
|
|
tag = U("Time"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'f': |
|
|
|
case 'f': |
|
|
|
tag = "Filename"; |
|
|
|
tag = U("Filename"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'D': |
|
|
|
case 'D': |
|
|
|
tag = "Directory"; |
|
|
|
tag = U("Directory"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'a': |
|
|
|
case 'a': |
|
|
|
tag = "Artist"; |
|
|
|
tag = U("Artist"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'A': |
|
|
|
case 'A': |
|
|
|
tag = "Album Artist"; |
|
|
|
tag = U("Album Artist"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 't': |
|
|
|
case 't': |
|
|
|
tag = "Title"; |
|
|
|
tag = U("Title"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'b': |
|
|
|
case 'b': |
|
|
|
tag = "Album"; |
|
|
|
tag = U("Album"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'y': |
|
|
|
case 'y': |
|
|
|
tag = "Year"; |
|
|
|
tag = U("Year"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'n': |
|
|
|
case 'n': |
|
|
|
case 'N': |
|
|
|
case 'N': |
|
|
|
tag = "Track"; |
|
|
|
tag = U("Track"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'g': |
|
|
|
case 'g': |
|
|
|
tag = "Genre"; |
|
|
|
tag = U("Genre"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'c': |
|
|
|
case 'c': |
|
|
|
tag = "Composer"; |
|
|
|
tag = U("Composer"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'p': |
|
|
|
case 'p': |
|
|
|
tag = "Performer"; |
|
|
|
tag = U("Performer"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'd': |
|
|
|
case 'd': |
|
|
|
tag = "Disc"; |
|
|
|
tag = U("Disc"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'C': |
|
|
|
case 'C': |
|
|
|
tag = "Comment"; |
|
|
|
tag = U("Comment"); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
tag.clear(); |
|
|
|
tag.clear(); |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
tag = it->name; |
|
|
|
if (it->right_alignment) |
|
|
|
if (it->right_alignment) |
|
|
|
{ |
|
|
|
{ |
|
|
|
long i = width-tag.length()-(it != Config.columns.begin()); |
|
|
|
long i = width-tag.length()-(it != Config.columns.begin()); |
|
|
|
if (i > 0) |
|
|
|
if (i > 0) |
|
|
|
result += std::string(i, ' '); |
|
|
|
result.resize(result.length()+i, ' '); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
where += width; |
|
|
|
where += width; |
|
|
|
result += tag; |
|
|
|
result += tag; |
|
|
|
|
|
|
|
|
|
|
|
if (result.length() > where) |
|
|
|
if (result.length() > where) |
|
|
|
result = result.substr(0, where); |
|
|
|
{ |
|
|
|
|
|
|
|
result.resize(where); |
|
|
|
|
|
|
|
result += ' '; |
|
|
|
|
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
for (size_t i = result.length(); i <= where && i < size_t(COLS); ++i, result += ' ') { } |
|
|
|
result.resize(std::min(where+1, size_t(COLS)), ' '); |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
return TO_STRING(result); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Display::SongsInColumns(const MPD::Song &s, void *, Menu<MPD::Song> *menu) |
|
|
|
void Display::SongsInColumns(const MPD::Song &s, void *, Menu<MPD::Song> *menu) |
|
|
|
|