77 self.mainSplitter.setStretchFactor(0, 1) |
77 self.mainSplitter.setStretchFactor(0, 1) |
78 self.mainSplitter.setStretchFactor(1, 2) |
78 self.mainSplitter.setStretchFactor(1, 2) |
79 self.diffSplitter.setStretchFactor(0, 1) |
79 self.diffSplitter.setStretchFactor(0, 1) |
80 self.diffSplitter.setStretchFactor(1, 2) |
80 self.diffSplitter.setStretchFactor(1, 2) |
81 |
81 |
82 self.__position = QPoint() |
|
83 |
|
84 if mode == "log": |
82 if mode == "log": |
85 self.setWindowTitle(self.tr("Mercurial Log")) |
83 self.setWindowTitle(self.tr("Mercurial Log")) |
86 elif mode == "incoming": |
84 elif mode == "incoming": |
87 self.setWindowTitle(self.tr("Mercurial Log (Incoming)")) |
85 self.setWindowTitle(self.tr("Mercurial Log (Incoming)")) |
88 elif mode == "outgoing": |
86 elif mode == "outgoing": |
366 self.process.state() != QProcess.NotRunning: |
364 self.process.state() != QProcess.NotRunning: |
367 self.process.terminate() |
365 self.process.terminate() |
368 QTimer.singleShot(2000, self.process.kill) |
366 QTimer.singleShot(2000, self.process.kill) |
369 self.process.waitForFinished(3000) |
367 self.process.waitForFinished(3000) |
370 |
368 |
371 self.__position = self.pos() |
369 self.vcs.getPlugin().setPreferences( |
|
370 "LogBrowserGeometry", self.saveGeometry()) |
|
371 self.vcs.getPlugin().setPreferences( |
|
372 "LogBrowserSplitterStates", [ |
|
373 self.mainSplitter.saveState(), |
|
374 self.detailsSplitter.saveState(), |
|
375 self.diffSplitter.saveState(), |
|
376 ] |
|
377 ) |
372 |
378 |
373 e.accept() |
379 e.accept() |
374 |
380 |
375 def show(self): |
381 def show(self): |
376 """ |
382 """ |
377 Public slot to show the dialog. |
383 Public slot to show the dialog. |
378 """ |
384 """ |
379 if not self.__position.isNull(): |
385 self.__reloadGeometry() |
380 self.move(self.__position) |
386 self.__restoreSplitterStates() |
381 self.__resetUI() |
387 self.__resetUI() |
382 |
388 |
383 super(HgLogBrowserDialog, self).show() |
389 super(HgLogBrowserDialog, self).show() |
|
390 |
|
391 def __reloadGeometry(self): |
|
392 """ |
|
393 Private method to restore the geometry. |
|
394 """ |
|
395 geom = self.vcs.getPlugin().getPreferences("LogBrowserGeometry") |
|
396 if geom.isEmpty(): |
|
397 s = QSize(1000, 800) |
|
398 self.resize(s) |
|
399 else: |
|
400 self.restoreGeometry(geom) |
|
401 |
|
402 def __restoreSplitterStates(self): |
|
403 """ |
|
404 Private method to restore the state of the various splitters. |
|
405 """ |
|
406 states = self.vcs.getPlugin().getPreferences( |
|
407 "LogBrowserSplitterStates") |
|
408 if len(states) == 3: |
|
409 # we have three splitters |
|
410 self.mainSplitter.restoreState(states[0]) |
|
411 self.detailsSplitter.restoreState(states[1]) |
|
412 self.diffSplitter.restoreState(states[2]) |
384 |
413 |
385 def __resetUI(self): |
414 def __resetUI(self): |
386 """ |
415 """ |
387 Private method to reset the user interface. |
416 Private method to reset the user interface. |
388 """ |
417 """ |