From 40d2369b12da350f684f5364a00c3501a6c038e6 Mon Sep 17 00:00:00 2001 From: Martin Prochnow Date: Mon, 29 May 2006 16:02:12 +0200 Subject: =?UTF-8?q?Version=200.11=20-=20added=20czech=20translation;=20tha?= =?UTF-8?q?nks=20to=20Vladim=EDr=20B=E1rta=20-=20added=20missing=20dialog?= =?UTF-8?q?=20for=20video=20dvds=20-=20added=20more=20meaningful=20error?= =?UTF-8?q?=20messages=20-=20avoid=20empty=20names=20and=20names=20startin?= =?UTF-8?q?g=20with=20.=20or=20..=20while=20editing=20-=20free=20space=20d?= =?UTF-8?q?isplay=20in=20title=20bar=20is=20now=20updated=20immediately=20?= =?UTF-8?q?-=20switched=20off=20editing=20of=20recordings=20and=20director?= =?UTF-8?q?ies=20while=20a=20cut=20is=20in=20progress=20-=20switched=20off?= =?UTF-8?q?=20resume=20by=20'Play'=20or=20'Menu'->'Blue'=20for=20archive?= =?UTF-8?q?=20dvd=20recordings=20-=20changed=20back=20the=20behaviour=20if?= =?UTF-8?q?=20replay=20ends;=20plugin=20has=20to=20open=20to=20unmount=20a?= =?UTF-8?q?rchive=20dvds=20-=20removed=20setup=20option=20"While=20opening?= =?UTF-8?q?=20jump=20to=20last=20replayed=20recording";=20its=20implementi?= =?UTF-8?q?on=20interfers=20with=20the=20following=20one=20-=20after=20ren?= =?UTF-8?q?aming=20a=20recording,=20the=20selection=20bar=20now=20stays=20?= =?UTF-8?q?at=20this=20renamed=20list=20entry=20-=20the=20parameters=20'mo?= =?UTF-8?q?ve'=20and=20'rename'=20for=20the=20'-r'-option=20of=20VDR=20hav?= =?UTF-8?q?e=20now=20the=20following=20format:=20move/rename=20oldname=20n?= =?UTF-8?q?ewname=20-=20fixed=20hopefully=20all=20problems=20in=20connecti?= =?UTF-8?q?on=20with=20renaming=20and=20moving=20directories=20-=20plugins?= =?UTF-8?q?=20closes=20if=20there=20are=20no=20recordings=20-=20fixed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mymenueditrecording.c | 160 ++++++++++++++++++++------------------------------ 1 file changed, 64 insertions(+), 96 deletions(-) (limited to 'mymenueditrecording.c') diff --git a/mymenueditrecording.c b/mymenueditrecording.c index a7f3c3f..e50c302 100644 --- a/mymenueditrecording.c +++ b/mymenueditrecording.c @@ -8,7 +8,7 @@ #include "mymenurecordings.h" #include "tools.h" -bool clearall; +bool myMenuMoveRecording::clearall=false; char newname[128]; // --- myMenuRenameRecording -------------------------------------------------- @@ -64,49 +64,30 @@ eOSState myMenuRenameRecording::ProcessKey(eKeys Key) char *oldname=NULL; char *newname=NULL; + if(strchr(name,'.')==name||!strlen(name)) + { + Skins.Message(mtError,tr("Invalid filename!")); + cRemote::Put(kRight); + return osContinue; + } + if(isdir) asprintf(&oldname,"%s%s%s/%s",VideoDirectory,path[0]?"/":"",dirbase?ExchangeChars(dirbase,true):"",ExchangeChars(dirname,true)); else oldname=strdup(recording->FileName()); asprintf(&newname,"%s%s%s/%s%s",VideoDirectory,path[0]?"/":"",ExchangeChars(path,true),ExchangeChars(name,true),isdir?"":strrchr(recording->FileName(),'/')); - - if(strcmp(oldname,newname)) + + if(MoveRename(oldname,newname,isdir?NULL:recording,false)) { - if(MakeDirs(newname,true)==false) - { - Skins.Message(mtError,"Error while accessing recording!"); - state=osContinue; - } - else - { - isyslog("[extrecmenu] moving %s to %s",oldname,newname); - - if(rename(oldname,newname)==-1) - { - esyslog("[extrecmenu] error while moving: %s",strerror(errno)); - Skins.Message(mtError,tr("Error while accessing recording!")); - state=osContinue; - } - else - { - cRecordingUserCommand::InvokeCommand("rename",newname); - if(isdir) - Recordings.Update(true); - else - { - free(newname); - asprintf(&newname,"%s%s%s/%s%s",VideoDirectory,path[0]?"/":"",path,name,strrchr(recording->FileName(),'/')); - Recordings.AddByName(newname); - Recordings.Del(recording,false); - } - menurecordings->Set(true); - state=osBack; - } - } + state=osBack; + menurecordings->Set(true,isdir?NULL:newname); } else - state=osBack; + { + cRemote::Put(kRight); + state=osContinue; + } free(oldname); free(newname); @@ -142,8 +123,17 @@ eOSState myMenuNewName::ProcessKey(eKeys Key) { if(Key==kOk) { - strn0cpy(newname,name,sizeof(newname)); - state=osBack; + if(strchr(name,'.')==name||!strlen(name)) + { + Skins.Message(mtError,tr("Invalid filename!")); + cRemote::Put(kRight); + state=osContinue; + } + else + { + strn0cpy(newname,name,sizeof(newname)); + state=osBack; + } } if(Key==kBack) state=osBack; @@ -242,9 +232,8 @@ void myMenuMoveRecording::Set() if(lastitemtext&&!strcmp(lastitemtext,item->Text())) // same text { if(lastitem&&lastitem->Level()Level()) // if level of the previous item is lower, set it to the new value - { lastitem->SetLevel(item->Level()); - } + delete item; } else @@ -287,70 +276,62 @@ eOSState myMenuMoveRecording::MoveRec() char *oldname=NULL; char *newname=NULL; char *dir=NULL; - char *p=NULL; eOSState state=osContinue; - myMenuMoveRecordingItem *item=(myMenuMoveRecordingItem*)Get(Current()); - if(dirname) asprintf(&oldname,"%s%s%s/%s",VideoDirectory,dirbase?"/":"",dirbase?ExchangeChars(dirbase,true):"",ExchangeChars(dirname,true)); else oldname=strdup(recording->FileName()); - p=strrchr(oldname,'/'); - if(p&&!dirname) - *p=0; - + myMenuMoveRecordingItem *item=(myMenuMoveRecordingItem*)Get(Current()); if(item) { if(strcmp(tr("[base dir]"),item->Text())) { - asprintf(&dir,"%s%s%s",base?base:"",base?"~":"",item->Text()); - ExchangeChars(dir,true); + if(dirname) + asprintf(&dir,"%s%s%s",base?base:"",base?"~":"",item->Text()); + else + { + char *p=strrchr(recording->Name(),'~'); + asprintf(&dir,"%s%s%s~%s",base?base:"",base?"~":"",item->Text(),p?p+1:recording->Name()); + } + } + else + { + if(!dirname) + { + char *p=strrchr(recording->Name(),'~'); + asprintf(&dir,"%s",p?++p:recording->Name()); + } } } else { - asprintf(&dir,"%s",base); - ExchangeChars(dir,true); + if(dirname) + asprintf(&dir,"%s",base); + else + { + char *p=strrchr(recording->Name(),'~'); + asprintf(&dir,"%s~%s",base,p?p:recording->Name()); + } } + if(dir) + ExchangeChars(dir,true); - asprintf(&newname,"%s%s%s/%s",VideoDirectory,dir?"/":"",dir?dir:"",strrchr(oldname,'/')+1); + asprintf(&newname,"%s%s%s%s",VideoDirectory,dir?"/":"",dir?dir:"",strrchr(dirname?oldname:recording->FileName(),'/')); - if(MakeDirs(newname,true)==false) + if(MoveRename(oldname,newname,dirname?NULL:recording,true)) { - Skins.Message(mtError,"Error while accessing recording!"); - state=osContinue; - } - else - { - isyslog("[extrecmenu] moving %s to %s",oldname,newname); - if(rename(oldname,newname)==-1) - { - esyslog("[extrecmenu] error while moving: %s",strerror(errno)); - Skins.Message(mtError,"Error while accessing recording!"); - state=osContinue; - } - else - { - cRecordingUserCommand::InvokeCommand("move",newname); - if(dirname) - Recordings.Update(true); - else - { - free(newname); - asprintf(&newname,"%s%s%s/%s%s",VideoDirectory,dir?"/":"",dir?dir:"",strrchr(oldname,'/')+1,strrchr(recording->FileName(),'/')); - Recordings.AddByName(newname); - Recordings.Del(recording,false); - } - clearall=true; - state=osBack; - } + clearall=true; + state=osBack; + menurecordings->Set(true); } + free(oldname); free(newname); free(dir); + return state; } @@ -412,26 +393,13 @@ eOSState myMenuRecordingDetails::ProcessKey(eKeys Key) sprintf(newname+strlen(newname)-9,"%02d.%02d.rec",priority,lifetime); - if(strcmp(oldname,newname)) + if(MoveRename(oldname,newname,recording,false)) { - isyslog("[extrecmenu] moving %s to %s",oldname,newname); - - if(rename(oldname,newname)==-1) - { - esyslog("[extrecmenu] error while moving: %s",strerror(errno)); - Skins.Message(mtError,tr("Error while accessing recording!")); - state=osContinue; - } - else - { - Recordings.AddByName(newname); - Recordings.Del(recording,false); - menurecordings->Set(true); - state=osBack; - } + state=osBack; + menurecordings->Set(true,newname); } else - state=osBack; + state=osContinue; free(oldname); free(newname); -- cgit v1.2.3