class ActivityDockWidget(DockWidgetWidget): """ a dock widget for activities """ def __init__(self, parent, **params): super(ActivityDockWidget, self).__init__(parent, title=params.get('title', 'Activities'), **params) self.setObjectName("ActivityDockWidget") self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea | Qt.TopDockWidgetArea | Qt.BottomDockWidgetArea) layout = QVBoxLayout() layout.setMargin(0) # no margin for internal layout self.dockComposite = CompositeWidget(self, layout=layout, not_add_widget_to_parent_layout=True) self.listWidget = ListWidgetWidget(self.dockComposite, list_item_double_clicked_handler=self.__list_item_handler__, selectionMode=QAbstractItemView.MultiSelection, sizePolicy=QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) for activity in ActivityManager.getActivities(PLUGIN_ACTIVITY_TYPE): if activity: ListWidgetItemWidget(self.listWidget, text=activity.label, data=activity) self.clearAll = PushButtonWidget(self.dockComposite, i18n="clear.all.activity.button", i18n_def="Clear all activities", clicked_handler=self.__clear_list__) self.setWidget(self.dockComposite) parent.addDockWidget(Qt.RightDockWidgetArea, self) SignalDispatcher.addSignalSubscriber(self, ADD_ACTIVITY_SIGNAL, self.__add_activity__) SignalDispatcher.addSignalSubscriber(self, CLEAR_ACTIVITIES_SIGNAL, self.__clear_list__) def __list_item_handler__(self, listItem): data = listItem.data(Qt.UserRole) if data: activity = data.toPyObject() if activity: activity() def __add_activity__(self, activity): if activity: ListWidgetItemWidget(self.listWidget, text=activity.label, data=activity) def __clear_list__(self): ActivityManager.clearActivities() self.listWidget.clear()
class ActivityDockWidget(DockWidgetWidget): """ a dock widget for activities """ def __init__(self, parent, **params): super(ActivityDockWidget, self).__init__(parent, title=params.get('title', 'Activities'), **params) self.setObjectName("ActivityDockWidget") self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea | Qt.TopDockWidgetArea | Qt.BottomDockWidgetArea) layout = QVBoxLayout() layout.setMargin(0) # no margin for internal layout self.dockComposite = CompositeWidget( self, layout=layout, not_add_widget_to_parent_layout=True) self.listWidget = ListWidgetWidget( self.dockComposite, list_item_double_clicked_handler=self.__list_item_handler__, selectionMode=QAbstractItemView.MultiSelection, sizePolicy=QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) for activity in ActivityManager.getActivities(PLUGIN_ACTIVITY_TYPE): if activity: ListWidgetItemWidget(self.listWidget, text=activity.label, data=activity) self.clearAll = PushButtonWidget(self.dockComposite, i18n="clear.all.activity.button", i18n_def="Clear all activities", clicked_handler=self.__clear_list__) self.setWidget(self.dockComposite) parent.addDockWidget(Qt.RightDockWidgetArea, self) SignalDispatcher.addSignalSubscriber(self, ADD_ACTIVITY_SIGNAL, self.__add_activity__) SignalDispatcher.addSignalSubscriber(self, CLEAR_ACTIVITIES_SIGNAL, self.__clear_list__) def __list_item_handler__(self, listItem): data = listItem.data(Qt.UserRole) if data: activity = data.toPyObject() if activity: activity() def __add_activity__(self, activity): if activity: ListWidgetItemWidget(self.listWidget, text=activity.label, data=activity) def __clear_list__(self): ActivityManager.clearActivities() self.listWidget.clear()