Skip to content

Commit 97dee02

Browse files
authored
Merge pull request #3432 from janezd/move-graph-gui-to-widget
Projections: Move OWPlotGUI instance from graph to widget
2 parents 6e7ead1 + 61839ef commit 97dee02

File tree

8 files changed

+55
-55
lines changed

8 files changed

+55
-55
lines changed

Orange/widgets/unsupervised/owmds.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,17 @@ def __init__(self):
169169

170170
self.graph.pause_drawing_pairs()
171171

172-
g = self.graph.gui
173-
self.size_model = g.points_models[2]
174-
self.size_model.order = g.points_models[2].order[:1] + ("Stress", ) + \
175-
g.points_models[2].order[1:]
172+
self.size_model = self.gui.points_models[2]
173+
self.size_model.order = \
174+
self.gui.points_models[2].order[:1] \
175+
+ ("Stress", ) + \
176+
self.gui.points_models[2].order[1:]
176177
# self._initialize()
177178

178179
def _add_controls(self):
179180
self._add_controls_optimization()
180181
super()._add_controls()
181-
self.graph.gui.add_control(
182+
self.gui.add_control(
182183
self._effects_box, gui.hSlider, "Show similar pairs:",
183184
master=self.graph, value="connected_pairs", minValue=0,
184185
maxValue=20, createLabel=False, callback=self._on_connected_changed

Orange/widgets/unsupervised/owtsne.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def _add_controls(self):
8181
# showing all attributes in combo boxes can cause problems
8282
# QUICKFIX: Remove a separator and attributes from order
8383
# (leaving just the class and metas)
84-
self.models = self.graph.gui.points_models
84+
self.models = self.gui.points_models
8585
for model in self.models:
8686
model.order = model.order[:-2]
8787

Orange/widgets/utils/plot/owplotgui.py

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -438,9 +438,9 @@ class OWPlotGUI:
438438

439439
JITTER_SIZES = [0, 0.1, 0.5, 1, 2, 3, 4, 5, 7, 10]
440440

441-
442-
def __init__(self, plot):
443-
self._plot = plot
441+
def __init__(self, master):
442+
self._master = master
443+
self._plot = master.graph
444444
self.color_model = DomainModel(
445445
placeholder="(Same color)", valid_types=DomainModel.PRIMITIVE)
446446
self.shape_model = DomainModel(
@@ -599,17 +599,17 @@ def show_legend_check_box(self, widget):
599599

600600
def tooltip_shows_all_check_box(self, widget):
601601
gui.checkBox(
602-
widget=widget, master=self._plot.master, value="tooltip_shows_all",
602+
widget=widget, master=self._master, value="tooltip_shows_all",
603603
label='Show all data on mouse hover')
604604

605605
def class_density_check_box(self, widget):
606-
self._plot.master.cb_class_density = \
606+
self._master.cb_class_density = \
607607
self._check_box(widget=widget, value="class_density",
608608
label="Show color regions",
609609
cb_name=self._plot.update_density)
610610

611611
def regression_line_check_box(self, widget):
612-
self._plot.master.cb_reg_line = \
612+
self._master.cb_reg_line = \
613613
self._check_box(widget=widget, value="show_reg_line",
614614
label="Show regression line",
615615
cb_name=self._plot.update_regression_line)
@@ -651,7 +651,7 @@ def _slider(self, widget, value, label, min_value, max_value, step, cb_name,
651651
widget, gui.hSlider, label,
652652
master=self._plot, value=value, minValue=min_value,
653653
maxValue=max_value, step=step, createLabel=show_number,
654-
callback=self._get_callback(cb_name, self._plot.master))
654+
callback=self._get_callback(cb_name, self._master))
655655

656656
def point_size_slider(self, widget, label="Symbol size: "):
657657
'''
@@ -668,8 +668,8 @@ def alpha_value_slider(self, widget, label="Opacity: "):
668668
def _combo(self, widget, value, label, cb_name, items=(), model=None):
669669
return self.add_control(
670670
widget, gui.comboBox, label,
671-
master=self._plot.master, value=value, items=items, model=model,
672-
callback=self._get_callback(cb_name, self._plot.master),
671+
master=self._master, value=value, items=items, model=model,
672+
callback=self._get_callback(cb_name, self._master),
673673
orientation=Qt.Horizontal, valueType=str,
674674
sendSelectedValue=True, contentsLength=12,
675675
labelWidth=50)
@@ -885,3 +885,19 @@ def theme_combo_box(self, widget):
885885
c.addItem('Light')
886886
c.addItem('Dark')
887887
return c
888+
889+
def box_zoom_select(self, parent):
890+
box_zoom_select = gui.vBox(parent, "Zoom/Select")
891+
zoom_select_toolbar = self.zoom_select_toolbar(
892+
box_zoom_select, nomargin=True,
893+
buttons=[self.StateButtonsBegin,
894+
self.SimpleSelect, self.Pan, self.Zoom,
895+
self.StateButtonsEnd,
896+
self.ZoomReset]
897+
)
898+
buttons = zoom_select_toolbar.buttons
899+
buttons[self.Zoom].clicked.connect(self._plot.zoom_button_clicked)
900+
buttons[self.Pan].clicked.connect(self._plot.pan_button_clicked)
901+
buttons[self.SimpleSelect].clicked.connect(self._plot.select_button_clicked)
902+
buttons[self.ZoomReset].clicked.connect(self._plot.reset_button_clicked)
903+
return box_zoom_select

Orange/widgets/visualize/owfreeviz.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ def __init__(self):
246246
def _add_controls(self):
247247
self.__add_controls_start_box()
248248
super()._add_controls()
249-
self.graph.gui.add_control(
249+
self.gui.add_control(
250250
self._effects_box, gui.hSlider, "Hide radius:", master=self.graph,
251251
value="hide_radius", minValue=0, maxValue=100, step=10,
252252
createLabel=False, callback=self.__radius_slider_changed

Orange/widgets/visualize/owlinearprojection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ def _add_controls(self):
283283
self._add_controls_variables()
284284
self._add_controls_placement()
285285
super()._add_controls()
286-
self.graph.gui.add_control(
286+
self.gui.add_control(
287287
self._effects_box, gui.hSlider, "Hide radius:", master=self.graph,
288288
value="hide_radius", minValue=0, maxValue=100, step=10,
289289
createLabel=False, callback=self.__radius_slider_changed

Orange/widgets/visualize/owscatterplot.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,12 @@ def _add_controls(self):
231231
self._add_controls_axis()
232232
self._add_controls_sampling()
233233
super()._add_controls()
234-
self.graph.gui.add_widget(self.graph.gui.JitterNumericValues,
235-
self._effects_box)
236-
self.graph.gui.add_widgets([self.graph.gui.ShowGridLines,
237-
self.graph.gui.ToolTipShowsAll,
238-
self.graph.gui.RegressionLine],
239-
self._plot_box)
234+
self.gui.add_widget(self.gui.JitterNumericValues, self._effects_box)
235+
self.gui.add_widgets(
236+
[self.gui.ShowGridLines,
237+
self.gui.ToolTipShowsAll,
238+
self.gui.RegressionLine],
239+
self._plot_box)
240240

241241
def _add_controls_axis(self):
242242
common_options = dict(
@@ -298,17 +298,13 @@ def findvar(name, iterable):
298298
if isinstance(self.attr_y, str):
299299
self.attr_y = findvar(self.attr_y, self.xy_model)
300300
if isinstance(self.attr_label, str):
301-
self.attr_label = findvar(
302-
self.attr_label, self.graph.gui.label_model)
301+
self.attr_label = findvar(self.attr_label, self.gui.label_model)
303302
if isinstance(self.attr_color, str):
304-
self.attr_color = findvar(
305-
self.attr_color, self.graph.gui.color_model)
303+
self.attr_color = findvar(self.attr_color, self.gui.color_model)
306304
if isinstance(self.attr_shape, str):
307-
self.attr_shape = findvar(
308-
self.attr_shape, self.graph.gui.shape_model)
305+
self.attr_shape = findvar(self.attr_shape, self.gui.shape_model)
309306
if isinstance(self.attr_size, str):
310-
self.attr_size = findvar(
311-
self.attr_size, self.graph.gui.size_model)
307+
self.attr_size = findvar(self.attr_size, self.gui.size_model)
312308

313309
def check_data(self):
314310
self.clear_messages()

Orange/widgets/visualize/owscatterplotgraph.py

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from Orange.widgets.settings import Setting
2727
from Orange.widgets.utils import classdensity
2828
from Orange.widgets.utils.colorpalette import ColorPaletteGenerator
29-
from Orange.widgets.utils.plot import OWPalette, OWPlotGUI
29+
from Orange.widgets.utils.plot import OWPalette
3030
from Orange.widgets.visualize.owscatterplotgraph_obsolete import (
3131
OWScatterPlotGraph as OWScatterPlotGraphObs
3232
)
@@ -386,7 +386,6 @@ def __init__(self, scatter_widget, parent=None, view_box=ViewBox):
386386
self.sample_size = None
387387
self.sample_indices = None
388388

389-
self.gui = OWPlotGUI(self)
390389
self.palette = None
391390

392391
self.shape_legend = self._create_legend(((1, 0), (1, 0)))
@@ -1291,21 +1290,6 @@ def help_event(self, event):
12911290
else:
12921291
return False
12931292

1294-
def box_zoom_select(self, parent):
1295-
g = self.gui
1296-
box_zoom_select = gui.vBox(parent, "Zoom/Select")
1297-
zoom_select_toolbar = g.zoom_select_toolbar(
1298-
box_zoom_select, nomargin=True,
1299-
buttons=[g.StateButtonsBegin, g.SimpleSelect, g.Pan, g.Zoom,
1300-
g.StateButtonsEnd, g.ZoomReset]
1301-
)
1302-
buttons = zoom_select_toolbar.buttons
1303-
buttons[g.Zoom].clicked.connect(self.zoom_button_clicked)
1304-
buttons[g.Pan].clicked.connect(self.pan_button_clicked)
1305-
buttons[g.SimpleSelect].clicked.connect(self.select_button_clicked)
1306-
buttons[g.ZoomReset].clicked.connect(self.reset_button_clicked)
1307-
return box_zoom_select
1308-
13091293

13101294
class HelpEventDelegate(EventDelegate):
13111295
def __init__(self, delegate, parent=None):

Orange/widgets/visualize/utils/widget.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from Orange.widgets.utils.colorpalette import (
2424
ColorPaletteGenerator, ContinuousPaletteGenerator, DefaultRGBColors
2525
)
26+
from Orange.widgets.utils.plot import OWPlotGUI
2627
from Orange.widgets.utils.sql import check_sql_input
2728
from Orange.widgets.visualize.owscatterplotgraph import OWScatterPlotBase
2829
from Orange.widgets.visualize.utils.component import OWGraphWithAnchors
@@ -387,14 +388,16 @@ def _add_graph(self):
387388
box.layout().addWidget(self.graph.plot_widget)
388389

389390
def _add_controls(self):
390-
self._point_box = self.graph.gui.point_properties_box(self.controlArea)
391-
self._effects_box = self.graph.gui.effects_box(self.controlArea)
392-
self._plot_box = self.graph.gui.plot_properties_box(self.controlArea)
393-
self.control_area_stretch = gui.widgetBox(self.controlArea)
391+
self.gui = OWPlotGUI(self)
392+
area = self.controlArea
393+
self._point_box = self.gui.point_properties_box(area)
394+
self._effects_box = self.gui.effects_box(area)
395+
self._plot_box = self.gui.plot_properties_box(area)
396+
self.control_area_stretch = gui.widgetBox(area)
394397
self.control_area_stretch.layout().addStretch(100)
395-
self.graph.box_zoom_select(self.controlArea)
396-
gui.auto_commit(self.controlArea, self, "auto_commit",
397-
"Send Selection", "Send Automatically")
398+
self.gui.box_zoom_select(area)
399+
gui.auto_commit(
400+
area, self, "auto_commit", "Send Selection", "Send Automatically")
398401

399402
@property
400403
def effective_variables(self):

0 commit comments

Comments
 (0)