~ubuntu-branches/ubuntu/trusty/spyder/trusty-proposed

« back to all changes in this revision

Viewing changes to spyderlib/widgets/findreplace.py

  • Committer: Bazaar Package Importer
  • Author(s): Ludovic Aubry
  • Date: 2010-06-28 23:43:02 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100628234302-3xnz0gcu0w83282r
Tags: 1.1.1-1
* New upstream release
* New maintainer address (Closes: #586833)
* Build with python 2.6 (Closes: #586824)

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
class FindReplace(QWidget):
29
29
    """
30
30
    Find widget
 
31
    
 
32
    Signals:
 
33
        visibility_changed(bool)
31
34
    """
32
35
    STYLE = {False: "background-color:rgb(255, 175, 90);",
33
36
             True: ""}
151
154
    def show(self):
152
155
        """Overrides Qt Method"""
153
156
        QWidget.show(self)
 
157
        self.emit(SIGNAL("visibility_changed(bool)"), True)
154
158
        if self.editor is not None:
155
159
            text = self.editor.selectedText()
156
 
            if len(text)>0:
 
160
            if len(text) > 0:
157
161
                self.search_text.setEditText(text)
158
162
                self.search_text.lineEdit().selectAll()
159
163
                self.refresh()
160
164
            else:
161
165
                self.search_text.lineEdit().selectAll()
 
166
            self.search_text.setFocus()
162
167
        
163
168
    def hide(self):
164
169
        """Overrides Qt Method"""
165
170
        for widget in self.replace_widgets:
166
171
            widget.hide()
167
172
        QWidget.hide(self)
 
173
        self.emit(SIGNAL("visibility_changed(bool)"), False)
168
174
        if self.editor is not None:
169
175
            self.editor.setFocus()
170
176
        
189
195
            self.find()
190
196
            
191
197
    def set_editor(self, editor, refresh=True):
192
 
        """Set parent editor"""
 
198
        """
 
199
        Set associated editor/web page:
 
200
            qtebase.TextEditBaseWidget
 
201
            qscibase.TextEditBaseWidget
 
202
            browser.WebView
 
203
        """
193
204
        self.editor = editor
 
205
        from PyQt4.QtWebKit import QWebView
 
206
        self.words_check.setVisible(not isinstance(editor, QWebView))
194
207
        if refresh:
195
208
            self.refresh()
196
209
        
197
210
    def find_next(self):
198
211
        """Find next occurence"""
199
 
        self.find(changed=False, forward=True)
 
212
        return self.find(changed=False, forward=True)
200
213
        
201
214
    def find_previous(self):
202
215
        """Find previous occurence"""
203
 
        self.find(changed=False, forward=False)
 
216
        return self.find(changed=False, forward=False)
204
217
        
205
218
    def text_has_changed(self, text):
206
219
        """Find text has changed"""
209
222
    def find(self, changed=True, forward=True):
210
223
        """Call the find function"""
211
224
        text = self.search_text.currentText()
212
 
        if len(text)==0:
 
225
        if len(text) == 0:
213
226
            self.search_text.lineEdit().setStyleSheet("")
214
227
            return None
215
228
        else:
233
246
                        # Text was already found, do nothing
234
247
                        pass
235
248
                    else:
236
 
                        self.find(changed=False, forward=True)
 
249
                        if not self.find(changed=False, forward=True):
 
250
                            break
237
251
                    first = False
238
252
                    wrapped = False
239
253
                    position = self.editor.get_position('cursor')
254
268
                    position0 = position1
255
269
                
256
270
                self.editor.replace(replace_text)
257
 
                self.find_next()
 
271
                if not self.find_next():
 
272
                    break
258
273
                if not self.all_check.isChecked():
259
274
                    break
260
275
            self.all_check.setCheckState(Qt.Unchecked)