eric6_hexeditor.py

changeset 4650
b1ca3bcde70b
child 5389
9b1c800daff3
equal deleted inserted replaced
4649:bbc8b2de9173 4650:b1ca3bcde70b
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3
4 # Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
5 #
6
7 """
8 Eric6 Hex Editor.
9
10 This is the main Python script that performs the necessary initialization
11 of the hex editor and starts the Qt event loop. This is a standalone version
12 of the integrated hex editor.
13 """
14
15 from __future__ import unicode_literals
16
17 import Toolbox.PyQt4ImportHook # __IGNORE_WARNING__
18
19 try: # Only for Py2
20 import Globals.compatibility_fixes # __IGNORE_WARNING__
21 except (ImportError):
22 pass
23
24 import sys
25 import os
26
27 for arg in sys.argv[:]:
28 if arg.startswith("--config="):
29 import Globals
30 configDir = arg.replace("--config=", "")
31 Globals.setConfigDir(configDir)
32 sys.argv.remove(arg)
33 elif arg.startswith("--settings="):
34 from PyQt5.QtCore import QSettings
35 settingsDir = os.path.expanduser(arg.replace("--settings=", ""))
36 if not os.path.isdir(settingsDir):
37 os.makedirs(settingsDir)
38 QSettings.setPath(QSettings.IniFormat, QSettings.UserScope,
39 settingsDir)
40 sys.argv.remove(arg)
41
42 from Globals import AppInfo
43
44 from Toolbox import Startup
45
46
47 def createMainWidget(argv):
48 """
49 Function to create the main widget.
50
51 @param argv list of commandline parameters (list of strings)
52 @return reference to the main widget (QWidget)
53 """
54 from HexEdit.HexEditMainWindow import HexEditMainWindow
55
56 try:
57 fileName = argv[1]
58 except IndexError:
59 fileName = ""
60
61 editor = HexEditMainWindow(fileName, None)
62 return editor
63
64
65 def main():
66 """
67 Main entry point into the application.
68 """
69 options = [
70 ("--config=configDir",
71 "use the given directory as the one containing the config files"),
72 ("--settings=settingsDir",
73 "use the given directory to store the settings files"),
74 ("", "name of file to edit")
75 ]
76 appinfo = AppInfo.makeAppInfo(sys.argv,
77 "Eric6 Hex Editor",
78 "",
79 "Little tool to edit binary files.",
80 options)
81 res = Startup.simpleAppStartup(sys.argv,
82 appinfo,
83 createMainWidget)
84 sys.exit(res)
85
86 if __name__ == '__main__':
87 main()

eric ide

mercurial