From a6f7c725e21a4b6ed064e92b453331837d12f267 Mon Sep 17 00:00:00 2001 From: acid-burn Date: Mon, 20 Jul 2009 16:07:29 +0200 Subject: some more work on plugin manager add experimental plugin meta informations, not yet included in build process install missing py from TuxboxPlugins plugin remove Filemanger from plugins build process --- .../CommonInterfaceAssignment/meta/Makefile.am | 3 + .../meta/ciassignment.jpg | Bin 0 -> 88947 bytes .../meta/plugin_commoninterfaceassignment.xml | 32 ++ .../DefaultServicesScanner/meta/Makefile.am | 3 + .../meta/defaultservicescanner.jpg | Bin 0 -> 104417 bytes .../meta/plugin_defaultservicesscanner.xml | 28 ++ .../SystemPlugins/DiseqcTester/meta/Makefile.am | 3 + .../DiseqcTester/meta/diseqctester.jpg | Bin 0 -> 84269 bytes .../DiseqcTester/meta/plugin_diseqctester.xml | 28 ++ .../FrontprocessorUpgrade/meta/Makefile.am | 3 + .../meta/plugin_frontprocessorupgrade.xml | 28 ++ .../Plugins/SystemPlugins/Hotplug/meta/Makefile.am | 3 + .../SystemPlugins/Hotplug/meta/plugin_hotplug.xml | 25 + .../SystemPlugins/NFIFlash/meta/Makefile.am | 3 + .../SystemPlugins/NFIFlash/meta/nfiflash.jpg | Bin 0 -> 192129 bytes .../NFIFlash/meta/plugin_nfiflash.xml | 31 ++ .../SystemPlugins/PositionerSetup/meta/Makefile.am | 3 + .../meta/plugin_positionersetup.xml | 29 ++ .../PositionerSetup/meta/positionersetup.jpg | Bin 0 -> 104995 bytes .../SatelliteEquipmentControl/meta/Makefile.am | 3 + .../meta/plugin_satelliteequipmentcontrol.xml | 29 ++ .../SatelliteEquipmentControl/meta/satcontrol.jpg | Bin 0 -> 255436 bytes .../SystemPlugins/Satfinder/meta/Makefile.am | 4 + .../Satfinder/meta/plugin_satfinder.xml | 30 ++ .../SystemPlugins/Satfinder/meta/satfinder.jpg | Bin 0 -> 106870 bytes .../SystemPlugins/SkinSelector/meta/Makefile.am | 3 + .../SkinSelector/meta/plugin_skinselector.xml | 30 ++ .../SkinSelector/meta/skinselector.jpg | Bin 0 -> 111278 bytes .../SystemPlugins/SoftwareManager/install.png | Bin 0 -> 2341 bytes .../SystemPlugins/SoftwareManager/installable.png | Bin 2272 -> 2077 bytes .../SystemPlugins/SoftwareManager/installed.png | Bin 2225 -> 2114 bytes .../SystemPlugins/SoftwareManager/meta/Makefile.am | 3 + .../meta/plugin_softwaremanager.xml | 31 ++ .../SoftwareManager/meta/softmanager.jpg | Bin 0 -> 111681 bytes .../SystemPlugins/SoftwareManager/plugin.py | 522 ++++++++++++++------- .../SystemPlugins/SoftwareManager/remove.png | Bin 0 -> 2315 bytes .../SystemPlugins/SoftwareManager/upgrade.png | Bin 0 -> 2645 bytes .../SystemPlugins/VideoTune/meta/Makefile.am | 2 +- .../SystemPlugins/VideoTune/meta/videotune.jpg | Bin 0 -> 116763 bytes .../SystemPlugins/Videomode/meta/Makefile.am | 3 + .../Videomode/meta/plugin_videomode.xml | 27 ++ .../SystemPlugins/Videomode/meta/videomode.jpg | Bin 0 -> 107578 bytes 42 files changed, 748 insertions(+), 161 deletions(-) create mode 100755 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg create mode 100755 lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/plugin_commoninterfaceassignment.xml create mode 100755 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg create mode 100755 lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml create mode 100755 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester.jpg create mode 100755 lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml create mode 100755 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml create mode 100755 lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml create mode 100755 lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash.jpg create mode 100755 lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml create mode 100755 lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml create mode 100755 lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg create mode 100755 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml create mode 100755 lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg create mode 100755 lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml create mode 100755 lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg create mode 100755 lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml create mode 100755 lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector.jpg create mode 100755 lib/python/Plugins/SystemPlugins/SoftwareManager/install.png create mode 100755 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml create mode 100755 lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softmanager.jpg create mode 100755 lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png create mode 100755 lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png mode change 100644 => 100755 lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg create mode 100755 lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml create mode 100755 lib/python/Plugins/SystemPlugins/Videomode/meta/videomode.jpg (limited to 'lib/python/Plugins/SystemPlugins') diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am new file mode 100755 index 00000000..f192c235 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_commoninterfaceassignment.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg new file mode 100755 index 00000000..120ac827 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/ciassignment.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/plugin_commoninterfaceassignment.xml b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/plugin_commoninterfaceassignment.xml new file mode 100755 index 00000000..bb2bf590 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/CommonInterfaceAssignment/meta/plugin_commoninterfaceassignment.xml @@ -0,0 +1,32 @@ + + + + + + + + Dream Multimedia + CommonInterfaceAssignment + enigma2-plugin-systemplugins-commoninterfaceassignment + Assigning providers/services/caids to a dedicated CI module + With the CommonInterfaceAssignment extension it is possible to use different CI modules + in your Dreambox and assign to each of them dedicated providers/services or caids.\n + So it is then possible to watch a scrambled service while recording another one. + + + + + Dream Multimedia + CommonInterfaceAssignment + enigma2-plugin-systemplugins-commoninterfaceassignment + Zuweisen von Providern/Services/CAIDs an ein CI Modul + Mit der CommonInterfaceAssignment Erweiterung ist es möglich jedem CI Modul bestimmte Provider/Services/CAIDs zuzuweisen.\n + So ist es möglich mit einem CI einen Sender aufzunehmen\n + und mit einem anderen einen Sender zu schauen. + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am new file mode 100755 index 00000000..c1d432f6 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_defaultservicesscanner.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg new file mode 100755 index 00000000..a0fd3b1c Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/defaultservicescanner.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml new file mode 100755 index 00000000..bf0ce253 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DefaultServicesScanner/meta/plugin_defaultservicesscanner.xml @@ -0,0 +1,28 @@ + + + + + + + Dream Multimedia + DefaultServicesScanner + enigma2-plugin-systemplugins-defaultservicesscanner + Scans default lamedbs sorted by satellite with a connected dish positioner. + With the DefaultServicesScanner extension you can scan default lamedbs sorted by satellite with a connected dish positioner. + + + + + Dream Multimedia + DefaultServicesScanner + enigma2-plugin-systemplugins-defaultservicesscanner + Standard Sendersuche nach Satellit mit einem Rotor. + Mit der DefaultServicesScanner Erweiterung können Sie eine standard Sendersuche nach Satellit mit einem angeschlossenen Rotor durchführen. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am new file mode 100755 index 00000000..9d7cc668 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_diseqctester.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester.jpg b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester.jpg new file mode 100755 index 00000000..c872334c Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/diseqctester.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml new file mode 100755 index 00000000..5415db08 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/DiseqcTester/meta/plugin_diseqctester.xml @@ -0,0 +1,28 @@ + + + + + + + Dream Multimedia + DiseqcTester + enigma2-plugin-systemplugins-diseqctester + Test your Diseqc equipment. + With the DiseqcTester extension you can test your satellite equipment for Diseqc compatibility and errors. + + + + + Dream Multimedia + DiseqcTester + enigma2-plugin-systemplugins-diseqctester + Testet Ihr Diseqc Equipment. + Mit der DiseqcTester Erweiterung können Sie Ihr Satelliten-Equipment nach Diseqc-Kompatibilität und Fehlern überprüfen. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am new file mode 100755 index 00000000..8a976adc --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_frontprocessorupgrade.xml diff --git a/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml new file mode 100755 index 00000000..1763f67f --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/FrontprocessorUpgrade/meta/plugin_frontprocessorupgrade.xml @@ -0,0 +1,28 @@ + + + + + + + Dream Multimedia + FrontprocessorUpgrade + enigma2-plugin-systemplugins-frontprocessorupgrade + internal + Internal firmware updater. + This system tool is internally used to program the hardware with firmware updates. + + + + Dream Multimedia + FrontprocessorUpgrade + enigma2-plugin-systemplugins-frontprocessorupgrade + internal + Interner Firmware-Upgrader. + Dieses Systemtool wird intern benutzt um Firmware-Upgrades für die Hardware aufzuspielen. + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am new file mode 100755 index 00000000..6bba92bf --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Hotplug/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_hotplug.xml diff --git a/lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml b/lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml new file mode 100755 index 00000000..6c2824ca --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Hotplug/meta/plugin_hotplug.xml @@ -0,0 +1,25 @@ + + + + + + Dream Multimedia + Hotplug + enigma2-plugin-systemplugins-hotplug + Hotplugging for removeable devices. + The Hotplug extension notifies your system of newly added or removed devices. + + + + Dream Multimedia + Hotplug + enigma2-plugin-systemplugins-hotplug + Hotplugging für entfernbare Geräte. + Mit der Hotplug-Erweiterung wird Ihr System über neu angeschlossene oder entfernte Geräte informiert. + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am new file mode 100755 index 00000000..d188ac78 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_nfiflash.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash.jpg b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash.jpg new file mode 100755 index 00000000..0a5fa469 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/nfiflash.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml new file mode 100755 index 00000000..2de88f08 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/NFIFlash/meta/plugin_nfiflash.xml @@ -0,0 +1,31 @@ + + + + + + + + Dream Multimedia + NFIFlash + enigma2-plugin-systemplugins-nfiflash + Restore your Dreambox with a USB stick. + With the NFIFlash extension it is possible to prepare a USB stick with an Dreambox image.\n + It is then possible to flash your Dreambox with the image on that stick. + + + + + Dream Multimedia + NFIFlash + enigma2-plugin-systemplugins-nfiflash + Wiederherstellen Ihrer Dreambox mittels USB-Stick. + Mit der NFIFlash Erweiterung können Sie ein Dreambox Image auf einen USB-Stick laden.\ + Mit diesem USB-Stick ist es dann möglich Ihre Dreambox zu flashen. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am new file mode 100755 index 00000000..2efe5848 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_positionersetup.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml new file mode 100755 index 00000000..d20b2e68 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/plugin_positionersetup.xml @@ -0,0 +1,29 @@ + + + + + + + Dream Multimedia + PositionerSetup + enigma2-plugin-systemplugins-positionersetup + PositionerSetup helps you installing a motorized dish. + With the PositionerSetup extension it is easy to install and configure a motorized dish. + + + + + Dream Multimedia + PositionerSetup + enigma2-plugin-systemplugins-positionersetup + Unterstützt Sie beim installieren eines Rotors. + Die PositionerSetup Erweiterung unterstützt Sie beim einrichten + und konfigurieren einer motorgesteuerten Satellitenantenne. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg new file mode 100755 index 00000000..63072137 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/PositionerSetup/meta/positionersetup.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am new file mode 100755 index 00000000..bbec9958 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_satelliteequipmentcontrol.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml new file mode 100755 index 00000000..8fa36e54 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/plugin_satelliteequipmentcontrol.xml @@ -0,0 +1,29 @@ + + + + + + + Dream Multimedia + SatelliteEquipmentControl + SatelliteEquipmentControl + enigma2-plugin-systemplugins-satelliteequipmentcontrol + SatelliteEquipmentControl allows you to fine-tune DiSEqC-settings. + With the SatelliteEquipmentControl extension it is possible to fine-tune DiSEqC-settings. + + + + + Dream Multimedia + SatelliteEquipmentControl + enigma2-plugin-systemplugins-satelliteequipmentcontrol + Fein-Einstellungen für DiSEqC + Die SatelliteEquipmentControl-Erweiterung unterstützt Sie beim Feintuning der DiSEqC Einstellungen. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg new file mode 100755 index 00000000..b9596a69 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/SatelliteEquipmentControl/meta/satcontrol.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am new file mode 100755 index 00000000..a6370cda --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Satfinder/meta/Makefile.am @@ -0,0 +1,4 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_satfinder.xml *.jpg + diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml b/lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml new file mode 100755 index 00000000..aaab7e42 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Satfinder/meta/plugin_satfinder.xml @@ -0,0 +1,30 @@ + + + + + + + Dream Multimedia + Satfinder + enigma2-plugin-systemplugins-satfinder + Satfinder helps you to align your dish. + The Satfinder extension helps you to align your dish.\ + It shows you informations about signal rate and errors. + + + + + Dream Multimedia + Satfinder + enigma2-plugin-systemplugins-satfinder + Satfinder unterstützt Sie beim ausrichten ihrer Satellitenanlage. + Die Satfinder-Erweiterung unterstützt Sie beim Ausrichten ihrer Satellitenanlage.\n + Es zeigt Ihnen Daten wie Signalstärke und Fehlerrate an. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg b/lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg new file mode 100755 index 00000000..c0bba0c8 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/Satfinder/meta/satfinder.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am new file mode 100755 index 00000000..5c7f4bb2 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_skinselector.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml new file mode 100755 index 00000000..4ce7f1b0 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/plugin_skinselector.xml @@ -0,0 +1,30 @@ + + + + + + + Dream Multimedia + SkinSelector + enigma2-plugin-systemplugins-skinselector + SkinSelector shows a menu with selectable skins. + The SkinSelector shows a menu with selectable skins.\n + It's now easy to change the look and feel of your Dreambox. + + + + + Dream Multimedia + SkinSelector + enigma2-plugin-systemplugins-skinselector + Der SkinSelector zeigt Ihnen ein Menu mit auswählbaren Skins. + Die SkinSelector Erweiterung zeigt Ihnen ein Menu mit auswählbaren Skins.\n + Sie können nun einfach das Aussehen der grafischen Oberfläche Ihrer Dreambox verändern. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector.jpg b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector.jpg new file mode 100755 index 00000000..74395eaa Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/SkinSelector/meta/skinselector.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/install.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/install.png new file mode 100755 index 00000000..dadd0f3f Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/SoftwareManager/install.png differ diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png index 710f4201..6b9a2903 100755 Binary files a/lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png and b/lib/python/Plugins/SystemPlugins/SoftwareManager/installable.png differ diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/installed.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/installed.png index d6a1bc10..e0b663a6 100755 Binary files a/lib/python/Plugins/SystemPlugins/SoftwareManager/installed.png and b/lib/python/Plugins/SystemPlugins/SoftwareManager/installed.png differ diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am new file mode 100755 index 00000000..bf1d3491 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_softwaremanager.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml new file mode 100755 index 00000000..fa84670e --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/plugin_softwaremanager.xml @@ -0,0 +1,31 @@ + + + + + + + Dream Multimedia + SoftwareManager + enigma2-plugin-systemplugins-softwaremanager + SoftwareManager manages your Dreambox software. + The SoftwareManager manages your Dreambox software.\n + It's easy to update your receiver's software, install or remove extensions or even backup and restore your system settings. + + + + + Dream Multimedia + SoftwareManager + enigma2-plugin-systemplugins-softwaremanager + Der SoftwareManager verwaltet Ihre Dreambox Software. + Der SoftwareManager verwaltet Ihre Dreambox Software.\n + Sie können nun einfach Ihre Dreambox-Software aktualisieren, neue Erweiterungen installieren oder entfernen, + oder ihre Einstellungen sichern und wiederherstellen. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softmanager.jpg b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softmanager.jpg new file mode 100755 index 00000000..a9d5a629 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/SoftwareManager/meta/softmanager.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py b/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py index 20b3bf4c..136e9d0b 100755 --- a/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py +++ b/lib/python/Plugins/SystemPlugins/SoftwareManager/plugin.py @@ -326,7 +326,6 @@ class IPKGSource(Screen): desk = getDesktop(0) x= int(desk.size().width()) y= int(desk.size().height()) - #print "[IPKGSource] mainscreen: current desktop size: %dx%d" % (x,y) self["closetext"] = Label(_("Cancel")) self["edittext"] = Label(_("Save")) @@ -397,7 +396,6 @@ class IPKGSource(Screen): self["text"].deleteBackward() def keyNumberGlobal(self, number): - print "pressed", number self["text"].number(number) @@ -480,11 +478,11 @@ class PacketManager(Screen): self.statuslist = [] divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) if status == 'update': - statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installable.png")) + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/upgrade.png")) self.statuslist.append(( _("Package list update"), '', _("Trying to download a new packetlist. Please wait..." ),'',statuspng, divpng )) self['list'].setList(self.statuslist) elif status == 'error': - statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installed.png")) + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/remove.png")) self.statuslist.append(( _("Error"), '', _("There was an error downloading the packetlist. Please try again." ),'',statuspng, divpng )) self['list'].setList(self.statuslist) @@ -654,21 +652,20 @@ class PluginManager(Screen, DreamInfoHandler): lastDownloadDate = None skin = """ - - + + {"templates": - {"default": (52,[ - MultiContentEntryText(pos = (30, 1), size = (500, 28), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name - MultiContentEntryText(pos = (30, 26), size = (500, 20), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description - MultiContentEntryPixmapAlphaTest(pos = (480, 2), size = (48, 48), png = 5), # index 5 is the status pixmap - MultiContentEntryPixmapAlphaTest(pos = (0, 50), size = (550, 2), png = 6), # index 6 is the div pixmap - MultiContentEntryPixmapAlphaTest(pos = (0, 10), size = (25, 25), png = 7), # index 7 is the selected pixmap + {"default": (51,[ + MultiContentEntryText(pos = (30, 1), size = (470, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (30, 25), size = (470, 20), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description + MultiContentEntryPixmapAlphaTest(pos = (475, 0), size = (48, 48), png = 5), # index 5 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (550, 2), png = 6), # index 6 is the div pixmap ]), - "category": (42,[ - MultiContentEntryText(pos = (30, 0), size = (500, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name - MultiContentEntryText(pos = (30, 26), size = (500, 14), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 2 is the description - MultiContentEntryPixmapAlphaTest(pos = (0, 40), size = (550, 2), png = 3), # index 6 is the div pixmap + "category": (40,[ + MultiContentEntryText(pos = (30, 0), size = (500, 23), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (30, 24), size = (500, 14), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the description + MultiContentEntryPixmapAlphaTest(pos = (0, 38), size = (550, 2), png = 3), # index 3 is the div pixmap ]) }, "fonts": [gFont("Regular", 22),gFont("Regular", 14)], @@ -676,15 +673,15 @@ class PluginManager(Screen, DreamInfoHandler): } - - - - - - - - - + + + + + + + + + """ def __init__(self, session, plugin_path, args = None): @@ -701,14 +698,15 @@ class PluginManager(Screen, DreamInfoHandler): DreamInfoHandler.__init__(self, self.statusCallback, blocking = False, neededTag = 'ALL_TAGS', neededFlag = self.ImageVersion, language = self.language) self.directory = resolveFilename(SCOPE_METADIR) - self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions", "InfobarEPGActions", "HelpActions" ], { - "ok": self.go, + "ok": self.handleCurrent, "back": self.exit, "red": self.exit, - "green": self.installPlugins, - "yellow": self.changeSelectionState, - "blue": self.go, + "green": self.handleCurrent, + "yellow": self.handleSelected, + "showEventInfo": self.handleSelected, + "displayHelp": self.handleHelp, }, -1) self.list = [] @@ -718,12 +716,15 @@ class PluginManager(Screen, DreamInfoHandler): self["list"] = List(self.list) self["closetext"] = Label(_("Close")) self["installtext"] = Label() - self["selecttext"] = Label() self["viewtext"] = Label() + self["bluetext"] = Label() + self["status"] = Label() self.list_updating = True self.packetlist = [] self.installed_packetlist = {} + self.available_packetlist = [] + self.available_updates = 0 self.Console = Console() self.cmdList = [] self.oktext = _("\nAfter pressing OK, please wait!") @@ -735,10 +736,12 @@ class PluginManager(Screen, DreamInfoHandler): self["list"].onSelectionChanged.append(self.selectionChanged) self["installtext"].hide() - self["selecttext"].hide() + self["bluetext"].hide() self["viewtext"].hide() + self["status"].hide() self.currList = "" self.currentSelectedTag = None + self.currentSelectedIndex = None self.onShown.append(self.setWindowTitle) self.onLayoutFinish.append(self.rebuildList) @@ -752,40 +755,54 @@ class PluginManager(Screen, DreamInfoHandler): self.currentSelectedTag = None self["list"].style = "category" self['list'].setList(self.categoryList) + self["list"].setIndex(self.currentSelectedIndex) + self["list"].updateList(self.categoryList) + self.selectionChanged() else: self.ipkg.stop() if self.Console is not None: if len(self.Console.appContainers): for name in self.Console.appContainers.keys(): self.Console.kill(name) - self.close() + if len(self.cmdList) and len(self.selectedFiles): + self.session.openWithCallback(self.runInstall, PluginManagerInfo, self.skin_path, self.cmdList) + elif not len(self.cmdList) and self.available_updates > 0: + self.cmdList = [] + self.cmdList.append((IpkgComponent.CMD_UPGRADE, { "test_only": False })) + self.session.openWithCallback(self.runInstall, PluginManagerInfo, self.skin_path, self.cmdList) + else: + self.close() - def reload(self): - if (os_path.exists(self.cache_file) == True): - remove(self.cache_file) - self.list_updating = True - self.rebuildList() + def handleHelp(self): + if self.currList != "status": + self.session.open(PluginManagerHelp, self.skin_path) + + def runInstall(self, result): + if result: + self.session.openWithCallback(self.runExecuteFinished, Ipkg, cmdList = self.cmdList) + else: + self.close() def setState(self,status = None): if status: self.currList = "status" self.statuslist = [] self["installtext"].hide() - self["selecttext"].hide() + self["bluetext"].hide() self["viewtext"].hide() divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) if status == 'update': - statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installable.png")) + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/upgrade.png")) self.statuslist.append(( _("Package list update"), '', _("Trying to download a new packetlist. Please wait..." ),'', '', statuspng, divpng, None, '' )) self["list"].style = "default" self['list'].setList(self.statuslist) elif status == 'sync': - statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installable.png")) + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/upgrade.png")) self.statuslist.append(( _("Package list update"), '', _("Searching for new installed or removed packages. Please wait..." ),'', '', statuspng, divpng, None, '' )) self["list"].style = "default" self['list'].setList(self.statuslist) elif status == 'error': - statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installed.png")) + statuspng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/remove.png")) self.statuslist.append(( _("Error"), '', _("There was an error downloading the packetlist. Please try again." ),'', '', statuspng, divpng, None, '' )) self["list"].style = "default" self['list'].setList(self.statuslist) @@ -795,63 +812,49 @@ class PluginManager(Screen, DreamInfoHandler): def selectionChanged(self): current = self["list"].getCurrent() + self["status"].hide() if current: if self.currList == "packages": self["closetext"].setText(_("Back")) - self["closetext"].show() - self["installtext"].setText(_("Install/\nRemove")) + if current[4] == 'installed': + self["installtext"].setText(_("Remove")) + elif current[4] == 'installable': + self["installtext"].setText(_("Install")) + elif current[4] == 'remove': + self["installtext"].setText(_("Undo\nRemove")) + elif current[4] == 'install': + self["installtext"].setText(_("Undo\nInstall")) self["installtext"].show() - self["viewtext"].setText(_("Details")) + self["viewtext"].setText(_("View details")) self["viewtext"].show() - if current[8] == False: - self["selecttext"].setText(_("Select")) - else: - self["selecttext"].setText(_("Deselect")) - self["selecttext"].show() + self["bluetext"].hide() + if len(self.selectedFiles) == 0 and self.available_updates is not 0: + self["status"].setText(_("There are at least ") + str(self.available_updates) + _(" updates available.")) + self["status"].show() + elif len(self.selectedFiles) is not 0: + self["status"].setText(str(len(self.selectedFiles)) + _(" packages selected.")) + self["status"].show() elif self.currList == "category": self["closetext"].setText(_("Close")) - self["closetext"].show() self["installtext"].hide() - self["selecttext"].hide() - self["viewtext"].setText(_("View")) - self["viewtext"].show() - - def changeSelectionState(self): - current = self["list"].getCurrent() - if current: - if current[8] is not '': - idx = self["list"].getIndex() - count = 0 - newList = [] - for x in self.list: - detailsFile = x[1] - if idx == count: - if x[8] == True: - SelectState = False - for entry in self.selectedFiles: - if entry[0] == detailsFile: - self.selectedFiles.remove(entry) - else: - SelectState = True - alreadyinList = False - for entry in self.selectedFiles: - if entry[0] == detailsFile: - alreadyinList = True - if not alreadyinList: - self.selectedFiles.append((detailsFile,x[4],x[3])) - newList.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), x[3].strip(), x[4].strip(), selected = SelectState)) - else: - newList.append(x) - count += 1 - old_index = self["list"].index - self.list = newList - self["list"].disable_callbacks = True - self["list"].list = self.list - self["list"].disable_callbacks = False - self["list"].setList(self.list) - self["list"].setIndex(old_index) - self["list"].updateList(self.list) - self.selectionChanged() + self["bluetext"].hide() + if len(self.selectedFiles) == 0 and self.available_updates is not 0: + self["status"].setText(_("There are at least ") + str(self.available_updates) + _(" updates available.")) + self["status"].show() + self["viewtext"].setText(_("Update")) + self["viewtext"].show() + elif len(self.selectedFiles) is not 0: + self["status"].setText(str(len(self.selectedFiles)) + _(" packages selected.")) + self["status"].show() + self["viewtext"].setText(_("Process")) + self["viewtext"].show() + self["closetext"].show() + + def getSelectionState(self, detailsFile): + for entry in self.selectedFiles: + if entry[0] == detailsFile: + return True + return False def rebuildList(self): self.setState('update') @@ -862,22 +865,38 @@ class PluginManager(Screen, DreamInfoHandler): self.ipkg.startCmd(IpkgComponent.CMD_UPDATE) else: print "last update time < 1h" - self.startInstallMetaPackage() + self.startIpkgList() def ipkgCallback(self, event, param): if event == IpkgComponent.EVENT_ERROR: self.list_updating = False self.setState('error') elif event == IpkgComponent.EVENT_DONE: - self.startInstallMetaPackage() + self.startIpkgList() pass + def startIpkgList(self): + if self.list_updating: + if not self.Console: + self.Console = Console() + cmd = "ipkg list" + self.Console.ePopen(cmd, self.IpkgList_Finished) + + def IpkgList_Finished(self, result, retval, extra_args = None): + if len(result): + self.available_packetlist = [] + for x in result.splitlines(): + split = x.split(' - ') + if not any(split[0].strip().endswith(x) for x in self.unwanted_extensions): + self.available_packetlist.append([split[0].strip(), split[1].strip(), split[2].strip()]) + self.startInstallMetaPackage() + def startInstallMetaPackage(self): if self.list_updating: self.list_updating = False if not self.Console: self.Console = Console() - cmd = "ipkg list" ### will change into "ipkg install enigma2-plugins-meta" + cmd = "ipkg install enigma2-meta" #dummy,will change probably" self.Console.ePopen(cmd, self.InstallMetaPackage_Finished) def InstallMetaPackage_Finished(self, result, retval, extra_args = None): @@ -896,26 +915,71 @@ class PluginManager(Screen, DreamInfoHandler): split = x.split(' - ') if not any(split[0].strip().endswith(x) for x in self.unwanted_extensions): self.installed_packetlist[split[0].strip()] = split[1].strip() + self.countUpdates() if self.currentSelectedTag is None: self.buildCategoryList() else: self.buildPacketList(self.currentSelectedTag) - def go(self, returnValue = None): + def countUpdates(self): + self.available_updates = 0 + for package in self.packagesIndexlist[:]: + attributes = package[0]["attributes"] + packagename = attributes["packagename"] + for x in self.available_packetlist: + if x[0].strip() == packagename: + if self.installed_packetlist.has_key(packagename): + if self.installed_packetlist[packagename] != x[1].strip(): + self.available_updates +=1 + + def handleCurrent(self): current = self["list"].getCurrent() if current: if self.currList == "category": + self.currentSelectedIndex = self["list"].index selectedTag = current[2] self.buildPacketList(selectedTag) elif self.currList == "packages": - #self.installPlugins() - #uncomment the above line and comment the bottom lines to have install functionality on OK - if current[8] is not '': + if current[7] is not '': + idx = self["list"].getIndex() + detailsFile = self.list[idx][1] + if self.list[idx][7] == True: + for entry in self.selectedFiles: + if entry[0] == detailsFile: + self.selectedFiles.remove(entry) + else: + alreadyinList = False + for entry in self.selectedFiles: + if entry[0] == detailsFile: + alreadyinList = True + if not alreadyinList: + self.selectedFiles.append((detailsFile,current[4],current[3])) + if current[4] == 'installed': + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'remove', True) + elif current[4] == 'installable': + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'install', True) + elif current[4] == 'remove': + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'installed', False) + elif current[4] == 'install': + self.list[idx] = self.buildEntryComponent(current[0], current[1], current[2], current[3], 'installable',False) + self["list"].setList(self.list) + self["list"].setIndex(idx) + self["list"].updateList(self.list) + self.selectionChanged() + + def handleSelected(self): + current = self["list"].getCurrent() + if current: + if self.currList == "packages": + if current[7] is not '': detailsfile = self.directory[0] + "/" + current[1] if (os_path.exists(detailsfile) == True): self.session.openWithCallback(self.detailsClosed, PluginDetails, self.skin_path, current) else: self.session.open(MessageBox, _("Sorry, no Details available!"), MessageBox.TYPE_INFO) + elif self.currList == "category": + self.installPlugins() + def detailsClosed(self, result): if result: if not self.Console: @@ -928,44 +992,52 @@ class PluginManager(Screen, DreamInfoHandler): def buildEntryComponent(self, name, details, description, packagename, state, selected = False): divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) - if selected is False: - selectedicon = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock_off.png")) - else: - selectedicon = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/icons/lock_on.png")) - if state == 'installed': installedpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installed.png")) - return((name, details, description, packagename, state, installedpng, divpng, selectedicon, selected)) - else: + return((name, details, description, packagename, state, installedpng, divpng, selected)) + elif state == 'installable': installablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installable.png")) - return((name, details, description, packagename, state, installablepng, divpng, selectedicon, selected)) + return((name, details, description, packagename, state, installablepng, divpng, selected)) + elif state == 'remove': + removepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/remove.png")) + return((name, details, description, packagename, state, removepng, divpng, selected)) + elif state == 'install': + installpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/install.png")) + return((name, details, description, packagename, state, installpng, divpng, selected)) def buildPacketList(self, categorytag = None): if categorytag is not None: self.currList = "packages" self.currentSelectedTag = categorytag - #print self.packagesIndexlist self.packetlist = [] for package in self.packagesIndexlist[:]: - #print "package--->",package prerequisites = package[0]["prerequisites"] - #print "prerequisite",prerequisites if prerequisites.has_key("tag"): for foundtag in prerequisites["tag"]: if categorytag == foundtag: attributes = package[0]["attributes"] - #print "attributes---->",attributes - self.packetlist.append([attributes["name"], attributes["details"], attributes["shortdescription"], attributes["packagename"]]) + if attributes.has_key("packagetype"): + if attributes["packagetype"] == "internal": + continue + self.packetlist.append([attributes["name"], attributes["details"], attributes["shortdescription"], attributes["packagename"]]) + else: + self.packetlist.append([attributes["name"], attributes["details"], attributes["shortdescription"], attributes["packagename"]]) self.list = [] - #print "self.packetlist---->",self.packetlist for x in self.packetlist: status = "" + selectState = self.getSelectionState(x[1].strip()) if self.installed_packetlist.has_key(x[3].strip()): - status = "installed" - self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), x[3].strip(), status, selected = False)) + if selectState == True: + status = "remove" + else: + status = "installed" + self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), x[3].strip(), status, selected = selectState)) else: - status = "installable" - self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), x[3].strip(), status, selected = False)) + if selectState == True: + status = "install" + else: + status = "installable" + self.list.append(self.buildEntryComponent(x[0].strip(), x[1].strip(), x[2].strip(), x[3].strip(), status, selected = selectState)) if len(self.list): self.list.sort(key=lambda x: x[0]) self["list"].style = "default" @@ -975,16 +1047,13 @@ class PluginManager(Screen, DreamInfoHandler): def buildCategoryList(self): self.currList = "category" - #print self.packagesIndexlist self.categories = [] self.categoryList = [] for package in self.packagesIndexlist[:]: - #print "package--->",package prerequisites = package[0]["prerequisites"] - #print "prerequisite",prerequisites if prerequisites.has_key("tag"): for foundtag in prerequisites["tag"]: - #print "found tag----",foundtag + attributes = package[0]["attributes"] if foundtag not in self.categories: self.categories.append(foundtag) self.categoryList.append(self.buildCategoryComponent(foundtag)) @@ -1026,12 +1095,12 @@ class PluginManager(Screen, DreamInfoHandler): def installPlugins(self): self.cmdList = [] + if self.available_updates > 0: + self.cmdList.append((IpkgComponent.CMD_UPGRADE, { "test_only": False })) if self.selectedFiles and len(self.selectedFiles): for plugin in self.selectedFiles: - #print "processing Plugin-->",plugin detailsfile = self.directory[0] + "/" + plugin[0] if (os_path.exists(detailsfile) == True): - #print "plugin[1]-->",plugin[1] self.fillPackageDetails(plugin[0]) self.package = self.packageDetails[0] if self.package[0].has_key("attributes"): @@ -1041,53 +1110,22 @@ class PluginManager(Screen, DreamInfoHandler): if plugin[1] == 'installed': if self.packagefiles: for package in self.packagefiles[:]: - #print "removing package: ",package["name"] self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": package["name"] })) + else: + self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": plugin[2] })) else: if self.packagefiles: for package in self.packagefiles[:]: - #print "adding package: ",package["name"] self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package["name"] })) + else: + self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": plugin[2] })) else: if plugin[1] == 'installed': - #print "removing package: ",plugin[2] self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": plugin[2] })) else: - #print "adding package: ",plugin[2] self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": plugin[2] })) - else: - current = self["list"].getCurrent() - if current: - if current[8] is not '': - #print "current[4]-->",current[4] - detailsfile = self.directory[0] + "/" + current[1] - if (os_path.exists(detailsfile) == True): - self.fillPackageDetails(current[1]) - self.package = self.packageDetails[0] - if self.package[0].has_key("attributes"): - self.attributes = self.package[0]["attributes"] - if self.attributes.has_key("package"): - self.packagefiles = self.attributes["package"] - if current[4] == 'installed': - if self.packagefiles: - for package in self.packagefiles[:]: - #print "removing package: ",package["name"] - self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": package["name"] })) - else: - if self.packagefiles: - for package in self.packagefiles[:]: - #print "adding package: ",package["name"] - self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package["name"] })) - else: - if current[4] == 'installed': - #print "removing package: ",current[0] - self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": current[3] })) - else: - #print "adding package: ",current[0] - self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": current[3] })) if len(self.cmdList): - print self.cmdList - self.session.openWithCallback(self.runExecute, MessageBox, _("Do you want to continue installing or removing selected plugins?\n") + self.oktext) + self.session.openWithCallback(self.runExecute, PluginManagerInfo, self.skin_path, self.cmdList) def runExecute(self, result): if result: @@ -1109,6 +1147,172 @@ class PluginManager(Screen, DreamInfoHandler): plugins.readPluginList(resolveFilename(SCOPE_PLUGINS)) +class PluginManagerInfo(Screen): + skin = """ + + + + + + {"template": [ + MultiContentEntryText(pos = (50, 1), size = (150, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (50, 25), size = (540, 24), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state + MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (550, 2), png = 3), # index 3 is the div pixmap + ], + "fonts": [gFont("Regular", 22),gFont("Regular", 18)], + "itemHeight": 52 + } + + + + + + + """ + + def __init__(self, session, plugin_path, cmdlist = None): + Screen.__init__(self, session) + self.session = session + self.skin_path = plugin_path + self.cmdlist = cmdlist + + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], + { + "ok": self.process, + "back": self.exit, + "red": self.exit, + "green": self.process, + }, -1) + + self.list = [] + self["list"] = List(self.list) + self["closetext"] = Label(_("Cancel")) + self["continuetext"] = Label(_("Continue")) + self["status"] = Label(_("Following tasks will be done after you press continue.")) + + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.rebuildList) + + def setWindowTitle(self): + self.setTitle(_("Plugin manager process information...")) + + def rebuildList(self): + self.list = [] + if self.cmdlist is not None: + for entry in self.cmdlist: + cmd = entry[0] + if cmd == 0: + action = 'install' + elif cmd == 2: + action = 'remove' + else: + action = 'upgrade' + + args = entry[1] + if cmd == 0: + info = args['package'] + elif cmd == 2: + info = args['package'] + else: + info = _("Dreambox software because updates are available.") + + self.list.append(self.buildEntryComponent(action,info)) + self['list'].setList(self.list) + self['list'].updateList(self.list) + + def buildEntryComponent(self, action,info): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) + upgradepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/upgrade.png")) + installpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/install.png")) + removepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/remove.png")) + if action == 'install': + return(( _('Installing'), info, installpng, divpng)) + elif action == 'remove': + return(( _('Remove'), info, removepng, divpng)) + else: + return(( _('Upgrade'), info, upgradepng, divpng)) + + def exit(self): + self.close(False) + + def process(self): + self.close(True) + + +class PluginManagerHelp(Screen): + skin = """ + + + + + + {"template": [ + MultiContentEntryText(pos = (50, 1), size = (540, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name + MultiContentEntryText(pos = (50, 25), size = (540, 24), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state + MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap + MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (550, 2), png = 3), # index 3 is the div pixmap + ], + "fonts": [gFont("Regular", 22),gFont("Regular", 18)], + "itemHeight": 52 + } + + + + + """ + + def __init__(self, session, plugin_path): + Screen.__init__(self, session) + self.session = session + self.skin_path = plugin_path + + self["shortcuts"] = ActionMap(["ShortcutActions", "WizardActions"], + { + "back": self.exit, + "red": self.exit, + }, -1) + + self.list = [] + self["list"] = List(self.list) + self["closetext"] = Label(_("Close")) + self["status"] = Label(_("Here is a small overview of the available icon states.")) + + self.onShown.append(self.setWindowTitle) + self.onLayoutFinish.append(self.rebuildList) + + def setWindowTitle(self): + self.setTitle(_("Plugin manager help...")) + + def rebuildList(self): + self.list = [] + self.list.append(self.buildEntryComponent('install')) + self.list.append(self.buildEntryComponent('installable')) + self.list.append(self.buildEntryComponent('installed')) + self.list.append(self.buildEntryComponent('remove')) + self['list'].setList(self.list) + self['list'].updateList(self.list) + + def buildEntryComponent(self, state): + divpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/div-h.png")) + installedpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installed.png")) + installablepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/installable.png")) + removepng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/remove.png")) + installpng = LoadPixmap(cached=True, path=resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SoftwareManager/install.png")) + + if state == 'installed': + return(( _('This plugin is installed.'), _('You can remove this plugin.'), installedpng, divpng)) + elif state == 'installable': + return(( _('This plugin is not installed.'), _('You can install this plugin.'), installablepng, divpng)) + elif state == 'install': + return(( _('This plugin will be installed.'), _('You can cancel the installation.'), installpng, divpng)) + elif state == 'remove': + return(( _('This plugin will be removed.'), _('You can cancel the removal.'), removepng, divpng)) + + def exit(self): + self.close() + + class PluginDetails(Screen, DreamInfoHandler): skin = """ @@ -1267,14 +1471,12 @@ class PluginDetails(Screen, DreamInfoHandler): if self.pluginstate == 'installed': if self.packagefiles: for package in self.packagefiles[:]: - #print "removing packagefile: ",package["name"] self.cmdList.append((IpkgComponent.CMD_REMOVE, { "package": package["name"] })) if len(self.cmdList): self.session.openWithCallback(self.runRemove, MessageBox, _("Do you want to remove the package:\n") + self.pluginname + "\n" + self.oktext) else: if self.packagefiles: for package in self.packagefiles[:]: - #print "adding packagefile: ",package["name"] self.cmdList.append((IpkgComponent.CMD_INSTALL, { "package": package["name"] })) if len(self.cmdList): self.session.openWithCallback(self.runUpgrade, MessageBox, _("Do you want to install the package:\n") + self.pluginname + "\n" + self.oktext) diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png new file mode 100755 index 00000000..396316f7 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/SoftwareManager/remove.png differ diff --git a/lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png b/lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png new file mode 100755 index 00000000..6da6e379 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/SoftwareManager/upgrade.png differ diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am old mode 100644 new mode 100755 index 0c447f53..cdbcee14 --- a/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am +++ b/lib/python/Plugins/SystemPlugins/VideoTune/meta/Makefile.am @@ -1,3 +1,3 @@ installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ -install_DATA = plugin_videotune.xml +install_DATA = plugin_videotune.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg b/lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg new file mode 100755 index 00000000..e9664799 Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/VideoTune/meta/videotune.jpg differ diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am new file mode 100755 index 00000000..190dd9d1 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(LIBDIR)/enigma2/python/Plugins/meta/ + +install_DATA = plugin_videomode.xml *.jpg diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml b/lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml new file mode 100755 index 00000000..3891e0b1 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/Videomode/meta/plugin_videomode.xml @@ -0,0 +1,27 @@ + + + + + + + Dream Multimedia + Videomode + enigma2-plugin-systemplugins-videomode + Videomode provides advanced video modes. + The Videomode extension provides advanced video modes. + + + + Dream Multimedia + Videomode + enigma2-plugin-systemplugins-videomode + Videomode bietet erweiterte Video Einstellungen. + Die Videomode-Erweiterung bietet erweiterte Video-Einstellungen. + + + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode.jpg b/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode.jpg new file mode 100755 index 00000000..adb5646b Binary files /dev/null and b/lib/python/Plugins/SystemPlugins/Videomode/meta/videomode.jpg differ -- cgit v1.2.3