[mythtv] PATCH - Prompt on playback exit.....

John mythtv-dev@snowman.net
Thu, 19 Dec 2002 21:46:41 -0500 (EST)


------=_20021219214641_36959
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

This patch prompts you before exiting playback of a recording.  It gives
the following options:
1) Save this poision and exit the recording
2) Don't save the posisiton just exit
3) Keep playing
4) Delete the recording

Isaac, let me know if I should have taken a different approach..

John

-------------------------------------
diff -ru cvs/MC/libs/libmythtv/tv_play.cpp
cvs.jrs/MC/libs/libmythtv/tv_play.cpp--- cvs/MC/libs/libmythtv/tv_play.cpp	Thu Dec 19 15:11:13 2002
+++ cvs.jrs/MC/libs/libmythtv/tv_play.cpp	Thu Dec 19 21:17:03 2002
@@ -46,6 +46,7 @@
     editmode = false;
     prbuffer = NULL;
     nvp = NULL;
+    requestDelete = false;
 }

 void TV::Init(void)
@@ -686,7 +687,33 @@
             case wsUp: osd->DialogUp(dialogname); break;
             case wsDown: osd->DialogDown(dialogname); break;
             case ' ': case wsEnter: case wsReturn:
-                          osd->TurnDialogOff(dialogname); break;
+                        osd->TurnDialogOff(dialogname);
+			if ( dialogname == "exitplayoptions" ) {
+
+			     int result = osd->GetDialogResponse(dialogname);
+			     dialogname = "";
+
+			     if (result == 3)
+			     {
+			             nvp->Unpause();
+			     }
+			     else if (result == 1)
+			     {
+			             nvp->SetBookmark();
+			             exitPlayer = true;
+			     }
+			     else if (result == 4)
+			     {
+			             exitPlayer = true;
+ 			            requestDelete = true;
+			     }
+			     else
+			     {
+			             exitPlayer = true;
+			     }
+			     break;
+			}
+
             default: break;
         }

@@ -722,7 +749,27 @@
             DoRew();
             break;
         }
-        case wsEscape: exitPlayer = true; break;
+        case wsEscape: {
+                if (StateIsPlaying(internalState)) {
+                 nvp->Pause();
+
+                   QString message = QString("You are exiting this
recording");+
+                    QString option1 = "Save this position and go to the
menu";+                     QString option2 = "Do not save, just exit to the menu";
+                     QString option3 = "Keep watching";
+                     QString option4 = "Delete this recording";
+
+                     dialogname = "exitplayoptions";
+                     osd->NewDialogBox(dialogname, message, option1,
option2, option3,+                                       option4, 0);
+
+                } else {
+                        exitPlayer = true;
+                        break;
+                }
+
+        }

         default:
         {
diff -ru cvs/MC/libs/libmythtv/tv_play.h cvs.jrs/MC/libs/libmythtv/tv_play.h
--- cvs/MC/libs/libmythtv/tv_play.h	Sun Dec 15 17:06:49 2002
+++ cvs.jrs/MC/libs/libmythtv/tv_play.h	Thu Dec 19 20:38:35 2002
@@ -43,6 +43,8 @@
     void EmbedOutput(unsigned long wid, int x, int y, int w, int h);
     void StopEmbeddingOutput(void);

+    bool getRequestDelete(void) {return requestDelete; }
+
  protected:
     void doLoadMenu(void);
     static void *MenuHandler(void *param);
@@ -151,6 +153,8 @@

     QString dialogname;
     bool editmode;
+
+    bool requestDelete;  // if set to true the user has requested that
the current recording be deleted. };

 #endif
diff -ru cvs/MC/programs/mythfrontend/playbackbox.cpp
cvs.jrs/MC/programs/mythfrontend/playbackbox.cpp--- cvs/MC/programs/mythfrontend/playbackbox.cpp	Tue Dec 17 01:09:26 2002
+++ cvs.jrs/MC/programs/mythfrontend/playbackbox.cpp	Thu Dec 19 20:29:30 2002
@@ -375,6 +375,10 @@
         qApp->processEvents();
         qApp->lock();
     }
+    if (tv->getRequestDelete()) {  // the user requested the current
recording be deleted.+        remove(lvitem);
+    }
+
     listview->SetAllowKeypress(true);

     delete tv;



------=_20021219214641_36959
Content-Type: application/octet-stream; name="playbackprompt.diff"
Content-Disposition: attachment; filename="playbackprompt.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtcnUgY3ZzL01DL2xpYnMvbGlibXl0aHR2L3R2X3BsYXkuY3BwIGN2cy5qcnMvTUMvbGli
cy9saWJteXRodHYvdHZfcGxheS5jcHAKLS0tIGN2cy9NQy9saWJzL2xpYm15dGh0di90dl9wbGF5
LmNwcAlUaHUgRGVjIDE5IDE1OjExOjEzIDIwMDIKKysrIGN2cy5qcnMvTUMvbGlicy9saWJteXRo
dHYvdHZfcGxheS5jcHAJVGh1IERlYyAxOSAyMToxNzowMyAyMDAyCkBAIC00Niw2ICs0Niw3IEBA
CiAgICAgZWRpdG1vZGUgPSBmYWxzZTsKICAgICBwcmJ1ZmZlciA9IE5VTEw7CiAgICAgbnZwID0g
TlVMTDsKKyAgICByZXF1ZXN0RGVsZXRlID0gZmFsc2U7CiB9CiAKIHZvaWQgVFY6OkluaXQodm9p
ZCkKQEAgLTY4Niw3ICs2ODcsMzMgQEAKICAgICAgICAgICAgIGNhc2Ugd3NVcDogb3NkLT5EaWFs
b2dVcChkaWFsb2duYW1lKTsgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIHdzRG93bjogb3NkLT5E
aWFsb2dEb3duKGRpYWxvZ25hbWUpOyBicmVhazsKICAgICAgICAgICAgIGNhc2UgJyAnOiBjYXNl
IHdzRW50ZXI6IGNhc2Ugd3NSZXR1cm46IAotICAgICAgICAgICAgICAgICAgICAgICAgICBvc2Qt
PlR1cm5EaWFsb2dPZmYoZGlhbG9nbmFtZSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgb3NkLT5UdXJuRGlhbG9nT2ZmKGRpYWxvZ25hbWUpOworCQkJaWYgKCBkaWFsb2duYW1lID09
ICJleGl0cGxheW9wdGlvbnMiICkgeworCisJCQkgICAgIGludCByZXN1bHQgPSBvc2QtPkdldERp
YWxvZ1Jlc3BvbnNlKGRpYWxvZ25hbWUpOworCQkJICAgICBkaWFsb2duYW1lID0gIiI7CisKKwkJ
CSAgICAgaWYgKHJlc3VsdCA9PSAzKQorCQkJICAgICB7CisJCQkgICAgICAgICAgICAgbnZwLT5V
bnBhdXNlKCk7CisJCQkgICAgIH0KKwkJCSAgICAgZWxzZSBpZiAocmVzdWx0ID09IDEpCisJCQkg
ICAgIHsKKwkJCSAgICAgICAgICAgICBudnAtPlNldEJvb2ttYXJrKCk7CisJCQkgICAgICAgICAg
ICAgZXhpdFBsYXllciA9IHRydWU7CisJCQkgICAgIH0KKwkJCSAgICAgZWxzZSBpZiAocmVzdWx0
ID09IDQpCisJCQkgICAgIHsKKwkJCSAgICAgICAgICAgICBleGl0UGxheWVyID0gdHJ1ZTsKKyAJ
CQkgICAgICAgICAgICByZXF1ZXN0RGVsZXRlID0gdHJ1ZTsKKwkJCSAgICAgfQorCQkJICAgICBl
bHNlCisJCQkgICAgIHsKKwkJCSAgICAgICAgICAgICBleGl0UGxheWVyID0gdHJ1ZTsKKwkJCSAg
ICAgfQorCQkJICAgICBicmVhazsKKwkJCX0KKwogICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgCkBAIC03MjIsNyArNzQ5LDI3IEBACiAgICAgICAgICAgICBE
b1JldygpOyAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ugd3NF
c2NhcGU6IGV4aXRQbGF5ZXIgPSB0cnVlOyBicmVhazsKKyAgICAgICAgY2FzZSB3c0VzY2FwZTog
eworICAgICAgICAgICAgICAgIGlmIChTdGF0ZUlzUGxheWluZyhpbnRlcm5hbFN0YXRlKSkgewor
ICAgICAgICAgICAgICAgICBudnAtPlBhdXNlKCk7CisKKyAgICAgICAgICAgICAgICAgICBRU3Ry
aW5nIG1lc3NhZ2UgPSBRU3RyaW5nKCJZb3UgYXJlIGV4aXRpbmcgdGhpcyByZWNvcmRpbmciKTsK
KworICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIG9wdGlvbjEgPSAiU2F2ZSB0aGlzIHBvc2l0
aW9uIGFuZCBnbyB0byB0aGUgbWVudSI7CisgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIG9w
dGlvbjIgPSAiRG8gbm90IHNhdmUsIGp1c3QgZXhpdCB0byB0aGUgbWVudSI7CisgICAgICAgICAg
ICAgICAgICAgICBRU3RyaW5nIG9wdGlvbjMgPSAiS2VlcCB3YXRjaGluZyI7CisgICAgICAgICAg
ICAgICAgICAgICBRU3RyaW5nIG9wdGlvbjQgPSAiRGVsZXRlIHRoaXMgcmVjb3JkaW5nIjsKKwor
ICAgICAgICAgICAgICAgICAgICAgZGlhbG9nbmFtZSA9ICJleGl0cGxheW9wdGlvbnMiOworICAg
ICAgICAgICAgICAgICAgICAgb3NkLT5OZXdEaWFsb2dCb3goZGlhbG9nbmFtZSwgbWVzc2FnZSwg
b3B0aW9uMSwgb3B0aW9uMiwgb3B0aW9uMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9wdGlvbjQsIDApOworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGV4aXRQbGF5ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIH0KIAogICAgICAgICBk
ZWZhdWx0OiAKICAgICAgICAgewpkaWZmIC1ydSBjdnMvTUMvbGlicy9saWJteXRodHYvdHZfcGxh
eS5oIGN2cy5qcnMvTUMvbGlicy9saWJteXRodHYvdHZfcGxheS5oCi0tLSBjdnMvTUMvbGlicy9s
aWJteXRodHYvdHZfcGxheS5oCVN1biBEZWMgMTUgMTc6MDY6NDkgMjAwMgorKysgY3ZzLmpycy9N
Qy9saWJzL2xpYm15dGh0di90dl9wbGF5LmgJVGh1IERlYyAxOSAyMDozODozNSAyMDAyCkBAIC00
Myw2ICs0Myw4IEBACiAgICAgdm9pZCBFbWJlZE91dHB1dCh1bnNpZ25lZCBsb25nIHdpZCwgaW50
IHgsIGludCB5LCBpbnQgdywgaW50IGgpOwogICAgIHZvaWQgU3RvcEVtYmVkZGluZ091dHB1dCh2
b2lkKTsKIAorICAgIGJvb2wgZ2V0UmVxdWVzdERlbGV0ZSh2b2lkKSB7cmV0dXJuIHJlcXVlc3RE
ZWxldGU7IH0KKwogIHByb3RlY3RlZDoKICAgICB2b2lkIGRvTG9hZE1lbnUodm9pZCk7CiAgICAg
c3RhdGljIHZvaWQgKk1lbnVIYW5kbGVyKHZvaWQgKnBhcmFtKTsKQEAgLTE1MSw2ICsxNTMsOCBA
QAogCiAgICAgUVN0cmluZyBkaWFsb2duYW1lOwogICAgIGJvb2wgZWRpdG1vZGU7CisKKyAgICBi
b29sIHJlcXVlc3REZWxldGU7ICAvLyBpZiBzZXQgdG8gdHJ1ZSB0aGUgdXNlciBoYXMgcmVxdWVz
dGVkIHRoYXQgdGhlIGN1cnJlbnQgcmVjb3JkaW5nIGJlIGRlbGV0ZWQuCiB9OwogCiAjZW5kaWYK
ZGlmZiAtcnUgY3ZzL01DL3Byb2dyYW1zL215dGhmcm9udGVuZC9wbGF5YmFja2JveC5jcHAgY3Zz
Lmpycy9NQy9wcm9ncmFtcy9teXRoZnJvbnRlbmQvcGxheWJhY2tib3guY3BwCi0tLSBjdnMvTUMv
cHJvZ3JhbXMvbXl0aGZyb250ZW5kL3BsYXliYWNrYm94LmNwcAlUdWUgRGVjIDE3IDAxOjA5OjI2
IDIwMDIKKysrIGN2cy5qcnMvTUMvcHJvZ3JhbXMvbXl0aGZyb250ZW5kL3BsYXliYWNrYm94LmNw
cAlUaHUgRGVjIDE5IDIwOjI5OjMwIDIwMDIKQEAgLTM3NSw2ICszNzUsMTAgQEAKICAgICAgICAg
cUFwcC0+cHJvY2Vzc0V2ZW50cygpOwogICAgICAgICBxQXBwLT5sb2NrKCk7CiAgICAgfQorICAg
IGlmICh0di0+Z2V0UmVxdWVzdERlbGV0ZSgpKSB7ICAvLyB0aGUgdXNlciByZXF1ZXN0ZWQgdGhl
IGN1cnJlbnQgcmVjb3JkaW5nIGJlIGRlbGV0ZWQuCisgICAgICAgIHJlbW92ZShsdml0ZW0pOwor
ICAgIH0KKwogICAgIGxpc3R2aWV3LT5TZXRBbGxvd0tleXByZXNzKHRydWUpOwogCiAgICAgZGVs
ZXRlIHR2Owo=

------=_20021219214641_36959--