openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #04309
[Merge] lp:~raoul-snyman/openlp/shortcut-dialog into lp:openlp
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/shortcut-dialog into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
View-only list of actions and shortcuts, currently also only the actions in the main window are in the shortcut dialog.
--
https://code.launchpad.net/~raoul-snyman/openlp/shortcut-dialog/+merge/39494
Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/shortcut-dialog into lp:openlp.
=== modified file 'openlp/core/resources.py'
--- openlp/core/resources.py 2010-09-14 18:18:47 +0000
+++ openlp/core/resources.py 2010-10-28 06:57:50 +0000
@@ -12368,6 +12368,61 @@
\x94\x8f\x52\xca\x04\xc0\x7e\x92\x24\x67\x71\x1c\x3f\x4b\x29\x03\
\x2c\xd7\xcf\xba\xae\xb1\x00\x35\xf4\xac\x81\x7c\x6a\x79\x61\x00\
\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x03\x4f\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
+\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
+\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\
+\x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xd9\x01\x05\
+\x15\x38\x05\x8e\x43\x17\x2a\x00\x00\x02\xcf\x49\x44\x41\x54\x78\
+\xda\x8d\x93\x5b\x48\x93\x61\x1c\xc6\x9f\x6f\xf3\xb0\x96\xd3\x29\
+\xd3\xa1\x17\x82\x8e\x9c\xcd\x16\x88\x05\x05\x89\x90\x95\x68\x8a\
+\x61\xe4\xe1\xc6\x43\xa4\x35\xcd\x41\xba\x2e\x9a\xa9\x0d\xb3\xc2\
+\x84\xd0\xe5\x70\xa0\x16\x08\x1e\x52\x03\xbd\x28\x0d\xbb\xf2\x90\
+\x82\x74\x91\x4d\x27\x09\xdb\xac\x5c\xe9\x06\x2d\x21\xdb\xb7\x6f\
+\xbe\x7d\xdf\x24\x29\x2a\xed\x07\x7f\x78\x6f\xfe\xcf\xfb\x3c\xcf\
+\xcb\x4b\x61\x0f\xaa\xaa\xaf\x49\xf3\xf2\xf2\x35\x14\x85\xa3\x4e\
+\xa7\x73\xe3\xc3\xc7\xf7\x7d\x15\xe5\x95\x3d\xb4\x9b\x26\xd8\x8b\
+\xcc\xac\x0c\x89\x79\x69\xc9\xe2\xf5\x7a\x89\xd5\x6a\x21\xb5\x75\
+\x37\x5d\x29\x29\xc9\x0f\x00\x04\xe2\x7f\x50\x55\x5c\x51\xdb\x3f\
+\xad\x92\xef\x9b\xdf\xc8\xe0\xd0\xe0\x3a\x00\x25\x00\x3e\x7e\x81\
+\x87\x5d\xf0\xd0\xb4\xc2\x62\xb1\xc0\x4d\xbb\x71\x30\x3e\xde\x5f\
+\xa1\x50\xac\x02\xf0\x82\xa5\xe1\xb6\x2e\x6c\x2f\x01\x4a\xa9\x3c\
+\x74\x60\x66\x66\x06\x0c\xe3\x45\x64\x64\x64\x88\x4e\x57\x3f\xda\
+\xd0\xa8\xcb\x9a\x7e\x35\xd5\x05\x42\x0d\x03\xf0\xdf\x4d\x20\x20\
+\x26\x56\x96\x40\x08\x81\xb6\xb6\x0e\x76\xbb\x1d\x72\xb9\xfc\x88\
+\x70\xdf\xfe\x11\x71\x88\xb8\x64\x68\xe8\xe9\x3c\x00\xe6\x9f\x02\
+\x25\x25\x85\x0a\x69\x84\x54\xfa\x6c\x6c\x1c\xa1\xa1\x61\x30\x76\
+\x74\x42\x14\x1c\x8c\xa0\xa0\x20\x34\x37\x37\x23\x3a\x3a\xfa\x98\
+\x4a\xa5\x6a\xe7\xff\xb5\xfd\xcc\x8c\xc0\x6a\x8d\xe6\x71\x5c\x9c\
+\x3c\xf6\x8b\xcb\x85\x8d\x8d\xaf\x10\x0a\x02\x41\xbb\xdd\x30\x99\
+\x16\x90\x9e\x9e\x81\xd2\xd2\xd2\xc8\x95\x95\x95\xc4\x3f\x1c\x14\
+\x14\xe4\x07\x68\x34\xd7\x7b\xd6\x3e\xaf\xa5\xae\xaf\xaf\xe3\xc2\
+\xf9\x1c\x86\x0f\x32\x6d\x6c\x37\xde\xea\xed\xed\x43\x7d\x5d\x3d\
+\xac\x56\x2b\xeb\x2a\x14\x62\xb1\x98\xfa\x4d\xa0\xec\x72\x69\x40\
+\x5e\x5e\x6e\xff\xa2\x79\x31\xa7\xcd\x60\xe0\x5e\xc1\xab\xae\x54\
+\x6b\x9b\x9a\xee\x9f\x49\x4c\x4c\x6c\x66\x8b\xf4\x45\x98\x9d\x9d\
+\x05\x9f\xcf\xc7\xd6\xd6\x16\xf1\xdb\x59\x2e\xbb\x24\x48\x4e\x3e\
+\x31\xf0\x6e\x79\x39\xb3\xb5\x55\x8f\x7b\x77\xef\x60\x64\x78\x64\
+\x40\x22\x91\xbc\x56\xab\xd5\x9d\x9b\x9b\x9b\xfe\x6e\x36\x02\x07\
+\x45\x51\xbe\x61\x18\x06\x3e\x8a\x8b\x8b\x82\xa6\xa6\x26\x5e\x3c\
+\x34\xe8\x49\x78\x44\x38\xc9\xcf\xcf\x25\xfd\x4f\x7a\x6d\x00\x62\
+\xb4\x5a\x6d\xa3\xc3\xe1\x20\x34\x4d\x13\x8f\xc7\x43\x38\x0a\x0b\
+\x0b\x7d\xe7\x96\x96\x16\x2f\x4f\x91\xa0\xf0\x53\x95\xab\xfa\x08\
+\x45\x9d\xee\xea\x7c\x04\x99\x2c\x16\xd9\xe7\xb2\x19\xbd\xbe\xed\
+\x06\x00\x6b\x52\x52\x12\x84\x42\xa1\xef\x36\x76\x61\xc7\x01\x07\
+\x61\xf1\x2b\xb9\x58\x74\x9c\x61\x3c\x67\x4d\x6f\x17\x10\x15\x15\
+\x85\xec\xec\x2c\x8c\x8f\xbf\xec\x9b\x9c\x98\x1c\x02\x40\x64\x32\
+\x19\x97\x95\x2d\xb7\x00\x73\x73\x73\x30\x9b\xcd\x10\x89\x44\x60\
+\xff\x07\x38\xfc\x5c\x2e\x97\xd3\xe1\x74\x90\xb4\xb4\x34\xea\x54\
+\xea\x49\x8c\x8e\x3d\x37\x75\x76\x74\x71\xb7\xfb\x02\x0b\x04\x02\
+\x70\x74\x77\x77\x43\xaf\xd7\xa3\xa6\xa6\x06\x6c\x1c\xb0\x7b\xdb\
+\x5d\x70\x8e\xda\x8d\x06\xb5\x52\x79\xb8\x92\xa6\x3d\xcb\x6c\x61\
+\x55\xf3\x6f\xe6\x17\x80\x6d\x6c\x36\xdb\x55\x1e\x8f\xd7\xca\x96\
+\xc8\x59\xfe\x69\x9d\x1b\xce\x99\xed\x07\x39\xf7\x48\x74\xc8\xf9\
+\xb8\x6a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x03\x36\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -12644,6 +12699,49 @@
\xf8\x02\xad\x15\x5d\xd7\x33\x2a\xdb\x17\x81\x28\x93\xdc\xf1\x3e\
\x99\xef\x2c\x89\x18\x25\x60\x1e\x87\xcd\x7f\xa4\xf5\xbb\xd8\x41\
\x74\xba\x21\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
+\x00\x00\x02\x84\
+\x89\
+\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
+\x00\x00\x10\x00\x00\x00\x10\x08\x03\x00\x00\x00\x28\x2d\x0f\x53\
+\x00\x00\x00\x03\x73\x42\x49\x54\x08\x08\x08\xdb\xe1\x4f\xe0\x00\
+\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\
+\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\
+\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\
+\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x35\x50\x4c\x54\
+\x45\xff\xff\xff\x00\x00\x00\x3a\x42\x3a\x00\x00\x00\x2c\x32\x2c\
+\x00\x00\x00\x20\x20\x20\x00\x00\x00\x15\x15\x12\x00\x00\x00\x05\
+\x05\x05\x3d\x3e\x3c\x00\x00\x00\x3d\x3e\x3b\x63\x63\x63\x00\x00\
+\x00\x01\x01\x01\x30\x31\x2f\x02\x02\x02\x24\x25\x24\x02\x02\x02\
+\x18\x18\x17\x04\x04\x04\x0d\x0d\x0d\x01\x01\x01\x02\x02\x02\x04\
+\x04\x04\x05\x05\x05\x06\x06\x06\x07\x07\x07\x08\x08\x08\x0c\x0c\
+\x0c\x0d\x0d\x0d\x10\x10\x10\x14\x14\x13\x14\x14\x14\x19\x19\x19\
+\x20\x20\x20\x21\x22\x21\x22\x22\x22\x27\x27\x26\x2f\x30\x2e\x31\
+\x31\x31\x32\x33\x31\x37\x37\x37\x3a\x3a\x3a\x3d\x3e\x3b\x3f\x3f\
+\x3f\x41\x41\x41\x41\x42\x3f\x44\x45\x43\x45\x45\x45\x47\x47\x47\
+\x4a\x4a\x4a\x4a\x4b\x48\x4b\x4b\x4b\x4d\x4e\x4b\x4e\x4e\x4e\x4e\
+\x4f\x4d\x50\x50\x50\x53\x53\x53\x54\x54\x54\x56\x56\x55\x56\x57\
+\x54\x58\x59\x56\x59\x59\x59\x5b\x5b\x5b\x64\x64\x63\x64\x66\x62\
+\x66\x68\x64\x68\x68\x68\x6a\x6a\x6a\x6a\x6b\x67\x71\x71\x71\x75\
+\x75\x75\x79\x79\x79\x7a\x7a\x7a\x84\x84\x84\x86\x86\x86\x8a\x8a\
+\x8a\x90\x90\x90\x9f\x9f\x9f\xac\xac\xac\xae\xae\xae\xb2\xb2\xb1\
+\xb7\xb8\xb7\xc1\xc1\xc1\xc4\xc5\xc4\xc6\xc6\xc6\xcf\xd0\xcf\xd4\
+\xd4\xd4\xde\xde\xde\xe1\xe1\xe1\xe7\xe7\xe7\xe9\xe9\xe9\xea\xea\
+\xea\xed\xed\xed\xf0\xf0\xf0\xf3\xf3\xf3\xf4\xf4\xf4\xfa\xfa\xfa\
+\xfb\xfb\xfb\xfc\xfc\xfc\x75\x4a\xf7\xaa\x00\x00\x00\x18\x74\x52\
+\x4e\x53\x00\x1f\x1f\x2e\x2e\x3f\x3f\x54\x54\x65\x65\xb8\xca\xca\
+\xd4\xe5\xe5\xe5\xf0\xf0\xf8\xf8\xfd\xfd\x0a\xa9\xac\x9a\x00\x00\
+\x00\x9d\x49\x44\x41\x54\x18\x19\x9d\xc1\x03\x16\x02\x01\x00\x05\
+\xc0\x9f\x6d\xdb\xb6\x6d\xdb\x76\x5b\x7b\xff\x23\x84\x3d\x40\xef\
+\x35\x03\xfc\x89\x2e\x0a\x53\x04\xf8\x62\xca\xea\xe3\x41\xbf\x37\
+\xec\xb4\x7d\xf8\x60\x2b\x8a\x33\x62\x52\x1f\x11\xf3\xa2\x1b\x6f\
+\x5c\x55\xaa\xb6\x7f\xdc\x17\x04\x79\xc9\xd9\x01\xf0\x35\xd1\x4c\
+\xb2\x74\x78\x3c\xc9\x5b\x21\x62\x04\x20\xf1\x47\x42\xc1\xe0\x94\
+\x24\x9f\x53\x8f\x53\x0b\x80\xa7\xb6\x58\x6d\x89\xc3\xf5\x74\x3d\
+\xe6\x74\x3a\xbc\x71\x94\x06\xfd\xf6\xbc\x29\xaf\xcf\x3b\x97\x1e\
+\x1f\x2c\xb9\x23\xbe\xcc\xc7\x2a\xab\x46\xc0\x80\x2f\x86\xd4\x9b\
+\xae\x36\xbb\xad\x6a\xd6\x04\x0a\x4d\x68\xa6\x88\xf1\xdb\x0b\x5c\
+\x72\x1c\x18\xbd\x2b\x0f\x2f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
+\x42\x60\x82\
\x00\x00\x03\xd9\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@@ -48518,6 +48616,11 @@
\x00\x73\
\x00\x79\x00\x73\x00\x74\x00\x65\x00\x6d\x00\x5f\x00\x6d\x00\x65\x00\x64\x00\x69\x00\x61\x00\x6d\x00\x61\x00\x6e\x00\x61\x00\x67\
\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x1e\
+\x01\x34\xc5\x07\
+\x00\x73\
+\x00\x79\x00\x73\x00\x74\x00\x65\x00\x6d\x00\x5f\x00\x63\x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x67\x00\x75\x00\x72\x00\x65\x00\x5f\
+\x00\x73\x00\x68\x00\x6f\x00\x72\x00\x74\x00\x63\x00\x75\x00\x74\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x15\
\x0a\xa4\x46\xa7\
\x00\x73\
@@ -48543,6 +48646,11 @@
\x00\x73\
\x00\x65\x00\x74\x00\x74\x00\x69\x00\x6e\x00\x67\x00\x73\x00\x5f\x00\x70\x00\x6c\x00\x75\x00\x67\x00\x69\x00\x6e\x00\x5f\x00\x6c\
\x00\x69\x00\x73\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
+\x00\x12\
+\x0d\x73\x66\x27\
+\x00\x63\
+\x00\x6c\x00\x65\x00\x61\x00\x72\x00\x5f\x00\x73\x00\x68\x00\x6f\x00\x72\x00\x74\x00\x63\x00\x75\x00\x74\x00\x2e\x00\x70\x00\x6e\
+\x00\x67\
\x00\x17\
\x09\x41\x2f\xc7\
\x00\x73\
@@ -48907,113 +49015,115 @@
qt_resource_struct = "\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x01\
-\x00\x00\x00\x98\x00\x02\x00\x00\x00\x06\x00\x00\x00\x66\
-\x00\x00\x00\x3a\x00\x02\x00\x00\x00\x04\x00\x00\x00\x62\
-\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x5f\
-\x00\x00\x00\x5e\x00\x02\x00\x00\x00\x10\x00\x00\x00\x4f\
-\x00\x00\x00\x4e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x4d\
-\x00\x00\x00\x84\x00\x02\x00\x00\x00\x09\x00\x00\x00\x44\
-\x00\x00\x00\x14\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x39\
-\x00\x00\x00\xa6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x36\
-\x00\x00\x00\xe2\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x2c\
+\x00\x00\x00\x98\x00\x02\x00\x00\x00\x06\x00\x00\x00\x68\
+\x00\x00\x00\x3a\x00\x02\x00\x00\x00\x04\x00\x00\x00\x64\
+\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x61\
+\x00\x00\x00\x5e\x00\x02\x00\x00\x00\x10\x00\x00\x00\x51\
+\x00\x00\x00\x4e\x00\x02\x00\x00\x00\x02\x00\x00\x00\x4f\
+\x00\x00\x00\x84\x00\x02\x00\x00\x00\x09\x00\x00\x00\x46\
+\x00\x00\x00\x14\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x3b\
+\x00\x00\x00\xa6\x00\x02\x00\x00\x00\x03\x00\x00\x00\x38\
+\x00\x00\x00\xe2\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x2c\
\x00\x00\x00\x6e\x00\x02\x00\x00\x00\x03\x00\x00\x00\x29\
\x00\x00\x01\x04\x00\x02\x00\x00\x00\x03\x00\x00\x00\x26\
\x00\x00\x00\xcc\x00\x02\x00\x00\x00\x06\x00\x00\x00\x20\
\x00\x00\x00\x26\x00\x02\x00\x00\x00\x04\x00\x00\x00\x1c\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x12\
\x00\x00\x00\xb8\x00\x02\x00\x00\x00\x02\x00\x00\x00\x10\
-\x00\x00\x05\x20\x00\x00\x00\x00\x00\x01\x00\x05\xce\x8a\
-\x00\x00\x04\xee\x00\x00\x00\x00\x00\x01\x00\x03\x2d\xa8\
-\x00\x00\x0f\x38\x00\x00\x00\x00\x00\x01\x00\x0b\xb1\xbb\
-\x00\x00\x0e\xe8\x00\x00\x00\x00\x00\x01\x00\x0b\xac\x5f\
-\x00\x00\x0f\xd2\x00\x00\x00\x00\x00\x01\x00\x0b\xbb\x7e\
-\x00\x00\x0e\xbe\x00\x00\x00\x00\x00\x01\x00\x0b\xa9\xc1\
-\x00\x00\x0f\xfe\x00\x00\x00\x00\x00\x01\x00\x0b\xbe\xb1\
-\x00\x00\x0f\xa8\x00\x00\x00\x00\x00\x01\x00\x0b\xb9\x06\
-\x00\x00\x0f\x0e\x00\x00\x00\x00\x00\x01\x00\x0b\xaf\x39\
-\x00\x00\x10\x24\x00\x00\x00\x00\x00\x01\x00\x0b\xc1\x85\
-\x00\x00\x0f\x84\x00\x00\x00\x00\x00\x01\x00\x0b\xb6\x09\
-\x00\x00\x0f\x5e\x00\x00\x00\x00\x00\x01\x00\x0b\xb3\xf2\
-\x00\x00\x0c\x4a\x00\x00\x00\x00\x00\x01\x00\x0b\x83\x87\
-\x00\x00\x0c\x7e\x00\x00\x00\x00\x00\x01\x00\x0b\x86\xe9\
-\x00\x00\x0c\xa6\x00\x00\x00\x00\x00\x01\x00\x0b\x89\x87\
-\x00\x00\x0c\xd4\x00\x00\x00\x00\x00\x01\x00\x0b\x8c\x9b\
-\x00\x00\x04\x48\x00\x00\x00\x00\x00\x01\x00\x03\x22\x29\
-\x00\x00\x04\x92\x00\x00\x00\x00\x00\x01\x00\x03\x27\x6d\
-\x00\x00\x03\xfe\x00\x00\x00\x00\x00\x01\x00\x03\x1d\x0f\
-\x00\x00\x04\xbc\x00\x00\x00\x00\x00\x01\x00\x03\x2a\x38\
-\x00\x00\x04\x22\x00\x00\x00\x00\x00\x01\x00\x03\x1f\xb6\
-\x00\x00\x04\x70\x00\x00\x00\x00\x00\x01\x00\x03\x24\xc9\
+\x00\x00\x05\x8c\x00\x00\x00\x00\x00\x01\x00\x05\xd4\x65\
+\x00\x00\x05\x5a\x00\x00\x00\x00\x00\x01\x00\x03\x33\x83\
+\x00\x00\x0f\xa4\x00\x00\x00\x00\x00\x01\x00\x0b\xb7\x96\
+\x00\x00\x0f\x54\x00\x00\x00\x00\x00\x01\x00\x0b\xb2\x3a\
+\x00\x00\x10\x3e\x00\x00\x00\x00\x00\x01\x00\x0b\xc1\x59\
+\x00\x00\x0f\x2a\x00\x00\x00\x00\x00\x01\x00\x0b\xaf\x9c\
+\x00\x00\x10\x6a\x00\x00\x00\x00\x00\x01\x00\x0b\xc4\x8c\
+\x00\x00\x10\x14\x00\x00\x00\x00\x00\x01\x00\x0b\xbe\xe1\
+\x00\x00\x0f\x7a\x00\x00\x00\x00\x00\x01\x00\x0b\xb5\x14\
+\x00\x00\x10\x90\x00\x00\x00\x00\x00\x01\x00\x0b\xc7\x60\
+\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x01\x00\x0b\xbb\xe4\
+\x00\x00\x0f\xca\x00\x00\x00\x00\x00\x01\x00\x0b\xb9\xcd\
+\x00\x00\x0c\xb6\x00\x00\x00\x00\x00\x01\x00\x0b\x89\x62\
+\x00\x00\x0c\xea\x00\x00\x00\x00\x00\x01\x00\x0b\x8c\xc4\
+\x00\x00\x0d\x12\x00\x00\x00\x00\x00\x01\x00\x0b\x8f\x62\
+\x00\x00\x0d\x40\x00\x00\x00\x00\x00\x01\x00\x0b\x92\x76\
+\x00\x00\x04\xb4\x00\x00\x00\x00\x00\x01\x00\x03\x28\x04\
+\x00\x00\x04\xfe\x00\x00\x00\x00\x00\x01\x00\x03\x2d\x48\
+\x00\x00\x04\x6a\x00\x00\x00\x00\x00\x01\x00\x03\x22\xea\
+\x00\x00\x05\x28\x00\x00\x00\x00\x00\x01\x00\x03\x30\x13\
+\x00\x00\x04\x8e\x00\x00\x00\x00\x00\x01\x00\x03\x25\x91\
+\x00\x00\x04\xdc\x00\x00\x00\x00\x00\x01\x00\x03\x2a\xa4\
\x00\x00\x01\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\
\x00\x00\x01\x50\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\
-\x00\x00\x08\x58\x00\x00\x00\x00\x00\x01\x00\x09\xdd\xa3\
-\x00\x00\x08\x88\x00\x00\x00\x00\x00\x01\x00\x0a\x4c\xe8\
-\x00\x00\x08\xa8\x00\x00\x00\x00\x00\x01\x00\x0a\x53\x99\
+\x00\x00\x08\xc4\x00\x00\x00\x00\x00\x01\x00\x09\xe3\x7e\
+\x00\x00\x08\xf4\x00\x00\x00\x00\x00\x01\x00\x0a\x52\xc3\
+\x00\x00\x09\x14\x00\x00\x00\x00\x00\x01\x00\x0a\x59\x74\
+\x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x03\x02\x0d\
\x00\x00\x02\x26\x00\x00\x00\x00\x00\x01\x00\x02\xfd\x0c\
-\x00\x00\x03\xb4\x00\x00\x00\x00\x00\x01\x00\x03\x16\x7a\
+\x00\x00\x04\x20\x00\x00\x00\x00\x00\x01\x00\x03\x1c\x55\
\x00\x00\x02\x4c\x00\x00\x00\x00\x00\x01\x00\x03\x00\x3d\
-\x00\x00\x03\x1e\x00\x00\x00\x00\x00\x01\x00\x03\x0a\x6d\
-\x00\x00\x03\x80\x00\x00\x00\x00\x00\x01\x00\x03\x12\x9d\
-\x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x03\x0f\x79\
-\x00\x00\x03\xda\x00\x00\x00\x00\x00\x01\x00\x03\x19\x5c\
-\x00\x00\x02\x80\x00\x00\x00\x00\x00\x01\x00\x03\x02\x0d\
-\x00\x00\x02\xe6\x00\x00\x00\x00\x00\x01\x00\x03\x07\xf7\
-\x00\x00\x02\xb0\x00\x00\x00\x00\x00\x01\x00\x03\x05\x47\
-\x00\x00\x05\x76\x00\x00\x00\x00\x00\x01\x00\x08\x72\x0a\
-\x00\x00\x05\x96\x00\x00\x00\x00\x00\x01\x00\x08\x75\xe7\
-\x00\x00\x05\x50\x00\x00\x00\x00\x00\x01\x00\x08\x6f\x6c\
-\x00\x00\x0e\x3a\x00\x00\x00\x00\x00\x01\x00\x0b\xa3\x04\
-\x00\x00\x0e\x94\x00\x00\x00\x00\x00\x01\x00\x0b\xa7\xbd\
-\x00\x00\x0d\x20\x00\x00\x00\x00\x00\x01\x00\x0b\x91\x6e\
-\x00\x00\x0d\xac\x00\x00\x00\x00\x00\x01\x00\x0b\x97\xfc\
-\x00\x00\x0e\x16\x00\x00\x00\x00\x00\x01\x00\x0b\x9f\xd1\
-\x00\x00\x0d\x76\x00\x00\x00\x00\x00\x01\x00\x0b\x96\x03\
-\x00\x00\x0d\xd0\x00\x00\x00\x00\x00\x01\x00\x0b\x9a\x8d\
-\x00\x00\x0d\xf2\x00\x00\x00\x00\x00\x01\x00\x0b\x9c\xa0\
-\x00\x00\x0e\x70\x00\x00\x00\x00\x00\x01\x00\x0b\xa4\xec\
-\x00\x00\x0c\xf8\x00\x00\x00\x00\x00\x01\x00\x0b\x8e\xb2\
-\x00\x00\x0d\x54\x00\x00\x00\x00\x00\x01\x00\x0b\x93\x65\
-\x00\x00\x07\xe0\x00\x00\x00\x00\x00\x01\x00\x09\xd7\x31\
-\x00\x00\x07\x64\x00\x00\x00\x00\x00\x01\x00\x09\xcd\xd6\
-\x00\x00\x07\x08\x00\x00\x00\x00\x00\x01\x00\x09\xc8\x14\
-\x00\x00\x07\x92\x00\x00\x00\x00\x00\x01\x00\x09\xd1\x8c\
-\x00\x00\x06\xe0\x00\x00\x00\x00\x00\x01\x00\x09\xc5\x16\
-\x00\x00\x07\x2e\x00\x00\x00\x00\x00\x01\x00\x09\xcb\xab\
-\x00\x00\x07\xba\x00\x00\x00\x00\x00\x01\x00\x09\xd4\xce\
-\x00\x00\x08\x30\x00\x00\x00\x00\x00\x01\x00\x09\xdb\x9d\
-\x00\x00\x08\x08\x00\x00\x00\x00\x00\x01\x00\x09\xd9\x83\
-\x00\x00\x0b\x58\x00\x00\x00\x00\x00\x01\x00\x0b\x72\xdb\
-\x00\x00\x0b\x7c\x00\x00\x00\x00\x00\x01\x00\x0b\x75\xd9\
-\x00\x00\x0b\x34\x00\x00\x00\x00\x00\x01\x00\x0b\x6f\xef\
-\x00\x00\x09\x20\x00\x00\x00\x00\x00\x01\x00\x0b\x38\xb9\
-\x00\x00\x09\x76\x00\x00\x00\x00\x00\x01\x00\x0b\x3e\x1f\
-\x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x0b\x4f\xf0\
-\x00\x00\x09\x96\x00\x00\x00\x00\x00\x01\x00\x0b\x42\x12\
-\x00\x00\x0a\x90\x00\x00\x00\x00\x00\x01\x00\x0b\x60\xae\
-\x00\x00\x09\xea\x00\x00\x00\x00\x00\x01\x00\x0b\x48\xa4\
-\x00\x00\x09\xbc\x00\x00\x00\x00\x00\x01\x00\x0b\x46\x24\
-\x00\x00\x0b\x14\x00\x00\x00\x00\x00\x01\x00\x0b\x6c\xe3\
-\x00\x00\x09\x02\x00\x00\x00\x00\x00\x01\x00\x0b\x36\x17\
-\x00\x00\x09\x48\x00\x00\x00\x00\x00\x01\x00\x0b\x3c\x17\
-\x00\x00\x0a\xba\x00\x00\x00\x00\x00\x01\x00\x0b\x62\xe3\
-\x00\x00\x0a\xe8\x00\x00\x00\x00\x00\x01\x00\x0b\x69\xa1\
-\x00\x00\x08\xde\x00\x00\x00\x00\x00\x01\x00\x0b\x32\x9e\
-\x00\x00\x0a\x0c\x00\x00\x00\x00\x00\x01\x00\x0b\x4c\xa8\
-\x00\x00\x0a\x60\x00\x00\x00\x00\x00\x01\x00\x0b\x57\x06\
+\x00\x00\x03\x60\x00\x00\x00\x00\x00\x01\x00\x03\x0d\xc0\
+\x00\x00\x03\xec\x00\x00\x00\x00\x00\x01\x00\x03\x18\x78\
+\x00\x00\x03\x8c\x00\x00\x00\x00\x00\x01\x00\x03\x12\xcc\
+\x00\x00\x04\x46\x00\x00\x00\x00\x00\x01\x00\x03\x1f\x37\
+\x00\x00\x02\xc2\x00\x00\x00\x00\x00\x01\x00\x03\x05\x60\
+\x00\x00\x03\x28\x00\x00\x00\x00\x00\x01\x00\x03\x0b\x4a\
+\x00\x00\x03\xc2\x00\x00\x00\x00\x00\x01\x00\x03\x15\xf0\
+\x00\x00\x02\xf2\x00\x00\x00\x00\x00\x01\x00\x03\x08\x9a\
+\x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x08\x77\xe5\
+\x00\x00\x06\x02\x00\x00\x00\x00\x00\x01\x00\x08\x7b\xc2\
+\x00\x00\x05\xbc\x00\x00\x00\x00\x00\x01\x00\x08\x75\x47\
+\x00\x00\x0e\xa6\x00\x00\x00\x00\x00\x01\x00\x0b\xa8\xdf\
+\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x01\x00\x0b\xad\x98\
+\x00\x00\x0d\x8c\x00\x00\x00\x00\x00\x01\x00\x0b\x97\x49\
+\x00\x00\x0e\x18\x00\x00\x00\x00\x00\x01\x00\x0b\x9d\xd7\
+\x00\x00\x0e\x82\x00\x00\x00\x00\x00\x01\x00\x0b\xa5\xac\
+\x00\x00\x0d\xe2\x00\x00\x00\x00\x00\x01\x00\x0b\x9b\xde\
+\x00\x00\x0e\x3c\x00\x00\x00\x00\x00\x01\x00\x0b\xa0\x68\
+\x00\x00\x0e\x5e\x00\x00\x00\x00\x00\x01\x00\x0b\xa2\x7b\
+\x00\x00\x0e\xdc\x00\x00\x00\x00\x00\x01\x00\x0b\xaa\xc7\
+\x00\x00\x0d\x64\x00\x00\x00\x00\x00\x01\x00\x0b\x94\x8d\
+\x00\x00\x0d\xc0\x00\x00\x00\x00\x00\x01\x00\x0b\x99\x40\
+\x00\x00\x08\x4c\x00\x00\x00\x00\x00\x01\x00\x09\xdd\x0c\
+\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x09\xd3\xb1\
+\x00\x00\x07\x74\x00\x00\x00\x00\x00\x01\x00\x09\xcd\xef\
+\x00\x00\x07\xfe\x00\x00\x00\x00\x00\x01\x00\x09\xd7\x67\
+\x00\x00\x07\x4c\x00\x00\x00\x00\x00\x01\x00\x09\xca\xf1\
+\x00\x00\x07\x9a\x00\x00\x00\x00\x00\x01\x00\x09\xd1\x86\
+\x00\x00\x08\x26\x00\x00\x00\x00\x00\x01\x00\x09\xda\xa9\
+\x00\x00\x08\x9c\x00\x00\x00\x00\x00\x01\x00\x09\xe1\x78\
+\x00\x00\x08\x74\x00\x00\x00\x00\x00\x01\x00\x09\xdf\x5e\
+\x00\x00\x0b\xc4\x00\x00\x00\x00\x00\x01\x00\x0b\x78\xb6\
+\x00\x00\x0b\xe8\x00\x00\x00\x00\x00\x01\x00\x0b\x7b\xb4\
+\x00\x00\x0b\xa0\x00\x00\x00\x00\x00\x01\x00\x0b\x75\xca\
+\x00\x00\x09\x8c\x00\x00\x00\x00\x00\x01\x00\x0b\x3e\x94\
+\x00\x00\x09\xe2\x00\x00\x00\x00\x00\x01\x00\x0b\x43\xfa\
+\x00\x00\x0a\x9a\x00\x00\x00\x00\x00\x01\x00\x0b\x55\xcb\
+\x00\x00\x0a\x02\x00\x00\x00\x00\x00\x01\x00\x0b\x47\xed\
+\x00\x00\x0a\xfc\x00\x00\x00\x00\x00\x01\x00\x0b\x66\x89\
+\x00\x00\x0a\x56\x00\x00\x00\x00\x00\x01\x00\x0b\x4e\x7f\
+\x00\x00\x0a\x28\x00\x00\x00\x00\x00\x01\x00\x0b\x4b\xff\
+\x00\x00\x0b\x80\x00\x00\x00\x00\x00\x01\x00\x0b\x72\xbe\
+\x00\x00\x09\x6e\x00\x00\x00\x00\x00\x01\x00\x0b\x3b\xf2\
+\x00\x00\x09\xb4\x00\x00\x00\x00\x00\x01\x00\x0b\x41\xf2\
+\x00\x00\x0b\x26\x00\x00\x00\x00\x00\x01\x00\x0b\x68\xbe\
+\x00\x00\x0b\x54\x00\x00\x00\x00\x00\x01\x00\x0b\x6f\x7c\
+\x00\x00\x09\x4a\x00\x00\x00\x00\x00\x01\x00\x0b\x38\x79\
+\x00\x00\x0a\x78\x00\x00\x00\x00\x00\x01\x00\x0b\x52\x83\
+\x00\x00\x0a\xcc\x00\x00\x00\x00\x00\x01\x00\x0b\x5c\xe1\
\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xd8\
\x00\x00\x01\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x09\x05\
\x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x02\xfa\x36\
-\x00\x00\x0b\x9c\x00\x00\x00\x00\x00\x01\x00\x0b\x78\x5c\
-\x00\x00\x0b\xfe\x00\x00\x00\x00\x00\x01\x00\x0b\x7e\xd2\
-\x00\x00\x0b\xd0\x00\x00\x00\x00\x00\x01\x00\x0b\x7b\xbe\
-\x00\x00\x0c\x26\x00\x00\x00\x00\x00\x01\x00\x0b\x81\x70\
-\x00\x00\x06\x48\x00\x00\x00\x00\x00\x01\x00\x08\xb2\xf5\
-\x00\x00\x05\xe8\x00\x00\x00\x00\x00\x01\x00\x08\x83\xb5\
-\x00\x00\x05\xb8\x00\x00\x00\x00\x00\x01\x00\x08\x79\x21\
-\x00\x00\x06\x18\x00\x00\x00\x00\x00\x01\x00\x08\x98\xea\
-\x00\x00\x06\x78\x00\x00\x00\x00\x00\x01\x00\x08\xb7\x12\
-\x00\x00\x06\xac\x00\x00\x00\x00\x00\x01\x00\x09\x7f\xab\
+\x00\x00\x0c\x08\x00\x00\x00\x00\x00\x01\x00\x0b\x7e\x37\
+\x00\x00\x0c\x6a\x00\x00\x00\x00\x00\x01\x00\x0b\x84\xad\
+\x00\x00\x0c\x3c\x00\x00\x00\x00\x00\x01\x00\x0b\x81\x99\
+\x00\x00\x0c\x92\x00\x00\x00\x00\x00\x01\x00\x0b\x87\x4b\
+\x00\x00\x06\xb4\x00\x00\x00\x00\x00\x01\x00\x08\xb8\xd0\
+\x00\x00\x06\x54\x00\x00\x00\x00\x00\x01\x00\x08\x89\x90\
+\x00\x00\x06\x24\x00\x00\x00\x00\x00\x01\x00\x08\x7e\xfc\
+\x00\x00\x06\x84\x00\x00\x00\x00\x00\x01\x00\x08\x9e\xc5\
+\x00\x00\x06\xe4\x00\x00\x00\x00\x00\x01\x00\x08\xbc\xed\
+\x00\x00\x07\x18\x00\x00\x00\x00\x00\x01\x00\x09\x85\x86\
"
def qInitResources():
=== modified file 'openlp/core/ui/__init__.py'
--- openlp/core/ui/__init__.py 2010-10-16 22:50:36 +0000
+++ openlp/core/ui/__init__.py 2010-10-28 06:57:50 +0000
@@ -51,6 +51,7 @@
from aboutform import AboutForm
from pluginform import PluginForm
from settingsform import SettingsForm
+from shortcutlistform import ShortcutListForm
from mediadockmanager import MediaDockManager
from servicemanager import ServiceManager
from thememanager import ThemeManager
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2010-10-27 17:42:10 +0000
+++ openlp/core/ui/mainwindow.py 2010-10-28 06:57:50 +0000
@@ -29,10 +29,12 @@
from PyQt4 import QtCore, QtGui
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \
- ThemeManager, SlideController, PluginForm, MediaDockManager
+ ThemeManager, SlideController, PluginForm, MediaDockManager, \
+ ShortcutListForm
from openlp.core.lib import RenderManager, build_icon, OpenLPDockWidget, \
SettingsManager, PluginManager, Receiver, translate
-from openlp.core.utils import AppLocation, add_actions, LanguageManager
+from openlp.core.utils import AppLocation, add_actions, LanguageManager, \
+ ActionList
log = logging.getLogger(__name__)
@@ -98,6 +100,12 @@
self.screens)
self.LiveController = SlideController(self, self.settingsmanager,
self.screens, True)
+ previewVisible = QtCore.QSettings().value(
+ u'user interface/preview panel', QtCore.QVariant(True)).toBool()
+ self.PreviewController.Panel.setVisible(previewVisible)
+ liveVisible = QtCore.QSettings().value(u'user interface/live panel',
+ QtCore.QVariant(True)).toBool()
+ self.LiveController.Panel.setVisible(liveVisible)
# Create menu
self.MenuBar = QtGui.QMenuBar(MainWindow)
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
@@ -177,29 +185,34 @@
self.FileNewItem = QtGui.QAction(MainWindow)
self.FileNewItem.setIcon(build_icon(u':/general/general_new.png'))
self.FileNewItem.setObjectName(u'FileNewItem')
+ MainWindow.actionList.add_action(self.FileNewItem, u'File')
self.FileOpenItem = QtGui.QAction(MainWindow)
self.FileOpenItem.setIcon(build_icon(u':/general/general_open.png'))
self.FileOpenItem.setObjectName(u'FileOpenItem')
+ MainWindow.actionList.add_action(self.FileOpenItem, u'File')
self.FileSaveItem = QtGui.QAction(MainWindow)
self.FileSaveItem.setIcon(build_icon(u':/general/general_save.png'))
self.FileSaveItem.setObjectName(u'FileSaveItem')
+ MainWindow.actionList.add_action(self.FileSaveItem, u'File')
self.FileSaveAsItem = QtGui.QAction(MainWindow)
self.FileSaveAsItem.setObjectName(u'FileSaveAsItem')
+ MainWindow.actionList.add_action(self.FileSaveAsItem, u'File')
self.FileExitItem = QtGui.QAction(MainWindow)
self.FileExitItem.setIcon(build_icon(u':/system/system_exit.png'))
self.FileExitItem.setObjectName(u'FileExitItem')
+ MainWindow.actionList.add_action(self.FileExitItem, u'File')
self.ImportThemeItem = QtGui.QAction(MainWindow)
self.ImportThemeItem.setObjectName(u'ImportThemeItem')
+ MainWindow.actionList.add_action(self.ImportThemeItem, u'Import')
self.ImportLanguageItem = QtGui.QAction(MainWindow)
self.ImportLanguageItem.setObjectName(u'ImportLanguageItem')
+ MainWindow.actionList.add_action(self.ImportLanguageItem, u'Import')
self.ExportThemeItem = QtGui.QAction(MainWindow)
self.ExportThemeItem.setObjectName(u'ExportThemeItem')
+ MainWindow.actionList.add_action(self.ExportThemeItem, u'Export')
self.ExportLanguageItem = QtGui.QAction(MainWindow)
self.ExportLanguageItem.setObjectName(u'ExportLanguageItem')
- self.SettingsConfigureItem = QtGui.QAction(MainWindow)
- self.SettingsConfigureItem.setIcon(
- build_icon(u':/system/system_settings.png'))
- self.SettingsConfigureItem.setObjectName(u'SettingsConfigureItem')
+ MainWindow.actionList.add_action(self.ExportLanguageItem, u'Export')
self.ViewMediaManagerItem = QtGui.QAction(MainWindow)
self.ViewMediaManagerItem.setCheckable(True)
self.ViewMediaManagerItem.setChecked(self.MediaManagerDock.isVisible())
@@ -212,6 +225,7 @@
self.ViewThemeManagerItem.setIcon(
build_icon(u':/system/system_thememanager.png'))
self.ViewThemeManagerItem.setObjectName(u'ViewThemeManagerItem')
+ MainWindow.actionList.add_action(self.ViewMediaManagerItem, u'View')
self.ViewServiceManagerItem = QtGui.QAction(MainWindow)
self.ViewServiceManagerItem.setCheckable(True)
self.ViewServiceManagerItem.setChecked(
@@ -219,71 +233,87 @@
self.ViewServiceManagerItem.setIcon(
build_icon(u':/system/system_servicemanager.png'))
self.ViewServiceManagerItem.setObjectName(u'ViewServiceManagerItem')
- self.SettingsPluginListItem = QtGui.QAction(MainWindow)
- self.SettingsPluginListItem.setIcon(
- build_icon(u':/system/settings_plugin_list.png'))
- self.SettingsPluginListItem.setObjectName(u'SettingsPluginListItem')
- self.HelpDocumentationItem = QtGui.QAction(MainWindow)
- self.HelpDocumentationItem.setIcon(
- build_icon(u':/system/system_help_contents.png'))
- self.HelpDocumentationItem.setObjectName(u'HelpDocumentationItem')
- self.HelpDocumentationItem.setEnabled(False)
- self.HelpAboutItem = QtGui.QAction(MainWindow)
- self.HelpAboutItem.setIcon(
- build_icon(u':/system/system_about.png'))
- self.HelpAboutItem.setObjectName(u'HelpAboutItem')
- self.HelpOnlineHelpItem = QtGui.QAction(MainWindow)
- self.HelpOnlineHelpItem.setObjectName(u'HelpOnlineHelpItem')
- self.HelpOnlineHelpItem.setEnabled(False)
- self.HelpWebSiteItem = QtGui.QAction(MainWindow)
- self.HelpWebSiteItem.setObjectName(u'HelpWebSiteItem')
- #i18n Language Items
- self.AutoLanguageItem = QtGui.QAction(MainWindow)
- self.AutoLanguageItem.setObjectName(u'AutoLanguageItem')
- self.AutoLanguageItem.setCheckable(True)
- self.LanguageGroup = QtGui.QActionGroup(MainWindow)
- qmList = LanguageManager.get_qm_list()
- savedLanguage = LanguageManager.get_language()
- self.AutoLanguageItem.setChecked(LanguageManager.auto_language)
- for key in sorted(qmList.keys()):
- languageItem = QtGui.QAction(MainWindow)
- languageItem.setObjectName(key)
- languageItem.setCheckable(True)
- if qmList[key] == savedLanguage:
- languageItem.setChecked(True)
- add_actions(self.LanguageGroup, [languageItem])
- self.LanguageGroup.setDisabled(LanguageManager.auto_language)
- self.ToolsAddToolItem = QtGui.QAction(MainWindow)
- self.ToolsAddToolItem.setIcon(build_icon(u':/tools/tools_add.png'))
- self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem')
+ MainWindow.actionList.add_action(self.ViewServiceManagerItem, u'View')
self.ViewPreviewPanel = QtGui.QAction(MainWindow)
self.ViewPreviewPanel.setCheckable(True)
- previewVisible = QtCore.QSettings().value(
- u'user interface/preview panel', QtCore.QVariant(True)).toBool()
self.ViewPreviewPanel.setChecked(previewVisible)
self.ViewPreviewPanel.setObjectName(u'ViewPreviewPanel')
- self.PreviewController.Panel.setVisible(previewVisible)
+ MainWindow.actionList.add_action(self.ViewPreviewPanel, u'View')
self.ViewLivePanel = QtGui.QAction(MainWindow)
self.ViewLivePanel.setCheckable(True)
- liveVisible = QtCore.QSettings().value(u'user interface/live panel',
- QtCore.QVariant(True)).toBool()
self.ViewLivePanel.setChecked(liveVisible)
self.ViewLivePanel.setObjectName(u'ViewLivePanel')
- self.LiveController.Panel.setVisible(liveVisible)
+ MainWindow.actionList.add_action(self.ViewLivePanel, u'View')
self.ModeDefaultItem = QtGui.QAction(MainWindow)
self.ModeDefaultItem.setCheckable(True)
self.ModeDefaultItem.setObjectName(u'ModeDefaultItem')
+ MainWindow.actionList.add_action(self.ModeDefaultItem, u'View Mode')
self.ModeSetupItem = QtGui.QAction(MainWindow)
self.ModeSetupItem.setCheckable(True)
self.ModeSetupItem.setObjectName(u'ModeLiveItem')
+ MainWindow.actionList.add_action(self.ModeSetupItem, u'View Mode')
self.ModeLiveItem = QtGui.QAction(MainWindow)
self.ModeLiveItem.setCheckable(True)
self.ModeLiveItem.setObjectName(u'ModeLiveItem')
+ MainWindow.actionList.add_action(self.ModeLiveItem, u'View Mode')
self.ModeGroup = QtGui.QActionGroup(MainWindow)
self.ModeGroup.addAction(self.ModeDefaultItem)
self.ModeGroup.addAction(self.ModeSetupItem)
self.ModeGroup.addAction(self.ModeLiveItem)
self.ModeDefaultItem.setChecked(True)
+ self.ToolsAddToolItem = QtGui.QAction(MainWindow)
+ self.ToolsAddToolItem.setIcon(build_icon(u':/tools/tools_add.png'))
+ self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem')
+ MainWindow.actionList.add_action(self.ToolsAddToolItem, u'Tools')
+ self.SettingsPluginListItem = QtGui.QAction(MainWindow)
+ self.SettingsPluginListItem.setIcon(
+ build_icon(u':/system/settings_plugin_list.png'))
+ self.SettingsPluginListItem.setObjectName(u'SettingsPluginListItem')
+ MainWindow.actionList.add_action(self.SettingsPluginListItem, u'Settings')
+ #i18n Language Items
+ self.AutoLanguageItem = QtGui.QAction(MainWindow)
+ self.AutoLanguageItem.setObjectName(u'AutoLanguageItem')
+ self.AutoLanguageItem.setCheckable(True)
+ MainWindow.actionList.add_action(self.AutoLanguageItem, u'Settings')
+ self.LanguageGroup = QtGui.QActionGroup(MainWindow)
+ qmList = LanguageManager.get_qm_list()
+ savedLanguage = LanguageManager.get_language()
+ self.AutoLanguageItem.setChecked(LanguageManager.auto_language)
+ for key in sorted(qmList.keys()):
+ languageItem = QtGui.QAction(MainWindow)
+ languageItem.setObjectName(key)
+ languageItem.setCheckable(True)
+ if qmList[key] == savedLanguage:
+ languageItem.setChecked(True)
+ add_actions(self.LanguageGroup, [languageItem])
+ self.LanguageGroup.setDisabled(LanguageManager.auto_language)
+ self.SettingsShortcutsItem = QtGui.QAction(MainWindow)
+ self.SettingsShortcutsItem.setIcon(
+ build_icon(u':/system/system_configure_shortcuts.png'))
+ self.SettingsShortcutsItem.setObjectName(u'SettingsShortcutsItem')
+ self.SettingsConfigureItem = QtGui.QAction(MainWindow)
+ self.SettingsConfigureItem.setIcon(
+ build_icon(u':/system/system_settings.png'))
+ self.SettingsConfigureItem.setObjectName(u'SettingsConfigureItem')
+ MainWindow.actionList.add_action(self.SettingsShortcutsItem, u'Settings')
+ self.HelpDocumentationItem = QtGui.QAction(MainWindow)
+ self.HelpDocumentationItem.setIcon(
+ build_icon(u':/system/system_help_contents.png'))
+ self.HelpDocumentationItem.setObjectName(u'HelpDocumentationItem')
+ self.HelpDocumentationItem.setEnabled(False)
+ MainWindow.actionList.add_action(self.HelpDocumentationItem, u'Help')
+ self.HelpAboutItem = QtGui.QAction(MainWindow)
+ self.HelpAboutItem.setIcon(
+ build_icon(u':/system/system_about.png'))
+ self.HelpAboutItem.setObjectName(u'HelpAboutItem')
+ MainWindow.actionList.add_action(self.HelpAboutItem, u'Help')
+ self.HelpOnlineHelpItem = QtGui.QAction(MainWindow)
+ self.HelpOnlineHelpItem.setObjectName(u'HelpOnlineHelpItem')
+ self.HelpOnlineHelpItem.setEnabled(False)
+ MainWindow.actionList.add_action(self.HelpOnlineHelpItem, u'Help')
+ self.HelpWebSiteItem = QtGui.QAction(MainWindow)
+ self.HelpWebSiteItem.setObjectName(u'HelpWebSiteItem')
+ MainWindow.actionList.add_action(self.HelpWebSiteItem, u'Help')
add_actions(self.FileImportMenu,
(self.ImportThemeItem, self.ImportLanguageItem))
add_actions(self.FileExportMenu,
@@ -303,7 +333,7 @@
add_actions(self.SettingsLanguageMenu, self.LanguageGroup.actions())
add_actions(self.SettingsMenu, (self.SettingsPluginListItem,
self.SettingsLanguageMenu.menuAction(), None,
- self.SettingsConfigureItem))
+ self.SettingsShortcutsItem, self.SettingsConfigureItem))
add_actions(self.ToolsMenu,
(self.ToolsAddToolItem, None))
add_actions(self.HelpMenu,
@@ -394,6 +424,8 @@
translate('OpenLP.MainWindow', '&Theme'))
self.ExportLanguageItem.setText(
translate('OpenLP.MainWindow', '&Language'))
+ self.SettingsShortcutsItem.setText(
+ translate('OpenLP.MainWindow', 'Configure &Shortcuts...'))
self.SettingsConfigureItem.setText(
translate('OpenLP.MainWindow', '&Configure OpenLP...'))
self.ViewMediaManagerItem.setText(
@@ -488,6 +520,8 @@
"""
log.info(u'MainWindow loaded')
+ actionList = ActionList()
+
def __init__(self, screens, applicationVersion):
"""
This constructor sets up the interface, the various managers, and the
@@ -495,6 +529,7 @@
"""
QtGui.QMainWindow.__init__(self)
self.screens = screens
+ self.actionList = ActionList()
self.applicationVersion = applicationVersion
# Set up settings sections for the main application
# (not for use by plugins)
@@ -506,6 +541,7 @@
self.settingsmanager = SettingsManager(screens)
self.aboutForm = AboutForm(self, applicationVersion)
self.settingsForm = SettingsForm(self.screens, self, self)
+ self.shortcutForm = ShortcutListForm(self)
self.recentFiles = QtCore.QStringList()
# Set up the path with plugins
pluginpath = AppLocation.get_directory(AppLocation.PluginsDir)
@@ -551,7 +587,9 @@
QtCore.QObject.connect(self.SettingsPluginListItem,
QtCore.SIGNAL(u'triggered()'), self.onPluginItemClicked)
QtCore.QObject.connect(self.SettingsConfigureItem,
- QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked)
+ QtCore.SIGNAL(u'triggered()'), self.onSettingsConfigureItemClicked)
+ QtCore.QObject.connect(self.SettingsShortcutsItem,
+ QtCore.SIGNAL(u'triggered()'), self.onSettingsShortcutsItemClicked)
QtCore.QObject.connect(self.FileNewItem, QtCore.SIGNAL(u'triggered()'),
self.ServiceManagerContents.onNewService)
QtCore.QObject.connect(self.FileOpenItem,
@@ -712,12 +750,18 @@
self.pluginForm.load()
self.pluginForm.exec_()
- def onOptionsSettingsItemClicked(self):
+ def onSettingsConfigureItemClicked(self):
"""
Show the Settings dialog
"""
self.settingsForm.exec_()
+ def onSettingsShortcutsItemClicked(self):
+ """
+ Show the shortcuts dialog
+ """
+ self.shortcutForm.exec_(self.actionList)
+
def onModeDefaultItemClicked(self):
"""
Put OpenLP into "Default" view mode.
=== added file 'openlp/core/ui/shortcutlistdialog.py'
--- openlp/core/ui/shortcutlistdialog.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/shortcutlistdialog.py 2010-10-28 06:57:50 +0000
@@ -0,0 +1,116 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman #
+# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
+# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
+# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
+# Carsten Tinggaard, Frode Woldsund #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it #
+# under the terms of the GNU General Public License as published by the Free #
+# Software Foundation; version 2 of the License. #
+# #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
+# more details. #
+# #
+# You should have received a copy of the GNU General Public License along #
+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+###############################################################################
+
+from PyQt4 import QtCore, QtGui
+
+from openlp.core.lib import translate, build_icon
+
+class Ui_ShortcutListDialog(object):
+ def setupUi(self, shortcutListDialog):
+ shortcutListDialog.setObjectName(u'shortcutListDialog')
+ shortcutListDialog.resize(500, 438)
+ self.shortcutListLayout = QtGui.QVBoxLayout(shortcutListDialog)
+ self.shortcutListLayout.setSpacing(8)
+ self.shortcutListLayout.setMargin(8)
+ self.shortcutListLayout.setObjectName(u'shortcutListLayout')
+ self.shortcutListTreeWidget = QtGui.QTreeWidget(shortcutListDialog)
+ self.shortcutListTreeWidget.setAlternatingRowColors(True)
+ self.shortcutListTreeWidget.setObjectName(u'shortcutListTreeWidget')
+ self.shortcutListTreeWidget.setColumnCount(2)
+ self.shortcutListTreeWidget.setSelectionBehavior(
+ QtGui.QAbstractItemView.SelectRows)
+ #self.shortcutListTreeWidget.setHeaderItem(0, QtGui.QTreeWidgetItem())
+ #self.shortcutListTreeWidget.setHeaderItem(1, QtGui.QTreeWidgetItem())
+ #self.shortcutListTreeWidget.verticalHeader().setVisible(False)
+ self.shortcutListLayout.addWidget(self.shortcutListTreeWidget)
+ self.shortcutLayout = QtGui.QVBoxLayout()
+ self.shortcutLayout.setSpacing(8)
+ self.shortcutLayout.setContentsMargins(0, -1, -1, -1)
+ self.shortcutLayout.setObjectName(u'shortcutLayout')
+ self.defaultRadioButton = QtGui.QRadioButton(shortcutListDialog)
+ self.defaultRadioButton.setChecked(True)
+ self.defaultRadioButton.setObjectName(u'defaultRadioButton')
+ self.shortcutLayout.addWidget(self.defaultRadioButton)
+ self.customShortcutLayout = QtGui.QHBoxLayout()
+ self.customShortcutLayout.setSpacing(8)
+ self.customShortcutLayout.setObjectName(u'customShortcutLayout')
+ self.customRadioButton = QtGui.QRadioButton(shortcutListDialog)
+ self.customRadioButton.setObjectName(u'customRadioButton')
+ self.customShortcutLayout.addWidget(self.customRadioButton)
+ self.shortcutPushButton = QtGui.QPushButton(shortcutListDialog)
+ self.shortcutPushButton.setMinimumSize(QtCore.QSize(84, 0))
+ self.shortcutPushButton.setIcon(
+ build_icon(u':/system/system_configure_shortcuts.png'))
+ self.shortcutPushButton.setCheckable(True)
+ self.shortcutPushButton.setChecked(False)
+ self.shortcutPushButton.setObjectName(u'shortcutPushButton')
+ self.customShortcutLayout.addWidget(self.shortcutPushButton)
+ self.clearShortcutToolButton = QtGui.QToolButton(shortcutListDialog)
+ self.clearShortcutToolButton.setMinimumSize(QtCore.QSize(0, 16))
+ self.clearShortcutToolButton.setText(u'')
+ self.clearShortcutToolButton.setIcon(
+ build_icon(u':/system/clear_shortcut.png'))
+ self.clearShortcutToolButton.setObjectName(u'clearShortcutToolButton')
+ self.customShortcutLayout.addWidget(self.clearShortcutToolButton)
+ self.customShortcutSpacer = QtGui.QSpacerItem(40, 20,
+ QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+ self.customShortcutLayout.addItem(self.customShortcutSpacer)
+ self.shortcutLayout.addLayout(self.customShortcutLayout)
+ self.shortcutListLayout.addLayout(self.shortcutLayout)
+ self.shortcutListButtonBox = QtGui.QDialogButtonBox(shortcutListDialog)
+ self.shortcutListButtonBox.setOrientation(QtCore.Qt.Horizontal)
+ self.shortcutListButtonBox.setStandardButtons(
+ QtGui.QDialogButtonBox.Cancel | QtGui.QDialogButtonBox.Ok |
+ QtGui.QDialogButtonBox.Reset)
+ self.shortcutListButtonBox.setObjectName(u'shortcutListButtonBox')
+ self.shortcutListLayout.addWidget(self.shortcutListButtonBox)
+
+ self.retranslateUi(shortcutListDialog)
+ QtCore.QObject.connect(
+ self.shortcutListButtonBox,
+ QtCore.SIGNAL(u'accepted()'),
+ shortcutListDialog.accept
+ )
+ QtCore.QObject.connect(
+ self.shortcutListButtonBox,
+ QtCore.SIGNAL(u'rejected()'),
+ shortcutListDialog.reject
+ )
+ QtCore.QMetaObject.connectSlotsByName(shortcutListDialog)
+
+ def retranslateUi(self, shortcutListDialog):
+ shortcutListDialog.setWindowTitle(
+ translate('OpenLP.ShortcutListDialog', 'Customize Shortcuts'))
+ self.shortcutListTreeWidget.setHeaderLabels([
+ translate(u'OpenLP.ShortcutListDialog', 'Action'),
+ translate(u'OpenLP.ShortcutListDialog', 'Shortcut')
+ ])
+ self.defaultRadioButton.setText(
+ translate('OpenLP.ShortcutListDialog', 'Default: %s'))
+ self.customRadioButton.setText(
+ translate('OpenLP.ShortcutListDialog', 'Custom:'))
+ self.shortcutPushButton.setText(
+ translate('OpenLP.ShortcutListDialog', 'None'))
=== added file 'openlp/core/ui/shortcutlistform.py'
--- openlp/core/ui/shortcutlistform.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/shortcutlistform.py 2010-10-28 06:57:50 +0000
@@ -0,0 +1,110 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman #
+# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
+# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
+# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
+# Carsten Tinggaard, Frode Woldsund #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it #
+# under the terms of the GNU General Public License as published by the Free #
+# Software Foundation; version 2 of the License. #
+# #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
+# more details. #
+# #
+# You should have received a copy of the GNU General Public License along #
+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+###############################################################################
+
+import logging
+import re
+
+from PyQt4 import QtCore, QtGui
+
+from openlp.core.utils import translate
+from shortcutlistdialog import Ui_ShortcutListDialog
+
+REMOVE_AMPERSAND = re.compile(r'&{1}')
+
+log = logging.getLogger(__name__)
+
+class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog):
+ """
+ The shortcut list dialog
+ """
+
+ def __init__(self, parent):
+ """
+ Do some initialisation stuff
+ """
+ QtGui.QDialog.__init__(self, parent)
+ self.setupUi(self)
+ self.actionList = None
+ self.captureShortcut = False
+ QtCore.QObject.connect(
+ self.shortcutPushButton,
+ QtCore.SIGNAL(u'toggled(bool)'),
+ self.onShortcutPushButtonClicked
+ )
+
+ def keyReleaseEvent(self, event):
+ Qt = QtCore.Qt
+ if not self.captureShortcut:
+ return
+ key = event.key()
+ if key == Qt.Key_Shift or key == Qt.Key_Control or \
+ key == Qt.Key_Meta or key == Qt.Key_Alt:
+ return
+ key_string = QtGui.QKeySequence(key).toString()
+ if event.modifiers() & Qt.ControlModifier == Qt.ControlModifier:
+ key_string = u'Ctrl+' + key_string
+ if event.modifiers() & Qt.AltModifier == Qt.AltModifier:
+ key_string = u'Alt+' + key_string
+ if event.modifiers() & Qt.ShiftModifier == Qt.ShiftModifier:
+ key_string = u'Shift+' + key_string;
+ key_sequence = QtGui.QKeySequence(key_string)
+ existing_key = QtGui.QKeySequence("Ctrl+Shift+F8")
+ if key_sequence == existing_key:
+ QtGui.QMessageBox.warning(
+ self,
+ translate('OpenLP.ShortcutListDialog', 'Duplicate Shortcut'),
+ unicode(translate('OpenLP.ShortcutListDialog', 'The shortcut '
+ '"%s" is already assigned to another action, please '
+ 'use a different shortcut.')) % key_sequence.toString(),
+ QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok),
+ QtGui.QMessageBox.Ok
+ )
+ else:
+ self.shortcutPushButton.setText(key_sequence.toString())
+ self.shortcutPushButton.setChecked(False)
+ self.captureShortcut = False
+
+ def exec_(self, actionList):
+ self.actionList = actionList
+ self.refreshActions()
+ return QtGui.QDialog.exec_(self)
+
+ def refreshActions(self):
+ self.shortcutListTreeWidget.clear()
+ for category in self.actionList.categories:
+ item = QtGui.QTreeWidgetItem([category.name])
+ for action in category.actions:
+ actionText = REMOVE_AMPERSAND.sub('', unicode(action.text()))
+ shortcutText = action.shortcut().toString()
+ actionItem = QtGui.QTreeWidgetItem([actionText, shortcutText])
+ actionItem.setIcon(0, action.icon())
+ item.addChild(actionItem)
+ item.setExpanded(True)
+ self.shortcutListTreeWidget.addTopLevelItem(item)
+
+ def onShortcutPushButtonClicked(self, toggled):
+ self.captureShortcut = toggled
+
=== modified file 'openlp/core/utils/__init__.py'
--- openlp/core/utils/__init__.py 2010-09-30 05:04:43 +0000
+++ openlp/core/utils/__init__.py 2010-10-28 06:57:50 +0000
@@ -276,6 +276,7 @@
return images_filter
from languagemanager import LanguageManager
+from actions import ActionList
__all__ = [u'AppLocation', u'check_latest_version', u'add_actions',
- u'get_filesystem_encoding', u'LanguageManager']
+ u'get_filesystem_encoding', u'LanguageManager', u'ActionList']
=== added file 'openlp/core/utils/actions.py'
--- openlp/core/utils/actions.py 1970-01-01 00:00:00 +0000
+++ openlp/core/utils/actions.py 2010-10-28 06:57:50 +0000
@@ -0,0 +1,184 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman #
+# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael #
+# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian #
+# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
+# Carsten Tinggaard, Frode Woldsund #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it #
+# under the terms of the GNU General Public License as published by the Free #
+# Software Foundation; version 2 of the License. #
+# #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
+# more details. #
+# #
+# You should have received a copy of the GNU General Public License along #
+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+###############################################################################
+"""
+The :mod:`~openlp.core.utils.actions` module provides action list classes used
+by the shortcuts system.
+"""
+
+class ActionCategory(object):
+ """
+ The :class:`~openlp.core.utils.ActionCategory` class encapsulates a
+ category for the :class:`~openlp.core.utils.CategoryList` class.
+ """
+ def __init__(self, name, weight=0):
+ self.name = name
+ self.weight = weight
+ self.actions = CategoryActionList()
+
+
+class CategoryActionList(object):
+ """
+ The :class:`~openlp.core.utils.CategoryActionList` class provides a sorted
+ list of actions within a category.
+ """
+ def __init__(self):
+ self.index = 0
+ self.actions = []
+
+ def __getitem__(self, key):
+ for weight, action in self.actions:
+ if action.text() == key:
+ return action
+ raise KeyError(u'Action "%s" does not exist.' % key)
+
+ def __contains__(self, item):
+ return self.has_key(item)
+
+ def __len__(self):
+ return len(self.actions)
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ """
+ Python 3 "next" method.
+ """
+ if self.index >= len(self.actions):
+ raise StopIteration
+ else:
+ self.index += 1
+ return self.actions[self.index - 1][1]
+
+ def next(self):
+ """
+ Python 2 "next" method.
+ """
+ return self.__next__()
+
+ def has_key(key):
+ for weight, action in self.actions:
+ if action.text() == key:
+ return True
+ return False
+
+ def append(self, name):
+ weight = 0
+ if len(self.actions) > 0:
+ weight = self.actions[-1][0] + 1
+ self.add(name, weight)
+
+ def add(self, action, weight=0):
+ self.actions.append((weight, action))
+ self.actions.sort(key=lambda act: act[0])
+
+
+class CategoryList(object):
+ """
+ The :class:`~openlp.core.utils.CategoryList` class encapsulates a category
+ list for the :class:`~openlp.core.utils.ActionList` class and provides an
+ iterator interface for walking through the list of actions in this category.
+ """
+
+ def __init__(self):
+ self.index = 0
+ self.categories = []
+
+ def __getitem__(self, key):
+ for category in self.categories:
+ if category.name == key:
+ return category
+ raise KeyError(u'Category "%s" does not exist.' % key)
+
+ def __contains__(self, item):
+ return self.has_key(item)
+
+ def __len__(self):
+ return len(self.categories)
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ """
+ Python 3 "next" method for iterator.
+ """
+ if self.index >= len(self.categories):
+ raise StopIteration
+ else:
+ self.index += 1
+ return self.categories[self.index - 1]
+
+ def next(self):
+ """
+ Python 2 "next" method for iterator.
+ """
+ return self.__next__()
+
+ def has_key(self, key):
+ for category in self.categories:
+ if category.name == key:
+ return True
+ return False
+
+ def append(self, name, actions=[]):
+ weight = 0
+ if len(self.categories) > 0:
+ weight = self.categories[-1].weight + 1
+ if actions:
+ self.add(name, weight, actions)
+ else:
+ self.add(name, weight)
+
+ def add(self, name, weight=0, actions=[]):
+ category = ActionCategory(name, weight)
+ if actions:
+ for action in actions:
+ if isinstance(action, tuple):
+ category.actions.add(action[0], action[1])
+ else:
+ category.actions.append(action)
+ self.categories.append(category)
+ self.categories.sort(key=lambda cat: cat.weight)
+
+
+class ActionList(object):
+ """
+ The :class:`~openlp.core.utils.ActionList` class contains a list of menu
+ actions and categories associated with those actions. Each category also
+ has a weight by which it is sorted when iterating through the list of
+ actions or categories.
+ """
+ def __init__(self):
+ self.categories = CategoryList()
+
+ def add_action(self, action, category=u'Default', weight=None):
+ if category not in self.categories:
+ self.categories.append(category)
+ if weight is None:
+ self.categories[category].actions.append(action)
+ else:
+ self.categories[category].actions.add(action, weight)
=== added file 'resources/forms/shortcutlistdialog.ui'
--- resources/forms/shortcutlistdialog.ui 1970-01-01 00:00:00 +0000
+++ resources/forms/shortcutlistdialog.ui 2010-10-28 06:57:50 +0000
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ShortcutListDialog</class>
+ <widget class="QDialog" name="ShortcutListDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>500</width>
+ <height>438</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="shortcutListLayout">
+ <property name="spacing">
+ <number>8</number>
+ </property>
+ <property name="margin">
+ <number>8</number>
+ </property>
+ <item>
+ <widget class="QTableWidget" name="shortcutListTableWidget">
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <column>
+ <property name="text">
+ <string>Action</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Shortcut</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="shortcutLayout">
+ <property name="spacing">
+ <number>8</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="defaultRadioButton">
+ <property name="text">
+ <string>Default: None</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="customShortcutLayout">
+ <property name="spacing">
+ <number>8</number>
+ </property>
+ <item>
+ <widget class="QRadioButton" name="customRadioButton">
+ <property name="text">
+ <string>Custom:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="shortcutPushButton">
+ <property name="minimumSize">
+ <size>
+ <width>84</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>None</string>
+ </property>
+ <property name="icon">
+ <iconset resource="../images/openlp-2.qrc">
+ <normaloff>:/system/system_settings.png</normaloff>:/system/system_settings.png</iconset>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="clearShortcutToolButton">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../images/openlp-2.qrc">
+ <normaloff>:/system/clear_shortcut.png</normaloff>:/system/clear_shortcut.png</iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="customShortcutSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="shortcutListButtonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="../images/openlp-2.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>shortcutListButtonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ShortcutListDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>shortcutListButtonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ShortcutListDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
=== added file 'resources/images/clear_shortcut.png'
Binary files resources/images/clear_shortcut.png 1970-01-01 00:00:00 +0000 and resources/images/clear_shortcut.png 2010-10-28 06:57:50 +0000 differ
=== modified file 'resources/images/openlp-2.qrc'
--- resources/images/openlp-2.qrc 2010-09-14 18:18:47 +0000
+++ resources/images/openlp-2.qrc 2010-10-28 06:57:50 +0000
@@ -92,6 +92,7 @@
</qresource>
<qresource prefix="system">
<file>system_close.png</file>
+ <file>clear_shortcut.png</file>
<file>system_about.png</file>
<file>system_help_contents.png</file>
<file>system_mediamanager.png</file>
@@ -101,6 +102,7 @@
<file>system_exit.png</file>
<file>settings_plugin_list.png</file>
<file>system_settings.png</file>
+ <file>system_configure_shortcuts.png</file>
</qresource>
<qresource prefix="media">
<file>media_time.png</file>
=== added file 'resources/images/system_configure_shortcuts.png'
Binary files resources/images/system_configure_shortcuts.png 1970-01-01 00:00:00 +0000 and resources/images/system_configure_shortcuts.png 2010-10-28 06:57:50 +0000 differ
Follow ups