~ubuntu-branches/ubuntu/trusty/pitivi/trusty

« back to all changes in this revision

Viewing changes to pitivi/ui/effectlist.py

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2011-07-07 13:43:47 UTC
  • mto: (6.1.9 sid) (1.2.12)
  • mto: This revision was merged to the branch mainline in revision 32.
  • Revision ID: james.westby@ubuntu.com-20110707134347-cari9kxjiakzej9z
Tags: upstream-0.14.1
ImportĀ upstreamĀ versionĀ 0.14.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#
17
17
# You should have received a copy of the GNU Lesser General Public
18
18
# License along with this program; if not, write to the
19
 
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20
 
# Boston, MA 02111-1307, USA.
 
19
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 
20
# Boston, MA 02110-1301, USA.
21
21
 
22
22
import gtk
23
23
import pango
57
57
INVISIBLE = gtk.gdk.pixbuf_new_from_file(os.path.join(get_pixmap_dir(),
58
58
    "invisible.png"))
59
59
 
 
60
 
60
61
class EffectList(gtk.VBox, Loggable):
61
62
    """ Widget for listing effects """
62
63
 
77
78
        self._current_effect_name = None
78
79
        self._current_tooltip_icon = None
79
80
 
80
 
 
81
81
        #Searchbox and combobox
82
82
        hfilters = gtk.HBox()
83
83
        hfilters.set_spacing(SPACING)
88
88
        self.effectCategory = gtk.combo_box_new_text()
89
89
        self.effectType.set_active(VIDEO_EFFECT)
90
90
 
91
 
 
92
91
        hfilters.pack_start(self.effectType, expand=True)
93
92
        hfilters.pack_end(self.effectCategory, expand=True)
94
93
 
155
154
        self.iconview_scrollwin.add(self.iconview)
156
155
        self.iconview.set_property("has_tooltip", True)
157
156
 
158
 
        self.effectType.connect ("changed", self._effectTypeChangedCb)
159
 
 
160
 
        self.effectCategory.connect ("changed", self._effectCategoryChangedCb)
161
 
 
162
 
        self.searchEntry.connect ("changed", self.searchEntryChangedCb)
163
 
        self.searchEntry.connect ("button-press-event", self.searchEntryActivateCb)
164
 
        self.searchEntry.connect ("focus-out-event", self.searchEntryDesactvateCb)
165
 
        self.searchEntry.connect ("icon-press", self.searchEntryIconClickedCb)
 
157
        self.effectType.connect("changed", self._effectTypeChangedCb)
 
158
 
 
159
        self.effectCategory.connect("changed", self._effectCategoryChangedCb)
 
160
 
 
161
        self.searchEntry.connect("changed", self.searchEntryChangedCb)
 
162
        self.searchEntry.connect("button-press-event", self.searchEntryActivateCb)
 
163
        self.searchEntry.connect("focus-out-event", self.searchEntryDesactvateCb)
 
164
        self.searchEntry.connect("icon-press", self.searchEntryIconClickedCb)
166
165
 
167
166
        self.treeview.connect("button-press-event", self._buttonPressEventCb)
168
167
        self.treeview.connect("select-cursor-row", self._enterPressEventCb)
169
168
        self.treeview.connect("motion-notify-event", self._motionNotifyEventCb)
170
169
        self.treeview.connect("query-tooltip", self._queryTooltipCb)
171
170
        self.treeview.connect("button-release-event", self._buttonReleaseCb)
172
 
        self.treeview.drag_source_set(0,[], gtk.gdk.ACTION_COPY)
 
171
        self.treeview.drag_source_set(0, [], gtk.gdk.ACTION_COPY)
173
172
        self.treeview.connect("drag_begin", self._dndDragBeginCb)
174
173
        self.treeview.connect("drag_data_get", self._dndDataGetCb)
175
174
 
176
175
        self.iconview.connect("button-press-event", self._buttonPressEventCb)
177
176
        self.iconview.connect("activate-cursor-item", self._enterPressEventCb)
178
177
        self.iconview.connect("query-tooltip", self._queryTooltipCb)
179
 
        self.iconview.drag_source_set(0,[], gtk.gdk.ACTION_COPY)
 
178
        self.iconview.drag_source_set(0, [], gtk.gdk.ACTION_COPY)
180
179
        self.iconview.connect("motion-notify-event", self._motionNotifyEventCb)
181
180
        self.iconview.connect("button-release-event", self._buttonReleaseCb)
182
181
        self.iconview.connect("drag_begin", self._dndDragBeginCb)
204
203
        hsearch.show_all()
205
204
 
206
205
    def _addMenuItems(self, uiman):
207
 
      view_menu_item = uiman.get_widget('/MainMenuBar/View')
208
 
      view_menu = view_menu_item.get_submenu()
209
 
      seperator = gtk.SeparatorMenuItem()
210
 
      self.treeview_menuitem = gtk.RadioMenuItem(None,
211
 
              _("Show Video Effects as a List"))
212
 
      self.iconview_menuitem = gtk.RadioMenuItem(self.treeview_menuitem,
213
 
              _("Show Video Effects as Icons"))
214
 
 
215
 
      if self.settings.lastEffectView == SHOW_TREEVIEW:
216
 
          self.treeview_menuitem.set_active(True)
217
 
          self.iconview_menuitem.set_active(False)
218
 
      else:
219
 
          self.treeview_menuitem.set_active(False)
220
 
          self.iconview_menuitem.set_active(True)
221
 
 
222
 
      self.treeview_menuitem.connect("toggled", self._treeViewMenuItemToggledCb)
223
 
      view_menu.append(seperator)
224
 
      view_menu.append(self.treeview_menuitem)
225
 
      view_menu.append(self.iconview_menuitem)
226
 
      self.treeview_menuitem.show()
227
 
      self.iconview_menuitem.show()
228
 
      seperator.show()
229
 
 
230
 
      self.effect_view = self.settings.lastEffectView
 
206
        view_menu_item = uiman.get_widget('/MainMenuBar/View')
 
207
        view_menu = view_menu_item.get_submenu()
 
208
        seperator = gtk.SeparatorMenuItem()
 
209
        self.treeview_menuitem = gtk.RadioMenuItem(None,
 
210
                _("Show Video Effects as a List"))
 
211
        self.iconview_menuitem = gtk.RadioMenuItem(self.treeview_menuitem,
 
212
                _("Show Video Effects as Icons"))
 
213
 
 
214
        if self.settings.lastEffectView == SHOW_TREEVIEW:
 
215
            self.treeview_menuitem.set_active(True)
 
216
            self.iconview_menuitem.set_active(False)
 
217
        else:
 
218
            self.treeview_menuitem.set_active(False)
 
219
            self.iconview_menuitem.set_active(True)
 
220
 
 
221
        self.treeview_menuitem.connect("toggled", self._treeViewMenuItemToggledCb)
 
222
        view_menu.append(seperator)
 
223
        view_menu.append(self.treeview_menuitem)
 
224
        view_menu.append(self.iconview_menuitem)
 
225
        self.treeview_menuitem.show()
 
226
        self.iconview_menuitem.show()
 
227
        seperator.show()
 
228
 
 
229
        self.effect_view = self.settings.lastEffectView
231
230
 
232
231
    def _addFactories(self, elements, effectType):
233
232
        for element in elements:
234
 
            name =element.get_name()
 
233
            name = element.get_name()
235
234
            effect = self.app.effects.getFactoryFromName(name)
236
 
            self.storemodel.append([ effect.getHumanName(),
 
235
            self.storemodel.append([effect.getHumanName(),
237
236
                                     effect.getDescription(), effectType,
238
237
                                     effect.getCategories(),
239
238
                                     effect, name,
297
296
                return view.path_is_selected(path) and len(selection)
298
297
        return False
299
298
 
300
 
    def _enterPressEventCb(self, view, event = None):
 
299
    def _enterPressEventCb(self, view, event=None):
301
300
        factory_name = self.getSelectedItems()
302
301
        self.app.gui.clipconfig.effect_expander.addEffectToCurrentSelection(factory_name)
303
302
 
363
362
            self._dragStarted = True
364
363
 
365
364
        if self.effect_view is SHOW_TREEVIEW:
366
 
          if chain_up:
367
 
              gtk.TreeView.do_button_press_event(view, event)
368
 
          else:
369
 
              view.grab_focus()
 
365
            if chain_up:
 
366
                gtk.TreeView.do_button_press_event(view, event)
 
367
            else:
 
368
                view.grab_focus()
370
369
 
371
370
        return False
372
371
 
378
377
 
379
378
        if self.effect_view is SHOW_TREEVIEW or\
380
379
                    self._effect_type_ref == AUDIO_EFFECT:
381
 
            view.set_tooltip_row (tooltip, context[1][0])
 
380
            view.set_tooltip_row(tooltip, context[1][0])
382
381
        elif self.effect_view is SHOW_ICONVIEW and\
383
382
                     self._effect_type_ref == VIDEO_EFFECT:
384
 
            view.set_tooltip_item (tooltip, context[1][0])
 
383
            view.set_tooltip_item(tooltip, context[1][0])
385
384
        name = self.modelFilter.get_value(context[2], COL_ELEMENT_NAME)
386
385
        if self._current_effect_name != name:
387
386
            self._current_effect_name = name
395
394
        txt = "<b>%s:</b>\n%s" % (longname, description)
396
395
        if self.effect_view == SHOW_ICONVIEW:
397
396
            tooltip.set_icon(None)
398
 
        else :
 
397
        else:
399
398
            tooltip.set_icon(self._current_tooltip_icon)
400
399
        tooltip.set_markup(txt)
401
400
 
434
433
    def _effectCategoryChangedCb(self, combobox):
435
434
        self.modelFilter.refilter()
436
435
 
437
 
    def searchEntryChangedCb (self, entry):
 
436
    def searchEntryChangedCb(self, entry):
438
437
        self.modelFilter.refilter()
439
438
 
440
 
    def searchEntryIconClickedCb (self, entry, unused, unsed1):
 
439
    def searchEntryIconClickedCb(self, entry, unused, unsed1):
441
440
        entry.set_text("")
442
441
 
443
442
    def searchEntryDesactvateCb(self, entry, event):
463
462
        return not bool(view.get_path_at_pos(int(event.x), int(event.y)))
464
463
 
465
464
    def _getDndTuple(self):
466
 
         if self.effectType.get_active() == VIDEO_EFFECT:
 
465
        if self.effectType.get_active() == VIDEO_EFFECT:
467
466
            return [dnd.VIDEO_EFFECT_TUPLE, dnd.EFFECT_TUPLE]
468
 
         else:
 
467
        else:
469
468
            return [dnd.AUDIO_EFFECT_TUPLE, dnd.EFFECT_TUPLE]