00001 ############################################################################## 00002 # 00003 # Copyright (c) 2007-2008 Albert Cervera i Areny <albert@nan-tic.com> 00004 # 00005 # WARNING: This program as such is intended to be used by professional 00006 # programmers who take the whole responsability of assessing all potential 00007 # consequences resulting from its eventual inadequacies and bugs 00008 # End users who are looking for a ready-to-use solution with commercial 00009 # garantees and support are strongly adviced to contract a Free Software 00010 # Service Company 00011 # 00012 # This program is Free Software; you can redistribute it and/or 00013 # modify it under the terms of the GNU General Public License 00014 # as published by the Free Software Foundation; either version 2 00015 # of the License, or (at your option) any later version. 00016 # 00017 # This program is distributed in the hope that it will be useful, 00018 # but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 # GNU General Public License for more details. 00021 # 00022 # You should have received a copy of the GNU General Public License 00023 # along with this program; if not, write to the Free Software 00024 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00025 # 00026 ############################################################################## 00027 00028 from PyQt4.QtGui import * 00029 from PyQt4.QtCore import * 00030 from Koo import Rpc 00031 00032 ## @brief The ToolBar class is a widget (which inherits QToolBar) and is used 00033 # as the toolbar in forms. 00034 # 00035 # The Toolbar will have Vertical orientation and ToolButtonTextBesideIcon. 00036 class ToolBar(QToolBar): 00037 ## @brief Creates a new ToolBar instance. 00038 def __init__(self, parent=None): 00039 QToolBar.__init__(self, parent) 00040 self.setOrientation( Qt.Vertical ) 00041 self.setToolButtonStyle( Qt.ToolButtonTextBesideIcon ) 00042 self.loaded = False 00043 00044 ## @brief Initializes the toolbar with a list of Action objects. 00045 # 00046 # Note that it automatically adds a separator between actions of different types 00047 # such as between 'print' and 'action'. This function can only be called once. 00048 # Calling this function more times won't do anything. 00049 def setup(self, actions): 00050 if self.loaded: 00051 return 00052 self.loaded = True 00053 last = None 00054 for action in actions: 00055 if action.type() == 'plugin': 00056 continue 00057 if last and last != action.type(): 00058 self.addSeparator() 00059 last = action.type() 00060 self.addAction( action ) 00061