@@ -65,6 +65,13 @@ def match(self, context, filename, sheets):
6565 return ContextHandler .NO_MATCH
6666
6767
68+ class LineEditSelectOnFocus (QtGui .QLineEdit ):
69+ def focusInEvent (self , event ):
70+ super ().focusInEvent (event )
71+ # If selectAll is called directly, placing the cursor unselects the text
72+ QtCore .QTimer .singleShot (0 , self .selectAll )
73+
74+
6875class OWFile (widget .OWWidget , RecentPathsWComboMixin ):
6976 name = "File"
7077 id = "orange.widgets.data.file"
@@ -168,6 +175,7 @@ def __init__(self):
168175 self .url_combo = url_combo = QtGui .QComboBox ()
169176 url_model = NamedURLModel (self .sheet_names )
170177 url_model .wrap (self .recent_urls )
178+ url_combo .setLineEdit (LineEditSelectOnFocus ())
171179 url_combo .setModel (url_model )
172180 url_combo .setSizePolicy (Policy .MinimumExpanding , Policy .Fixed )
173181 url_combo .setEditable (True )
@@ -249,7 +257,13 @@ def browse_file(self, in_demos=False):
249257
250258 # Open a file, create data from it and send it over the data channel
251259 def load_data (self ):
260+ self .editor_model .set_domain (None )
252261 self .reader = self ._get_reader ()
262+ if not self .reader :
263+ self .data = None
264+ self .send ("Data" , None )
265+ self .info .setText ("No data." )
266+ return
253267 self ._update_sheet_combo ()
254268
255269 errors = []
@@ -288,7 +302,9 @@ def _get_reader(self):
288302 reader .select_sheet (self .recent_paths [0 ].sheet )
289303 return reader
290304 elif self .source == self .URL :
291- return UrlReader (self .url_combo .currentText ())
305+ url = self .url_combo .currentText ().strip ()
306+ if url :
307+ return UrlReader (url )
292308
293309 def _update_sheet_combo (self ):
294310 if len (self .reader .sheets ) < 2 :
0 commit comments