Changeset 2192:7711f612e2bd
- Timestamp:
- 11/23/09 20:42:00 (9 months ago)
- Author:
- Ronny Pfannschmidt <Ronny.Pfannschmidt@…>
- Branch:
- default
- Message:
-
don't prematurely cache projects on documents, fixes #338
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r2162
|
r2192
|
|
| 110 | 110 | else: |
| 111 | 111 | self.filename = None |
| 112 | | self.project = project |
| 113 | 112 | self.editor = None |
| 114 | 113 | self._list = [] |
| 115 | 114 | self._str = "" |
| 116 | 115 | self.creation_time = time.time() |
| | 116 | self._project = project |
| 117 | 117 | |
| 118 | 118 | if filename is None: |
| … |
… |
|
| 123 | 123 | self.newfile_index = None |
| 124 | 124 | |
| 125 | | if project is None: |
| 126 | | self.project, self.project_relative_path = self.get_project_relative_path() |
| 127 | | else: |
| 128 | | self.project_relative_path = project.get_relative_path_for(filename) |
| 129 | | |
| 130 | 125 | self.clear() |
| | 126 | |
| | 127 | |
| | 128 | def project_and_path(self): |
| | 129 | if self.filename is None: |
| | 130 | return None, None |
| | 131 | if self.boss is not None: |
| | 132 | return self.boss.cmd('project', 'get_project_for_document', document=self) |
| | 133 | |
| | 134 | @property |
| | 135 | def project(self): |
| | 136 | if self._project is not None: |
| | 137 | return self._project |
| | 138 | pp = self.project_and_path() |
| | 139 | if pp is not None: |
| | 140 | self._project = pp[0] |
| | 141 | return pp[0] |
| | 142 | |
| | 143 | @property |
| | 144 | def project_relative_path(self): |
| | 145 | pp = self.project_and_path() |
| | 146 | if pp is not None: |
| | 147 | return pp[1] |
| | 148 | return os.path.join(*os.path.split(self.directory)[-2:]) |
| | 149 | |
| 131 | 150 | |
| 132 | 151 | def clear(self): |
| … |
… |
|
| 443 | 462 | return '' |
| 444 | 463 | |
| 445 | | def get_project_relative_path(self): |
| 446 | | """ |
| 447 | | Returns the relative path to Project's root |
| 448 | | """ |
| 449 | | if self.filename is None: |
| 450 | | return None, None |
| 451 | | |
| 452 | | #XXX: move to buffer manager |
| 453 | | if self.boss is None: |
| 454 | | return None, os.path.join(*os.path.split(self.directory)[-2:]) |
| 455 | | match = self.boss.cmd('project', 'get_project_for_document', document=self) |
| 456 | | if match is None: |
| 457 | | return None, os.path.join(*os.path.split(self.directory)[-2:]) |
| 458 | | else: |
| 459 | | project, path = match |
| 460 | | return project, path |
| 461 | | |
| 462 | | |
| 463 | 464 | @property |
| 464 | 465 | def is_new(self): |