mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
The channel name column in the "What's on now/next" menu now adjusts its width to display the full short name of each channel
This commit is contained in:
parent
2be049f5f7
commit
c174dc0f5b
@ -2836,6 +2836,8 @@ Chris Mayo <aklhfex@gmail.com>
|
||||
Dominic Evans <oldmanuk@gmail.com>
|
||||
for making the SVDRP command LSTC accepts channel IDs
|
||||
for adding cap_net_raw to the capabilities that are not dropped
|
||||
for suggesting to make the channel name column in the "What's on now/next" menu
|
||||
adjust its width to display the full short name of each channel
|
||||
|
||||
Torsten Lang <info@torstenlang.de>
|
||||
for reporting a problem with newline characters in stream component descriptions
|
||||
|
2
HISTORY
2
HISTORY
@ -7016,3 +7016,5 @@ Video Disk Recorder Revision History
|
||||
- Changed the Green button in the "Edit timer" menu from "Once" to "Single"
|
||||
(suggested by Rolf Ahrenberg).
|
||||
- Fixed some typos in HISTORY and CONTRIBUTORS (thanks to Ville Skyttä).
|
||||
- The channel name column in the "What's on now/next" menu now adjusts its width
|
||||
to display the full short name of each channel (suggested by Dominic Evans).
|
||||
|
27
channels.c
27
channels.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: channels.c 2.20 2012/03/07 16:50:15 kls Exp $
|
||||
* $Id: channels.c 2.21 2012/03/11 13:29:06 kls Exp $
|
||||
*/
|
||||
|
||||
#include "channels.h"
|
||||
@ -760,6 +760,8 @@ cChannels Channels;
|
||||
cChannels::cChannels(void)
|
||||
{
|
||||
maxNumber = 0;
|
||||
maxChannelNameLength = 0;
|
||||
maxShortChannelNameLength = 0;
|
||||
modified = CHANNELSMOD_NONE;
|
||||
}
|
||||
|
||||
@ -937,9 +939,32 @@ bool cChannels::SwitchTo(int Number)
|
||||
return channel && cDevice::PrimaryDevice()->SwitchChannel(channel, true);
|
||||
}
|
||||
|
||||
int cChannels::MaxChannelNameLength(void)
|
||||
{
|
||||
if (!maxChannelNameLength) {
|
||||
for (cChannel *channel = First(); channel; channel = Next(channel)) {
|
||||
if (!channel->GroupSep())
|
||||
maxChannelNameLength = max(Utf8StrLen(channel->Name()), maxChannelNameLength);
|
||||
}
|
||||
}
|
||||
return maxChannelNameLength;
|
||||
}
|
||||
|
||||
int cChannels::MaxShortChannelNameLength(void)
|
||||
{
|
||||
if (!maxShortChannelNameLength) {
|
||||
for (cChannel *channel = First(); channel; channel = Next(channel)) {
|
||||
if (!channel->GroupSep())
|
||||
maxShortChannelNameLength = max(Utf8StrLen(channel->ShortName()), maxShortChannelNameLength);
|
||||
}
|
||||
}
|
||||
return maxShortChannelNameLength;
|
||||
}
|
||||
|
||||
void cChannels::SetModified(bool ByUser)
|
||||
{
|
||||
modified = ByUser ? CHANNELSMOD_USER : !modified ? CHANNELSMOD_AUTO : modified;
|
||||
maxChannelNameLength = maxShortChannelNameLength = 0;
|
||||
}
|
||||
|
||||
int cChannels::Modified(void)
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: channels.h 2.14 2011/08/06 09:56:13 kls Exp $
|
||||
* $Id: channels.h 2.15 2012/03/11 11:46:39 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CHANNELS_H
|
||||
@ -200,6 +200,8 @@ public:
|
||||
class cChannels : public cRwLock, public cConfig<cChannel> {
|
||||
private:
|
||||
int maxNumber;
|
||||
int maxChannelNameLength;
|
||||
int maxShortChannelNameLength;
|
||||
int modified;
|
||||
int beingEdited;
|
||||
cHash<cChannel> channelsHashSid;
|
||||
@ -224,6 +226,8 @@ public:
|
||||
bool HasUniqueChannelID(cChannel *NewChannel, cChannel *OldChannel = NULL);
|
||||
bool SwitchTo(int Number);
|
||||
int MaxNumber(void) { return maxNumber; }
|
||||
int MaxChannelNameLength(void);
|
||||
int MaxShortChannelNameLength(void);
|
||||
void SetModified(bool ByUser = false);
|
||||
int Modified(void);
|
||||
///< Returns 0 if no channels have been modified, 1 if an automatic
|
||||
|
13
menu.c
13
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 2.43 2012/03/11 10:44:32 kls Exp $
|
||||
* $Id: menu.c 2.44 2012/03/11 13:20:45 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -49,6 +49,7 @@
|
||||
#define NODISKSPACEDELTA 300 // seconds between "Not enough disk space to start recording!" messages
|
||||
|
||||
#define CHNUMWIDTH (numdigits(Channels.MaxNumber()) + 1)
|
||||
#define CHNAMWIDTH (Channels.MaxShortChannelNameLength() + 1)
|
||||
|
||||
// --- cFreeDiskSpace --------------------------------------------------------
|
||||
|
||||
@ -1347,9 +1348,9 @@ bool cMenuScheduleItem::Update(bool Force)
|
||||
const char *csn = channel ? channel->ShortName(true) : NULL;
|
||||
cString eds = event->GetDateString();
|
||||
if (channel && withDate)
|
||||
buffer = cString::sprintf("%d\t%.*s\t%.*s\t%s\t%c%c%c\t%s", channel->Number(), Utf8SymChars(csn, 6), csn, Utf8SymChars(eds, 6), *eds, *event->GetTimeString(), t, v, r, event->Title());
|
||||
buffer = cString::sprintf("%d\t%.*s\t%.*s\t%s\t%c%c%c\t%s", channel->Number(), Utf8SymChars(csn, 999), csn, Utf8SymChars(eds, 6), *eds, *event->GetTimeString(), t, v, r, event->Title());
|
||||
else if (channel)
|
||||
buffer = cString::sprintf("%d\t%.*s\t%s\t%c%c%c\t%s", channel->Number(), Utf8SymChars(csn, 6), csn, *event->GetTimeString(), t, v, r, event->Title());
|
||||
buffer = cString::sprintf("%d\t%.*s\t%s\t%c%c%c\t%s", channel->Number(), Utf8SymChars(csn, 999), csn, *event->GetTimeString(), t, v, r, event->Title());
|
||||
else
|
||||
buffer = cString::sprintf("%.*s\t%s\t%c%c%c\t%s", Utf8SymChars(eds, 6), *eds, *event->GetTimeString(), t, v, r, event->Title());
|
||||
SetText(buffer);
|
||||
@ -1383,7 +1384,7 @@ int cMenuWhatsOn::currentChannel = 0;
|
||||
const cEvent *cMenuWhatsOn::scheduleEvent = NULL;
|
||||
|
||||
cMenuWhatsOn::cMenuWhatsOn(const cSchedules *Schedules, bool Now, int CurrentChannelNr)
|
||||
:cOsdMenu(Now ? tr("What's on now?") : tr("What's on next?"), CHNUMWIDTH, 7, 6, 4)
|
||||
:cOsdMenu(Now ? tr("What's on now?") : tr("What's on next?"), CHNUMWIDTH, CHNAMWIDTH, 6, 4)
|
||||
{
|
||||
now = Now;
|
||||
helpKeys = -1;
|
||||
@ -1607,7 +1608,7 @@ void cMenuSchedule::PrepareScheduleThisThis(const cEvent *Event, const cChannel
|
||||
void cMenuSchedule::PrepareScheduleThisAll(const cEvent *Event, const cChannel *Channel)
|
||||
{
|
||||
Clear();
|
||||
SetCols(CHNUMWIDTH, 7, 7, 6, 4);
|
||||
SetCols(CHNUMWIDTH, CHNAMWIDTH, 7, 6, 4);
|
||||
SetTitle(tr("This event - all channels"));
|
||||
if (schedules && Event) {
|
||||
for (cChannel *ch = Channels.First(); ch; ch = Channels.Next(ch)) {
|
||||
@ -1626,7 +1627,7 @@ void cMenuSchedule::PrepareScheduleThisAll(const cEvent *Event, const cChannel *
|
||||
void cMenuSchedule::PrepareScheduleAllAll(const cEvent *Event, const cChannel *Channel)
|
||||
{
|
||||
Clear();
|
||||
SetCols(CHNUMWIDTH, 7, 7, 6, 4);
|
||||
SetCols(CHNUMWIDTH, CHNAMWIDTH, 7, 6, 4);
|
||||
SetTitle(tr("All events - all channels"));
|
||||
if (schedules) {
|
||||
for (cChannel *ch = Channels.First(); ch; ch = Channels.Next(ch)) {
|
||||
|
Loading…
Reference in New Issue
Block a user