Author: locilka
Date: Fri Jun 27 18:13:26 2008
New Revision: 48670
URL: http://svn.opensuse.org/viewcvs/yast?rev=48670&view=rev
Log:
- Implemented Add-Ons overview (FATE #303588).
- Implemented deinstallation of Add-On (FATE #300654).
Modified:
trunk/add-on/package/yast2-add-on.changes
trunk/add-on/src/add-on-workflow.ycp
trunk/add-on/src/add-on.ycp
trunk/add-on/yast2-add-on.spec.in
Modified: trunk/add-on/package/yast2-add-on.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on/package/yast2-add-on.changes?rev=48670&r1=48669&r2=48670&view=diff
==============================================================================
--- trunk/add-on/package/yast2-add-on.changes (original)
+++ trunk/add-on/package/yast2-add-on.changes Fri Jun 27 18:13:26 2008
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Fri Jun 27 18:11:27 CEST 2008 - locilka@suse.cz
+
+- Implemented Add-Ons overview (FATE #303588).
+- Implemented deinstallation of Add-On (FATE #300654).
+
+-------------------------------------------------------------------
Tue Jun 17 14:23:45 CEST 2008 - lslezak@suse.cz
- use Pkg::SourceSaveAll() instead of Pkg::SourceFinishAll()
Modified: trunk/add-on/src/add-on-workflow.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/add-on/src/add-on-workflow.ycp?rev=48670&r1=48669&r2=48670&view=diff
==============================================================================
--- trunk/add-on/src/add-on-workflow.ycp (original)
+++ trunk/add-on/src/add-on-workflow.ycp Fri Jun 27 18:13:26 2008
@@ -1021,5 +1021,316 @@
return ret;
}
+// AddOnsOverviewDialog -->
+
+void CreateAddOnsOverviewDialog () {
+ y2milestone ("Creating OverviewDialog");
+
+ Wizard::SetContents (
+ // TRANSLATORS: dialog caption
+ _("Installed Add-On Products"),
+ `VBox (
+ `Table (
+ `id ("list_of_addons"),
+ `opt (`notify, `immediate),
+ `header (
+ // TRANSLATORS: table header item
+ _("Add-On Product"),
+ // TRANSLATORS: table header item
+ _("URL")
+ ),
+ []
+ ),
+ `VSquash(
+ `MinHeight (3,
+ `RichText (`id ("product_details"), "")
+ )
+ ),
+ `HBox (
+ `PushButton (`id (`add), Label::AddButton()),
+ `HSpacing (1),
+ `PushButton (`id (`delete), Label::DeleteButton()),
+ `HStretch()
+ )
+ ),
+ // TRANSLATORS: dialog help adp/1
+ _("<p>Here you can see all add-on products installed on your system.</p>") +
+ // TRANSLATORS: dialog help adp/2
+ _("<p>Use <b>Add</b> button to use a new add-on product or <b>Delete</b> to remove an add-on in use.</p>"),
+ false,
+ true
+ );
+
+ Wizard::SetNextButton (`next, Label::FinishButton());
+ Wizard::SetAbortButton (`abort, Label::CancelButton());
+}
+
+map product_infos = $[];
+
+map ReturnCurrentlySelectedProductInfo () {
+ if (! UI::WidgetExists (`id ("list_of_addons"))) {
+ y2error ("No such widget: %1", "list_of_addons");
+ return nil;
+ }
+
+ string item_id = (string) UI::QueryWidget (`id ("list_of_addons"), `CurrentItem);
+
+ // no items
+ if (item_id == nil) {
+ return nil;
+ }
+
+ if (! regexpmatch (item_id, "product_")) {
+ y2error ("Wrong product ID '%1'", item_id);
+ return nil;
+ }
+
+ item_id = substring (item_id, 8);
+
+ return product_infos[item_id]:$[];
+}
+
+void AdjustInfoWidget () {
+ map pi = ReturnCurrentlySelectedProductInfo();
+ if (pi == nil || pi == $[]) {
+ UI::ChangeWidget (`id ("product_details"), `Value, "");
+ return;
+ }
+
+ string rt_description = sformat (
+ _("<p><b>Vendor:</b> %1<br><b>Repository URL:</b> %2</p>"),
+ pi["product","vendor"]:_("Unknown vendor"),
+ pi["repository","url"]:_("Unknown repository URL")
+ );
+ UI::ChangeWidget (`id ("product_details"), `Value, rt_description);
+}
+
+void RedrawAddOnsOverviewTable () {
+ list