13 from PyQt4.QtCore import QProcess, QObject, QByteArray, QCoreApplication, \ |
13 from PyQt4.QtCore import QProcess, QObject, QByteArray, QCoreApplication, \ |
14 QThread |
14 QThread |
15 from PyQt4.QtGui import QDialog |
15 from PyQt4.QtGui import QDialog |
16 |
16 |
17 from .HgUtilities import prepareProcess |
17 from .HgUtilities import prepareProcess |
18 |
|
19 import Preferences |
|
20 |
18 |
21 |
19 |
22 class HgClient(QObject): |
20 class HgClient(QObject): |
23 """ |
21 """ |
24 Class implementing the Mercurial command server interface. |
22 Class implementing the Mercurial command server interface. |
41 super().__init__(parent) |
39 super().__init__(parent) |
42 |
40 |
43 self.__server = None |
41 self.__server = None |
44 self.__started = False |
42 self.__started = False |
45 self.__version = None |
43 self.__version = None |
46 self.__encoding = Preferences.getSystem("IOEncoding") |
44 self.__encoding = parent.getEncoding() |
47 self.__cancel = False |
45 self.__cancel = False |
48 self.__commandRunning = False |
46 self.__commandRunning = False |
49 self.__repoPath = repoPath |
47 self.__repoPath = repoPath |
50 |
48 |
51 # generate command line and environment |
49 # generate command line and environment |
52 self.__serverArgs = [] |
50 self.__serverArgs = parent.initCommand("serve") # parent is hg |
53 self.__serverArgs.append("serve") |
|
54 self.__serverArgs.append("--cmdserver") |
51 self.__serverArgs.append("--cmdserver") |
55 self.__serverArgs.append("pipe") |
52 self.__serverArgs.append("pipe") |
56 self.__serverArgs.append("--config") |
53 self.__serverArgs.append("--config") |
57 self.__serverArgs.append("ui.interactive=True") |
54 self.__serverArgs.append("ui.interactive=True") |
58 if repoPath: |
55 if repoPath: |
59 self.__serverArgs.append("--repository") |
56 self.__serverArgs.append("--repository") |
60 self.__serverArgs.append(repoPath) |
57 self.__serverArgs.append(repoPath) |
61 |
58 |
62 if encoding: |
59 if encoding: |
63 self.__encoding = encoding |
60 self.__encoding = encoding |
|
61 if "--encoding" in self.__serverArgs: |
|
62 # use the defined encoding via the environment |
|
63 index = self.__serverArgs.index("--encoding") |
|
64 del self.__serverArgs[index:index + 2] |
64 |
65 |
65 def startServer(self): |
66 def startServer(self): |
66 """ |
67 """ |
67 Public method to start the command server. |
68 Public method to start the command server. |
68 |
69 |