qtext 0.6.2 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,6 @@
1
+ == 0.6.5
2
+ * Remove Enumerable from TabWidget. Enumerable#count clashes with TabWidget#count
3
+
1
4
  == 0.6.2
2
5
  * Fix some errors with ActionBuilder. Add ActionBuilder#group_names
3
6
 
@@ -1,6 +1,6 @@
1
1
  require 'qtext/version'
2
2
 
3
- AUTHOR = 'FIXME full name' # can also be an array of Authors
3
+ AUTHOR = 'John Anderson' # can also be an array of Authors
4
4
  EMAIL = "panic@semiosix.com"
5
5
  DESCRIPTION = "description of gem"
6
6
  GEM_NAME = 'qtext' # what ppl will type to install your gem
@@ -57,8 +57,16 @@ module Qt
57
57
  # Return the value of the block
58
58
  def override_cursor( cursor_constant, &block )
59
59
  Qt::Application.setOverrideCursor( Qt::Cursor.new( cursor_constant ) )
60
- retval = yield
60
+ exception = nil
61
+ begin
62
+ retval = yield
63
+ rescue Exception => e
64
+ #~ puts e.message
65
+ #~ puts e.backtrace
66
+ exception = e
67
+ end
61
68
  Qt::Application.restoreOverrideCursor
69
+ Kernel.raise exception unless exception.nil?
62
70
  retval
63
71
  end
64
72
  end
@@ -106,6 +114,26 @@ module Qt
106
114
 
107
115
  # can't alias this because it doesn't work with Qt bindings
108
116
  def size; self.count; end
117
+
118
+ def first
119
+ self.at(0)
120
+ end
121
+
122
+ def last
123
+ self.at(count-1)
124
+ end
125
+ end
126
+
127
+ class ItemSelectionModel
128
+ # return a set of indexes with the given column index and the rows
129
+ # from the selection
130
+ def row_indexes( column = 0 )
131
+ row_set = selected_indexes.inject(Set.new) do |set,index|
132
+ set << index.row
133
+ end
134
+
135
+ row_set.map{|row| model.create_index( row, column ) }
136
+ end
109
137
  end
110
138
 
111
139
  class ItemSelectionRange
@@ -158,6 +186,10 @@ module Qt
158
186
  # new_index = index.choppy { |i| i.row += 1 }
159
187
  # new_index = index.choppy :row => 16
160
188
  # same_index = index.choppy
189
+ #
190
+ # If the column value is not a Numeric, a method called field_column
191
+ # will be called on the model with column value. field_column should return
192
+ # the column index.
161
193
  def choppy( *args, &block )
162
194
  return ModelIndex.invalid unless self.valid?
163
195
 
@@ -176,6 +208,11 @@ module Qt
176
208
  raise TypeError.new( "incorrect args #{args.inspect}" )
177
209
  end
178
210
 
211
+ # convert a column name to a column index
212
+ unless stash.column.is_a?( Numeric )
213
+ stash.column = model.field_column( stash.column )
214
+ end
215
+
179
216
  # return an invalid index if it's out of bounds,
180
217
  # or the choppy'd index if it's OK.
181
218
  if stash.row >= model.row_count || stash.column >= model.column_count
@@ -189,24 +226,6 @@ module Qt
189
226
  # Make keystrokes events easier to work with. For <tt>Qt::Key_Whatever</tt>
190
227
  # events, KeyEvent instances will now respond to <tt>whatever?</tt>
191
228
  class KeyEvent
192
- # override otherwise the new method_missing fails
193
- # to call the old_method_missing
194
- def modifiers
195
- old_method_missing( :modifiers )
196
- end
197
-
198
- # override otherwise the new method_missing fails
199
- # to call the old_method_missing
200
- def key
201
- old_method_missing( :key )
202
- end
203
-
204
- # override otherwise the new method_missing fails
205
- # to call the old_method_missing
206
- def text
207
- old_method_missing( :text )
208
- end
209
-
210
229
  # is the control key pressed?
211
230
  def ctrl?
212
231
  modifiers & Qt::ControlModifier.to_i == Qt::ControlModifier.to_i
@@ -215,15 +234,15 @@ module Qt
215
234
  alias_method :old_method_missing, :method_missing
216
235
 
217
236
  # Provide a shortcut for the Qt::Key_Whatever constants. Just say event.whatever?
218
- def method_missing( sym, *args )
237
+ def method_missing( sym, *args, &block )
219
238
  begin
220
239
  if sym.to_s[-1] == "?"[0]
221
240
  key?( sym.to_s[0..-2] )
222
241
  else
223
- old_method_missing( sym, args )
242
+ old_method_missing( sym, *args, &block )
224
243
  end
225
244
  rescue Exception => e
226
- old_method_missing( sym, args )
245
+ old_method_missing( sym, *args, &block )
227
246
  end
228
247
  end
229
248
 
@@ -255,23 +274,17 @@ module Qt
255
274
  end
256
275
 
257
276
  class TabWidget
258
- include Enumerable
259
- def each_tab( &block )
260
- save_index = self.current_index
261
- (0...self.count).each do |i|
262
- yield( self.widget(i) )
263
- end
277
+ # return the collection of tabs.
278
+ def tabs
279
+ tabs = (0...count).map{|i| self.widget( i ) }
264
280
  end
265
- alias_method :each, :each_tab
266
- # can't alias this because it doesn't work with Qt bindings
267
- def size; self.count; end
268
281
 
269
282
  def []( index )
270
283
  self.widget( index )
271
284
  end
272
285
 
273
286
  def clear
274
- remove_tab( size - 1 ) while size > 0
287
+ remove_tab( count - 1 ) while count > 0
275
288
  end
276
289
  end
277
290
 
@@ -2,7 +2,7 @@ module Qtext #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 6
5
- TINY = 2
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qtext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
- - FIXME full name
7
+ - John Anderson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-29 00:00:00 +02:00
12
+ date: 2009-09-02 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -62,6 +62,8 @@ files:
62
62
  - test/test_widget.rb
63
63
  has_rdoc: true
64
64
  homepage: http://qtext.rubyforge.org
65
+ licenses: []
66
+
65
67
  post_install_message: ""
66
68
  rdoc_options:
67
69
  - --main
@@ -83,9 +85,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
85
  requirements: []
84
86
 
85
87
  rubyforge_project: qtext
86
- rubygems_version: 1.3.1
88
+ rubygems_version: 1.3.5
87
89
  signing_key:
88
- specification_version: 2
90
+ specification_version: 3
89
91
  summary: description of gem
90
92
  test_files:
91
93
  - test/test_model_index_extensions.rb