From ac062810942b190e6b12807c2d3ec6e0f487558f Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Mon, 08 Aug 2011 11:45:25 +0000 Subject: refactoring of toolbar layout so that common tools are on the main toolbar I did another refactoring of the TamTamEdit toolbars this weekend. I like the new organization from a user perspective: the frequently used tools -- playback and edit -- are on the main toolbar; secondary toolbars contain record, generate, and properties. See http://wiki.sugarlabs.org/go/Talk:Design_Team/Toolbar_Catalog#Proposed_toolbars_for_TamTamEdit --- (limited to 'Edit') diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py index 1d625af..625ad85 100644 --- a/Edit/EditToolbars.py +++ b/Edit/EditToolbars.py @@ -90,6 +90,13 @@ def common_buttons(toolbar, edit): toolbar.insert(toolbar.paintButton, -1) toolbar.paintButton.show() + # Duplicate button + toolbar.duplicateButton = ToggleToolButton('duplicate') + toolbar.duplicateButton.connect('toggled', edit.handleDuplicate) + toolbar.insert(toolbar.duplicateButton, -1) + toolbar.duplicateButton.show() + toolbar.duplicateButton.set_tooltip(_('Duplicate')) + class mainToolbar(gtk.Toolbar): def __init__(self, edit): @@ -102,8 +109,32 @@ class mainToolbar(gtk.Toolbar): common_buttons(self, self.edit) -class toolsToolbar(gtk.Toolbar): - def __init__(self, edit, add_common_buttons=True): +class generateToolbar(gtk.Toolbar): + def __init__(self, edit): + gtk.Toolbar.__init__(self) + + self.edit = edit + + self.tooltips = gtk.Tooltips() + + # BigGeneration button + self.bigGenerationButton = ToolButton('diceB') + self.bigGenerationButton.connect('clicked', self.edit.createNewTune) + self.insert(self.bigGenerationButton, -1) + self.bigGenerationButton.show() + self.bigGenerationButton.set_tooltip(_('Generate Tune')) + + # Generation button + self._generationPalette = generationPalette(_('Generation'), self.edit) + self.generationButton = ToggleToolButton('dice') + #self.generationButton.connect(None) + self.generationButton.set_palette(self._generationPalette) + self.insert(self.generationButton, -1) + self.generationButton.show() + + +class recordToolbar(gtk.Toolbar): + def __init__(self, edit): gtk.Toolbar.__init__(self) self.edit = edit @@ -126,18 +157,13 @@ class toolsToolbar(gtk.Toolbar): self.recordOggButton.show() self.recordOggButton.set_tooltip(_('Record to ogg')) - self.separator = gtk.SeparatorToolItem() - self.separator.set_expand(False) - self.separator.set_draw(True) - self.insert(self.separator,-1) - self.separator.show() +class toolsToolbar(gtk.Toolbar): + def __init__(self, edit): + gtk.Toolbar.__init__(self) - # Duplicate button - self.duplicateButton = ToggleToolButton('duplicate') - self.duplicateButton.connect('toggled', self.handleDuplicate) - self.insert(self.duplicateButton, -1) - self.duplicateButton.show() - self.duplicateButton.set_tooltip(_('Duplicate')) + self.edit = edit + + self.tooltips = gtk.Tooltips() # Volume / Tempo button self._volumeTempoPalette = volumeTempoPalette(_('Volume / Tempo'), self.edit) @@ -146,44 +172,13 @@ class toolsToolbar(gtk.Toolbar): self.insert(self.volumeTempoButton, -1) self.volumeTempoButton.show() - self.separator = gtk.SeparatorToolItem() - self.separator.set_expand(False) - self.separator.set_draw(True) - self.insert(self.separator,-1) - self.separator.show() - - # BigGeneration button - self.bigGenerationButton = ToolButton('diceB') - self.bigGenerationButton.connect('clicked', self.edit.createNewTune) - self.insert(self.bigGenerationButton, -1) - self.bigGenerationButton.show() - self.bigGenerationButton.set_tooltip(_('Generate Tune')) - - # Generation button - self._generationPalette = generationPalette(_('Generation'), self.edit) - self.generationButton = ToggleToolButton('dice') - #self.generationButton.connect(None) - self.generationButton.set_palette(self._generationPalette) - self.insert(self.generationButton, -1) - self.generationButton.show() - # Properties button self._propertiesPalette = propertiesPalette(_('Properties'), self.edit) - self.propsButton = ToggleToolButton('props') + self.propsButton = ToggleToolButton('preferences-system') self.propsButton.set_palette(self._propertiesPalette) self.insert(self.propsButton, -1) self.propsButton.show() - def handleDuplicate(self, widget): - if widget.get_active(): - if self.edit.getContext() == 0: # Page - self.edit.pageDuplicate() - elif self.edit.getContext() == 1: # Track - self.edit.trackDuplicateWidget(widget) - elif self.edit.getContext() == 2: # Note - self.edit.noteDuplicateWidget(widget) - widget.set_active(False) - class pointerPalette(Palette): def __init__(self, label, edit): diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py index 27538ba..a5a9daf 100644 --- a/Edit/MainWindow.py +++ b/Edit/MainWindow.py @@ -15,6 +15,8 @@ from common.Util.CSoundClient import new_csound_client from common.Util.CSoundNote import CSoundNote from EditToolbars import common_buttons from EditToolbars import mainToolbar +from EditToolbars import recordToolbar +from EditToolbars import generateToolbar from EditToolbars import toolsToolbar from gettext import gettext as _ from subprocess import Popen @@ -388,11 +390,6 @@ class MainWindow(gtk.EventBox): if Config.HAVE_TOOLBOX: from sugar.graphics.toolbarbox import ToolbarButton - separator = gtk.SeparatorToolItem() - separator.props.draw = True - separator.set_expand(False) - self.activity.toolbox.toolbar.insert(separator, -1) - common_buttons(self.activity.toolbox.toolbar, self) self._activity_toolbar = self.activity.toolbox.toolbar self._play_button = self.activity.toolbox.toolbar.playButton @@ -403,6 +400,23 @@ class MainWindow(gtk.EventBox): separator.set_expand(False) self.activity.toolbox.toolbar.insert(separator, -1) + self._generateToolbar = generateToolbar(self) + self._generateToolbar.show() + generate_toolbar_button = ToolbarButton(label=_('Generate'), + page=self._generateToolbar, + icon_name='diceB') + generate_toolbar_button.show() + self.activity.toolbox.toolbar.insert(generate_toolbar_button, -1) + + self._recordToolbar = recordToolbar(self) + self._recordToolbar.show() + record_toolbar_button = ToolbarButton(label=_('Record'), + page=self._recordToolbar, + icon_name='media-record') + record_toolbar_button.show() + self.activity.toolbox.toolbar.insert(record_toolbar_button, -1) + self._record_button = self._recordToolbar.recordButton + self._toolsToolbar = toolsToolbar(self) self._toolsToolbar.show() tools_toolbar_button = ToolbarButton(label=_('Tools'), @@ -410,7 +424,6 @@ class MainWindow(gtk.EventBox): icon_name='preferences-system') tools_toolbar_button.show() self.activity.toolbox.toolbar.insert(tools_toolbar_button, -1) - self._record_button = self._toolsToolbar.recordButton separator = gtk.SeparatorToolItem() separator.props.draw = False @@ -1549,6 +1562,16 @@ class MainWindow(gtk.EventBox): #----------------------------------- # callback functions #----------------------------------- + def handleDuplicate(self, widget): + if widget.get_active(): + if self.getContext() == 0: # Page + self.pageDuplicate() + elif self.getContext() == 1: # Track + self.trackDuplicateWidget(widget) + elif self.getContext() == 2: # Note + self.noteDuplicateWidget(widget) + widget.set_active(False) + def handleKeyboardShortcuts(self,event): keyval = event.keyval @@ -1858,9 +1881,9 @@ class MainWindow(gtk.EventBox): self.context = context if self.context == CONTEXT.NOTE: - self._toolsToolbar.generationButton.set_sensitive(False) + self._generateToolbar.generationButton.set_sensitive(False) else: - self._toolsToolbar.generationButton.set_sensitive(True) + self._generateToolbar.generationButton.set_sensitive(True) def getContext(self): return self.context -- cgit v0.9.1