cola: add more documentation strings to the cola modules
[git-cola.git] / cola / controllers / bookmark.py
blob4ed1b08c384a7593fa121c63f9844133a3679d62
1 #!/usr/bin/env python
2 """This controller handles the bookmarks dialog."""
4 import os
5 import sys
7 from PyQt4 import QtGui
9 from cola import utils
10 from cola import qtutils
11 from cola.qobserver import QObserver
12 from cola.settings import SettingsModel
13 from cola.views import BookmarkView
15 def save_bookmark():
16 model = SettingsModel()
17 bookmark = os.getcwd()
18 if bookmark not in model.bookmarks:
19 model.add_bookmarks(bookmark)
20 model.save_all_settings()
21 qtutils.information("Bookmark Saved")
23 def manage_bookmarks():
24 model = SettingsModel()
25 view = BookmarkView(QtGui.qApp.activeWindow())
26 ctl = BookmarkController(model, view)
27 view.show()
28 if view.exec_() == QtGui.QDialog.Accepted:
29 model.save_all_settings()
31 class BookmarkController(QObserver):
32 def init(self, model, view):
33 self.add_observables( 'bookmarks' )
34 self.add_callbacks(button_open = self.open,
35 button_delete = self.delete)
36 self.refresh_view()
38 def open(self):
39 selection = qtutils.get_selection_list(self.view.bookmarks,
40 self.model.bookmarks)
41 if not selection:
42 return
43 for item in selection:
44 utils.fork("git", "cola", item)
46 def delete(self):
47 selection = qtutils.get_selection_list(self.view.bookmarks,
48 self.model.bookmarks)
49 if not selection:
50 return
51 for item in selection:
52 self.model.bookmarks.remove(item)
53 self.refresh_view()