diff options
author | bavery <brian.avery@intel.com> | 2016-02-29 10:26:02 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-02 22:41:23 +0000 |
commit | a9dc72f08bf5bdd898fba429729acee0e7305838 (patch) | |
tree | fa1e320398a1939df372363fbbfd79a5e58ae933 /bitbake/lib/bb/ui/crumbs/hig/parsingwarningsdialog.py | |
parent | 27468dbc3aa4ed71a20f706d4a65dfa29c4dd733 (diff) | |
download | poky-a9dc72f08bf5bdd898fba429729acee0e7305838.tar.gz |
bitbake: hob: removal of hob ui and associated ui files
We've been gearing up the Toaster web UI to replace the Hob (GTK+ based) UI
for some time now; Hob has basically been on life support for the past few
releases. As of late last month in master, Toaster has the capability to
select the packages in an image, removing the last thing that Hob could do
that Toaster couldn't.
To recap, the reasons why Hob is being removed include:
- The code is tightly woven into BitBake, making it fragile. This means it
needs significant QA and maintenance on an ongoing basis.
- Some of the implementation is not ideal; we'll be able to remove some cruft
from BitBake and OE-Core at the same time.
- It's GTK+ 2 based, not the current GTK+ 3.
- Toaster is now a much more capable UI and is being actively maintained
The discussion about removing hob can be found at:
http://lists.openembedded.org/pipermail/openembedded-architecture/2016-February/000082.html
(Bitbake rev: be2cceea159c6ca9111eff3df87b98513eab6d72)
Signed-off-by: bavery <brian.avery@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/hig/parsingwarningsdialog.py')
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/hig/parsingwarningsdialog.py | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hig/parsingwarningsdialog.py b/bitbake/lib/bb/ui/crumbs/hig/parsingwarningsdialog.py deleted file mode 100644 index 33bac39db8..0000000000 --- a/bitbake/lib/bb/ui/crumbs/hig/parsingwarningsdialog.py +++ /dev/null | |||
@@ -1,163 +0,0 @@ | |||
1 | # | ||
2 | # BitBake Graphical GTK User Interface | ||
3 | # | ||
4 | # Copyright (C) 2011-2012 Intel Corporation | ||
5 | # | ||
6 | # Authored by Cristiana Voicu <cristiana.voicu@intel.com> | ||
7 | # | ||
8 | # This program is free software; you can redistribute it and/or modify | ||
9 | # it under the terms of the GNU General Public License version 2 as | ||
10 | # published by the Free Software Foundation. | ||
11 | # | ||
12 | # This program is distributed in the hope that it will be useful, | ||
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | # GNU General Public License for more details. | ||
16 | # | ||
17 | # You should have received a copy of the GNU General Public License along | ||
18 | # with this program; if not, write to the Free Software Foundation, Inc., | ||
19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
20 | |||
21 | import gtk | ||
22 | import gobject | ||
23 | from bb.ui.crumbs.hobwidget import HobAltButton | ||
24 | from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog | ||
25 | |||
26 | """ | ||
27 | The following are convenience classes for implementing GNOME HIG compliant | ||
28 | BitBake GUI's | ||
29 | In summary: spacing = 12px, border-width = 6px | ||
30 | """ | ||
31 | |||
32 | # | ||
33 | # ParsingWarningsDialog | ||
34 | # | ||
35 | class ParsingWarningsDialog (CrumbsDialog): | ||
36 | |||
37 | def __init__(self, title, warnings, parent, flags, buttons=None): | ||
38 | super(ParsingWarningsDialog, self).__init__(title, parent, flags, buttons) | ||
39 | |||
40 | self.warnings = warnings | ||
41 | self.warning_on = 0 | ||
42 | self.warn_nb = len(warnings) | ||
43 | |||
44 | # create visual elements on the dialog | ||
45 | self.create_visual_elements() | ||
46 | |||
47 | def cancel_button_cb(self, button): | ||
48 | self.destroy() | ||
49 | |||
50 | def previous_button_cb(self, button): | ||
51 | self.warning_on = self.warning_on - 1 | ||
52 | self.refresh_components() | ||
53 | |||
54 | def next_button_cb(self, button): | ||
55 | self.warning_on = self.warning_on + 1 | ||
56 | self.refresh_components() | ||
57 | |||
58 | def refresh_components(self): | ||
59 | lbl = self.warnings[self.warning_on] | ||
60 | #when the warning text has more than 400 chars, it uses a scroll bar | ||
61 | if 0<= len(lbl) < 400: | ||
62 | self.warning_label.set_size_request(320, 230) | ||
63 | self.warning_label.set_use_markup(True) | ||
64 | self.warning_label.set_line_wrap(True) | ||
65 | self.warning_label.set_markup(lbl) | ||
66 | self.warning_label.set_property("yalign", 0.00) | ||
67 | else: | ||
68 | self.textWindow.set_shadow_type(gtk.SHADOW_IN) | ||
69 | self.textWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) | ||
70 | self.msgView = gtk.TextView() | ||
71 | self.msgView.set_editable(False) | ||
72 | self.msgView.set_wrap_mode(gtk.WRAP_WORD) | ||
73 | self.msgView.set_cursor_visible(False) | ||
74 | self.msgView.set_size_request(320, 230) | ||
75 | self.buf = gtk.TextBuffer() | ||
76 | self.buf.set_text(lbl) | ||
77 | self.msgView.set_buffer(self.buf) | ||
78 | self.textWindow.add(self.msgView) | ||
79 | self.msgView.show() | ||
80 | |||
81 | if self.warning_on==0: | ||
82 | self.previous_button.set_sensitive(False) | ||
83 | else: | ||
84 | self.previous_button.set_sensitive(True) | ||
85 | |||
86 | if self.warning_on==self.warn_nb-1: | ||
87 | self.next_button.set_sensitive(False) | ||
88 | else: | ||
89 | self.next_button.set_sensitive(True) | ||
90 | |||
91 | if self.warn_nb>1: | ||
92 | self.heading = "Warning " + str(self.warning_on + 1) + " of " + str(self.warn_nb) | ||
93 | self.heading_label.set_markup('<span weight="bold">%s</span>' % self.heading) | ||
94 | else: | ||
95 | self.heading = "Warning" | ||
96 | self.heading_label.set_markup('<span weight="bold">%s</span>' % self.heading) | ||
97 | |||
98 | self.show_all() | ||
99 | |||
100 | if 0<= len(lbl) < 400: | ||
101 | self.textWindow.hide() | ||
102 | else: | ||
103 | self.warning_label.hide() | ||
104 | |||
105 | def create_visual_elements(self): | ||
106 | self.set_size_request(350, 350) | ||
107 | self.heading_label = gtk.Label() | ||
108 | self.heading_label.set_alignment(0, 0) | ||
109 | self.warning_label = gtk.Label() | ||
110 | self.warning_label.set_selectable(True) | ||
111 | self.warning_label.set_alignment(0, 0) | ||
112 | self.textWindow = gtk.ScrolledWindow() | ||
113 | |||
114 | table = gtk.Table(1, 10, False) | ||
115 | |||
116 | cancel_button = gtk.Button() | ||
117 | cancel_button.set_label("Close") | ||
118 | cancel_button.connect("clicked", self.cancel_button_cb) | ||
119 | cancel_button.set_size_request(110, 30) | ||
120 | |||
121 | self.previous_button = gtk.Button() | ||
122 | image1 = gtk.image_new_from_stock(gtk.STOCK_GO_BACK, gtk.ICON_SIZE_BUTTON) | ||
123 | image1.show() | ||
124 | box = gtk.HBox(False, 6) | ||
125 | box.show() | ||
126 | self.previous_button.add(box) | ||
127 | lbl = gtk.Label("Previous") | ||
128 | lbl.show() | ||
129 | box.pack_start(image1, expand=False, fill=False, padding=3) | ||
130 | box.pack_start(lbl, expand=True, fill=True, padding=3) | ||
131 | self.previous_button.connect("clicked", self.previous_button_cb) | ||
132 | self.previous_button.set_size_request(110, 30) | ||
133 | |||
134 | self.next_button = gtk.Button() | ||
135 | image2 = gtk.image_new_from_stock(gtk.STOCK_GO_FORWARD, gtk.ICON_SIZE_BUTTON) | ||
136 | image2.show() | ||
137 | box = gtk.HBox(False, 6) | ||
138 | box.show() | ||
139 | self.next_button.add(box) | ||
140 | lbl = gtk.Label("Next") | ||
141 | lbl.show() | ||
142 | box.pack_start(lbl, expand=True, fill=True, padding=3) | ||
143 | box.pack_start(image2, expand=False, fill=False, padding=3) | ||
144 | self.next_button.connect("clicked", self.next_button_cb) | ||
145 | self.next_button.set_size_request(110, 30) | ||
146 | |||
147 | #when there more than one warning, we need "previous" and "next" button | ||
148 | if self.warn_nb>1: | ||
149 | self.vbox.pack_start(self.heading_label, expand=False, fill=False) | ||
150 | self.vbox.pack_start(self.warning_label, expand=False, fill=False) | ||
151 | self.vbox.pack_start(self.textWindow, expand=False, fill=False) | ||
152 | table.attach(cancel_button, 6, 7, 0, 1, xoptions=gtk.SHRINK) | ||
153 | table.attach(self.previous_button, 7, 8, 0, 1, xoptions=gtk.SHRINK) | ||
154 | table.attach(self.next_button, 8, 9, 0, 1, xoptions=gtk.SHRINK) | ||
155 | self.vbox.pack_end(table, expand=False, fill=False) | ||
156 | else: | ||
157 | self.vbox.pack_start(self.heading_label, expand=False, fill=False) | ||
158 | self.vbox.pack_start(self.warning_label, expand=False, fill=False) | ||
159 | self.vbox.pack_start(self.textWindow, expand=False, fill=False) | ||
160 | cancel_button = self.add_button("Close", gtk.RESPONSE_CANCEL) | ||
161 | HobAltButton.style_button(cancel_button) | ||
162 | |||
163 | self.refresh_components() | ||