mirror of
				https://github.com/arsenetar/dupeguru.git
				synced 2025-09-11 17:58:17 +00:00 
			
		
		
		
	[#165 state:fixed] Don't collapse tree nodes on changing folder states. [Qt]
This commit is contained in:
		
							parent
							
								
									99e3c34060
								
							
						
					
					
						commit
						2ba3584b7e
					
				| @ -173,6 +173,11 @@ class PyDirectoryOutline(PyOutline): | |||||||
|     def addDirectory_(self, path): |     def addDirectory_(self, path): | ||||||
|         self.py.add_directory(path) |         self.py.add_directory(path) | ||||||
|      |      | ||||||
|  |     # python --> cocoa | ||||||
|  |     def refresh_states(self): | ||||||
|  |         # Under cocoa, both refresh() and refresh_states() do the same thing. | ||||||
|  |         self.cocoa.refresh() | ||||||
|  |      | ||||||
| 
 | 
 | ||||||
| class PyResultTable(PyTable): | class PyResultTable(PyTable): | ||||||
|     py_class = ResultTable |     py_class = ResultTable | ||||||
|  | |||||||
| @ -34,6 +34,11 @@ class DirectoryNode(Node): | |||||||
|             self.append(DirectoryNode(self._tree, path, path[-1])) |             self.append(DirectoryNode(self._tree, path, path[-1])) | ||||||
|         self._loaded = True |         self._loaded = True | ||||||
|      |      | ||||||
|  |     def update_all_states(self): | ||||||
|  |         self._state = STATE_ORDER.index(self._tree.app.directories.get_state(self._directory_path)) | ||||||
|  |         for node in self: | ||||||
|  |             node.update_all_states() | ||||||
|  |      | ||||||
|     # The state propery is an index to the combobox |     # The state propery is an index to the combobox | ||||||
|     @property |     @property | ||||||
|     def state(self): |     def state(self): | ||||||
| @ -46,11 +51,14 @@ class DirectoryNode(Node): | |||||||
|         self._state = value |         self._state = value | ||||||
|         state = STATE_ORDER[value] |         state = STATE_ORDER[value] | ||||||
|         self._tree.app.directories.set_state(self._directory_path, state) |         self._tree.app.directories.set_state(self._directory_path, state) | ||||||
|         self._tree._refresh() |         self._tree.update_all_states() | ||||||
|         self._tree.view.refresh() |  | ||||||
|      |      | ||||||
| 
 | 
 | ||||||
| class DirectoryTree(GUIObject, Tree): | class DirectoryTree(GUIObject, Tree): | ||||||
|  |     #--- model -> view calls: | ||||||
|  |     # refresh() | ||||||
|  |     # refresh_states() # when only states label need to be refreshed | ||||||
|  |     # | ||||||
|     def __init__(self, view, app): |     def __init__(self, view, app): | ||||||
|         GUIObject.__init__(self, view, app) |         GUIObject.__init__(self, view, app) | ||||||
|         Tree.__init__(self) |         Tree.__init__(self) | ||||||
| @ -68,6 +76,11 @@ class DirectoryTree(GUIObject, Tree): | |||||||
|     def add_directory(self, path): |     def add_directory(self, path): | ||||||
|         self.app.add_directory(path) |         self.app.add_directory(path) | ||||||
|      |      | ||||||
|  |     def update_all_states(self): | ||||||
|  |         for node in self: | ||||||
|  |             node.update_all_states() | ||||||
|  |         self.view.refresh_states() | ||||||
|  |      | ||||||
|     #--- Event Handlers |     #--- Event Handlers | ||||||
|     def directories_changed(self): |     def directories_changed(self): | ||||||
|         self._refresh() |         self._refresh() | ||||||
|  | |||||||
| @ -8,7 +8,7 @@ | |||||||
| 
 | 
 | ||||||
| import urllib.parse | import urllib.parse | ||||||
| 
 | 
 | ||||||
| from PyQt4.QtCore import pyqtSignal, Qt, QRect, QUrl | from PyQt4.QtCore import pyqtSignal, Qt, QRect, QUrl, QModelIndex | ||||||
| from PyQt4.QtGui import (QComboBox, QStyledItemDelegate, QApplication, QBrush, QStyle, | from PyQt4.QtGui import (QComboBox, QStyledItemDelegate, QApplication, QBrush, QStyle, | ||||||
|     QStyleOptionComboBox, QStyleOptionViewItemV4) |     QStyleOptionComboBox, QStyleOptionViewItemV4) | ||||||
| 
 | 
 | ||||||
| @ -69,7 +69,7 @@ class DirectoriesModel(TreeModel): | |||||||
|     def _getChildren(self): |     def _getChildren(self): | ||||||
|         return list(self.model) |         return list(self.model) | ||||||
|      |      | ||||||
|     def columnCount(self, parent): |     def columnCount(self, parent=QModelIndex()): | ||||||
|         return 2 |         return 2 | ||||||
|      |      | ||||||
|     def data(self, index, role): |     def data(self, index, role): | ||||||
| @ -100,7 +100,7 @@ class DirectoriesModel(TreeModel): | |||||||
|         data = bytes(mimeData.data('text/uri-list')).decode('ascii') |         data = bytes(mimeData.data('text/uri-list')).decode('ascii') | ||||||
|         unquoted = urllib.parse.unquote(data) |         unquoted = urllib.parse.unquote(data) | ||||||
|         urls = unquoted.split('\r\n') |         urls = unquoted.split('\r\n') | ||||||
|         paths = [str(QUrl(url).toLocalFile()) for url in urls if url] |         paths = [QUrl(url).toLocalFile() for url in urls if url] | ||||||
|         for path in paths: |         for path in paths: | ||||||
|             self.model.add_directory(path) |             self.model.add_directory(path) | ||||||
|         self.foldersAdded.emit(paths) |         self.foldersAdded.emit(paths) | ||||||
| @ -143,3 +143,6 @@ class DirectoriesModel(TreeModel): | |||||||
|     def refresh(self): |     def refresh(self): | ||||||
|         self.reset() |         self.reset() | ||||||
|      |      | ||||||
|  |     def refresh_states(self): | ||||||
|  |         self.refreshData() | ||||||
|  |      | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user