Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py

Wed, 19 Mar 2014 19:26:30 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 19 Mar 2014 19:26:30 +0100
changeset 3408
b6e6a7062d12
parent 3302
e92f0dd51979
child 3484
645c12de6b0c
permissions
-rw-r--r--

Changed some Mercurial dialogs asking for a (tag, branch,...) name to convert spaces to underscores because spaces are not really recommended.

3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de>
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the shelve extension interface.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
10 import os
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
11
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
12 from PyQt4.QtCore import QProcess
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
13 from PyQt4.QtGui import QDialog
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
14
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
15 from E5Gui import E5MessageBox
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
16
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from ..HgExtension import HgExtension
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
18 from ..HgDialog import HgDialog
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 class Shelve(HgExtension):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Class implementing the shelve extension interface.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 def __init__(self, vcs):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Constructor
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param vcs reference to the Mercurial vcs object
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 super().__init__(vcs)
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
32
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
33 self.__unshelveKeep = False
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
34
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
35 self.__shelveBrowserDialog = None
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 def shutdown(self):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Public method used to shutdown the shelve interface.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
41 if self.__shelveBrowserDialog is not None:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
42 self.__shelveBrowserDialog.close()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
43
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
44 def __hgGetShelveNamesList(self, repodir):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
45 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
46 Private method to get the list of shelved changes.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
47
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
48 @param repodir directory name of the repository (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
49 @return list of shelved changes (list of string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
50 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
51 args = self.vcs.initCommand("shelve")
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
52 args.append('--list')
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
53 args.append('--quiet')
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
54
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
55 client = self.vcs.getClient()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
56 output = ""
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
57 if client:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
58 output = client.runcommand(args)[0]
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
59 else:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
60 process = QProcess()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
61 process.setWorkingDirectory(repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
62 process.start('hg', args)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
63 procStarted = process.waitForStarted(5000)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
64 if procStarted:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
65 finished = process.waitForFinished(30000)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
66 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
67 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
68 self.vcs.getEncoding(), 'replace')
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
69
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
70 shelveNamesList = []
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
71 for line in output.splitlines():
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
72 shelveNamesList.append(line.strip())
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
73
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
74 return shelveNamesList[:]
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
75
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
76 def hgShelve(self, name):
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
77 """
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
78 Public method to shelve current changes of files or directories.
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
79
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
80 @param name directory or file name (string) or list of directory
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
81 or file names (list of string)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
82 @return flag indicating that the project should be reread (boolean)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
83 """
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
84 if isinstance(name, list):
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
85 dname = self.vcs.splitPathList(name)[0]
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
86 else:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
87 dname = self.vcs.splitPath(name)[0]
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
88
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
89 # find the root of the repo
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
90 repodir = dname
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
91 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
92 repodir = os.path.dirname(repodir)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
93 if os.path.splitdrive(repodir)[1] == os.sep:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
94 return False
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
95
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
96 res = False
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
97 from .HgShelveDataDialog import HgShelveDataDialog
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
98 dlg = HgShelveDataDialog()
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
99 if dlg.exec_() == QDialog.Accepted:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
100 shelveName, dateTime, message, addRemove = dlg.getData()
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
101
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
102 args = self.vcs.initCommand("shelve")
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
103 if shelveName:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
104 args.append("--name")
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
105 args.append(shelveName)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
106 if message:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
107 args.append("--message")
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
108 args.append(message)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
109 if addRemove:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
110 args.append("--addRemove")
3292
2feabde31912 Made the last change a bit more robust.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3291
diff changeset
111 if dateTime.isValid():
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
112 args.append("--date")
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
113 args.append(dateTime.toString("yyyy-MM-dd hh:mm:ss"))
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
114 args.append("-v")
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
115
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
116 if isinstance(name, list):
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
117 self.vcs.addArguments(args, name)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
118 else:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
119 args.append(name)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
120
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
121 dia = HgDialog(self.tr('Shelve current changes'), self.vcs)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
122 res = dia.startProcess(args, repodir)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
123 if res:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
124 dia.exec_()
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
125 res = dia.hasAddOrDelete()
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
126 self.vcs.checkVCSStatus()
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
127 return res
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
128
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
129 def hgShelveBrowser(self, projectDir):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
130 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
131 Public method to show the shelve browser dialog.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
132
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
133 @param projectDir name of the project directory (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
134 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
135 if self.__shelveBrowserDialog is None:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
136 from .HgShelveBrowserDialog import HgShelveBrowserDialog
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
137 self.__shelveBrowserDialog = HgShelveBrowserDialog(
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
138 self.vcs)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
139 self.__shelveBrowserDialog.show()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
140 self.__shelveBrowserDialog.start(projectDir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
141
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
142 def hgUnshelve(self, name, shelveName=""):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
143 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
144 Public method to restore shelved changes to the project directory.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
145
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
146 @param name name of the project directory (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
147 @keyparam shelveName name of the shelve to restore (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
148 @return flag indicating that the project should be reread (boolean)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
149 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
150 # find the root of the repo
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
151 repodir = name
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
152 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
153 repodir = os.path.dirname(repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
154 if os.path.splitdrive(repodir)[1] == os.sep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
155 return False
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
156
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
157 res = False
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
158 from .HgUnshelveDataDialog import HgUnshelveDataDialog
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
159 dlg = HgUnshelveDataDialog(self.__hgGetShelveNamesList(repodir),
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
160 shelveName=shelveName)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
161 if dlg.exec_() == QDialog.Accepted:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
162 shelveName, keep = dlg.getData()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
163 self.__unshelveKeep = keep # store for potential continue
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
164
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
165 args = self.vcs.initCommand("unshelve")
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
166 if keep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
167 args.append("--keep")
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
168 if shelveName:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
169 args.append(shelveName)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
170
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
171 dia = HgDialog(self.tr('Restore shelved changes'), self.vcs)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
172 res = dia.startProcess(args, repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
173 if res:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
174 dia.exec_()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
175 res = dia.hasAddOrDelete()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
176 self.vcs.checkVCSStatus()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
177 return res
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
178
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
179 def hgUnshelveAbort(self, name):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
180 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
181 Public method to abort the ongoing restore operation.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
182
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
183 @param name name of the project directory (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
184 @return flag indicating that the project should be reread (boolean)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
185 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
186 # find the root of the repo
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
187 repodir = name
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
188 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
189 repodir = os.path.dirname(repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
190 if os.path.splitdrive(repodir)[1] == os.sep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
191 return False
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
192
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
193 args = self.vcs.initCommand("unshelve")
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
194 args.append("--abort")
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
195
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
196 dia = HgDialog(self.tr('Abort restore operation'), self.vcs)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
197 res = dia.startProcess(args, repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
198 if res:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
199 dia.exec_()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
200 res = dia.hasAddOrDelete()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
201 self.vcs.checkVCSStatus()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
202 return res
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
203
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
204 def hgUnshelveContinue(self, name):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
205 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
206 Public method to continue the ongoing restore operation.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
207
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
208 @param name name of the project directory (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
209 @return flag indicating that the project should be reread (boolean)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
210 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
211 # find the root of the repo
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
212 repodir = name
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
213 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
214 repodir = os.path.dirname(repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
215 if os.path.splitdrive(repodir)[1] == os.sep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
216 return False
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
217
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
218 args = self.vcs.initCommand("unshelve")
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
219 if self.__unshelveKeep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
220 args.append("--keep")
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
221 args.append("--continue")
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
222
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
223 dia = HgDialog(self.tr('Continue restore operation'), self.vcs)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
224 res = dia.startProcess(args, repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
225 if res:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
226 dia.exec_()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
227 res = dia.hasAddOrDelete()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
228 self.vcs.checkVCSStatus()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
229 return res
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
230
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
231 def hgDeleteShelves(self, name, shelveNames=None):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
232 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
233 Public method to delete named shelves.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
234
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
235 @param name name of the project directory (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
236 @param shelveNames name of shelves to delete (list of string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
237 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
238 # find the root of the repo
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
239 repodir = name
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
240 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
241 repodir = os.path.dirname(repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
242 if os.path.splitdrive(repodir)[1] == os.sep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
243 return
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
244
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
245 if not shelveNames:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
246 from .HgShelvesSelectionDialog import HgShelvesSelectionDialog
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
247 dlg = HgShelvesSelectionDialog(
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
248 self.tr("Select the shelves to be deleted:"),
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
249 self.__hgGetShelveNamesList(repodir))
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
250 if dlg.exec_() == QDialog.Accepted:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
251 shelveNames = dlg.getSelectedShelves()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
252 else:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
253 return
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
254
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
255 from UI.DeleteFilesConfirmationDialog import \
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
256 DeleteFilesConfirmationDialog
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
257 dlg = DeleteFilesConfirmationDialog(
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
258 None,
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
259 self.tr("Delete shelves"),
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
260 self.tr("Do you really want to delete these shelves?"),
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
261 shelveNames)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
262 if dlg.exec_() == QDialog.Accepted:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
263 args = self.vcs.initCommand("shelve")
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
264 args.append("--delete")
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
265 args.extend(shelveNames)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
266
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
267 dia = HgDialog(self.tr('Delete shelves'), self.vcs)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
268 res = dia.startProcess(args, repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
269 if res:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
270 dia.exec_()
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
271
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
272 def hgCleanupShelves(self, name):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
273 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
274 Public method to delete all shelves.
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
275
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
276 @param name name of the project directory (string)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
277 """
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
278 # find the root of the repo
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
279 repodir = name
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
280 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
281 repodir = os.path.dirname(repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
282 if os.path.splitdrive(repodir)[1] == os.sep:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
283 return
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
284
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
285 res = E5MessageBox.yesNo(
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
286 None,
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
287 self.tr("Delete all shelves"),
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
288 self.tr("""Do you really want to delete all shelved changes?"""))
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
289 if res:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3297
diff changeset
290 args = self.vcs.initCommand("shelve")
3297
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
291 args.append("--cleanup")
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
292
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
293 dia = HgDialog(self.tr('Delete all shelves'), self.vcs)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
294 res = dia.startProcess(args, repodir)
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
295 if res:
7b7e8124fb51 Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3292
diff changeset
296 dia.exec_()

eric ide

mercurial