From 3bb791f32003c7cbc1bba4ef5417f31db05e5869 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Thu, 27 Dec 2007 18:54:02 -0800 Subject: [PATCH] Simplified controllers by using qtutils.set_items/add_items Signed-off by: David Aguilar --- ugitlibs/__init__.py | 3 --- ugitlibs/controllers.py | 16 ++++++---------- ugitlibs/createbranchcontroller.py | 9 +++------ ugitlibs/pushcontroller.py | 22 +++++++++++++--------- ugitlibs/qtutils.py | 5 ++++- ugitlibs/repobrowsercontroller.py | 13 ++++++------- 6 files changed, 32 insertions(+), 36 deletions(-) diff --git a/ugitlibs/__init__.py b/ugitlibs/__init__.py index 9e6cf26..c6e43e5 100644 --- a/ugitlibs/__init__.py +++ b/ugitlibs/__init__.py @@ -1,5 +1,2 @@ import utils import cmds -import models -import views -import controllers diff --git a/ugitlibs/controllers.py b/ugitlibs/controllers.py index 781c315..755db78 100644 --- a/ugitlibs/controllers.py +++ b/ugitlibs/controllers.py @@ -719,8 +719,7 @@ class GitController(QObserver): lambda: self.commit_sha1_selected( browser, revs) ) - for summary in summaries: - browser.commitList.addItem(summary) + qtutils.set_items(browser.commitList, summaries) browser.show() result = browser.exec_() @@ -794,11 +793,8 @@ class GitController(QObserver): def __update_listwidget(self, widget, items, staged, untracked=False, append=False): - '''A helper method to populate a QListWidget with the - contents of modelitems.''' - if not append: - widget.clear() - for item in items: - qitem = self.__file_to_widget_item(item, - staged, untracked) - widget.addItem(qitem) + '''Populate a QListWidget with the custom icon items.''' + if not append: widget.clear() + qtutils.add_items( widget, + [ self.__file_to_widget_item(i, staged, untracked) + for i in items ]) diff --git a/ugitlibs/createbranchcontroller.py b/ugitlibs/createbranchcontroller.py index 2561308..d19dcca 100644 --- a/ugitlibs/createbranchcontroller.py +++ b/ugitlibs/createbranchcontroller.py @@ -125,12 +125,9 @@ class GitCreateBranchController(QObserver): ###################################################################### def __display_model(self): - '''Visualize the current state of the model.''' - branch_sources = self.__get_branch_sources() - self.view.branchRootList.clear() - for branch_source in branch_sources: - self.view.branchRootList.addItem(branch_source) - + branches = self.__get_branch_sources() + qtutils.set_items(self.view.branchRootList, branches) + def __get_branch_sources(self): '''Get the list of items for populating the branch root list.''' diff --git a/ugitlibs/pushcontroller.py b/ugitlibs/pushcontroller.py index 331129d..1c667f5 100644 --- a/ugitlibs/pushcontroller.py +++ b/ugitlibs/pushcontroller.py @@ -9,25 +9,29 @@ class GitPushController(QObserver): def __init__(self, model, view): QObserver.__init__(self,model,view) - self.model_to_view('remote', 'remoteText') - self.model_to_view('remotes', 'remoteList') + self.model_to_view('remote', 'remoteText') + self.model_to_view('remotes', 'remoteList') self.model_to_view('local_branch', 'localBranchText') self.model_to_view('remote_branch', 'remoteBranchText') self.model_to_view('local_branches', 'localBranchList') self.model_to_view('remote_branches', 'remoteBranchList') - self.add_signals('textChanged(const QString&)', view.remoteText, - view.localBranchText, view.remoteBranchText) + self.add_signals('textChanged(const QString&)', + view.remoteText, + view.localBranchText, + view.remoteBranchText) - self.add_signals( 'itemSelectionChanged()', view.remoteList, - view.localBranchList, view.remoteBranchList) + self.add_signals('itemSelectionChanged()', + view.remoteList, + view.localBranchList, + view.remoteBranchList) self.add_signals('released()', - view.pushButton, view.cancelButton) - - self.connect(view.cancelButton, 'clicked()', view.reject) + view.pushButton, + view.cancelButton) self.add_actions('remotes', self.remotes) + self.add_callbacks({ 'remoteList': self.remote_list, 'localBranchList': self.local_branch_list, diff --git a/ugitlibs/qtutils.py b/ugitlibs/qtutils.py index 2ac3a8f..6f01b05 100644 --- a/ugitlibs/qtutils.py +++ b/ugitlibs/qtutils.py @@ -77,9 +77,12 @@ def set_clipboard(text): QtGui.qApp.clipboard().setText(text, QClipboard.Clipboard) QtGui.qApp.clipboard().setText(text, QClipboard.Selection) +def add_items(widget, items): + for item in items: widget.addItem(item) + def set_items(widget, items): widget.clear() - for item in items: widget.addItem(item) + add_items(widget, items) def show_command(parent, output): if not output: return diff --git a/ugitlibs/repobrowsercontroller.py b/ugitlibs/repobrowsercontroller.py index db8a634..642b3ae 100644 --- a/ugitlibs/repobrowsercontroller.py +++ b/ugitlibs/repobrowsercontroller.py @@ -138,17 +138,16 @@ class GitRepoBrowserController(QObserver): with the current directories and items. Directories are always listed first.''' - self.view.commitList.clear() self.view.commitText.setText('') self.view.revisionLine.setText('') dir_icon = utils.get_directory_icon() file_icon = utils.get_file_icon() - for entry in self.model.get_directories(): - item = qtutils.create_listwidget_item(entry, dir_icon) - self.view.commitList.addItem(item) + qtutils.set_items(self.view.commitList, + map(lambda d: qtutils.create_listwidget_item(d, dir_icon), + self.model.get_directories())) - for entry in self.model.get_subtree_names(): - item = qtutils.create_listwidget_item(entry, file_icon) - self.view.commitList.addItem(item) + qtutils.add_items(self.view.commitList, + map(lambda s: qtutils.create_listwidget_item(s, file_icon), + self.model.get_subtree_names())) -- 2.11.4.GIT