summaryrefslogtreecommitdiff
path: root/src/configuration/Appconfig.py
blob: 38a555959aee976fc7316ea32e83f5fa88bd7fc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# =========================================================================
#
#          FILE: Appconfig.py
#
#         USAGE: ---
#
#   DESCRIPTION: This define all configuration used in Application.
#
#       OPTIONS: ---
#  REQUIREMENTS: ---
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: Fahim Khan, fahim.elex@gmail.com
#  ORGANIZATION: eSim team at FOSSEE, IIT Bombay.
#       CREATED: Wednesday 04 February 2015
#      REVISION:  ---
# =========================================================================


from PyQt4 import QtGui
import os
import json
from configparser import SafeConfigParser


class Appconfig(QtGui.QWidget):
    """
    All configuration goes here.
    May change in future for code optimization.

    This class also contains function for
    - Printing error.
    - Showing warnings.
    - Dispalying information.
    """

    # Home directory
    home = os.path.join(os.path.expanduser("~"), "eSim-Workspace")
    default_workspace = {"workspace": home}
    # Current Project detail
    current_project = {"ProjectName": None}
    # Current Subcircuit detail
    current_subcircuit = {"SubcircuitName": None}
    # Workspace detail
    workspace_text = '''eSim stores your project in a folder called a \
    eSim-Workspace. You can choose a different workspace folder to use\
     for this session.'''
    procThread_list = []
    proc_dict = {}
    # holds the pids of all external windows corresponds to the current project
    dock_dict = {}  # holds all dockwidgets
    dictPath = os.path.join(os.path.expanduser("~"), ".projectExplorer.txt")
    noteArea = {}

    parser_esim = SafeConfigParser()
    parser_esim.read(
        os.path.join(
            os.path.expanduser("~"),
            os.path.join(
                '.esim',
                'config.ini')))

    # Try catch added, since eSim cannot be accessed under parser for Win10
    try:
        modelica_map_json = parser_esim.get('eSim', 'MODELICA_MAP_JSON')
    except BaseException:
        print("Cannot access eSim in parser")

    try:
        project_explorer = json.load(open(dictPath))
    except BaseException:
        project_explorer = {}
    process_obj = []

    def __init__(self):
        super(Appconfig, self).__init__()
        # Application Details
        self._APPLICATION = 'eSim'
        self._VERSION = 'v1.1'
        self._AUTHOR = 'Fahim'

        # Application geometry setting
        self._app_xpos = 100
        self._app_ypos = 100
        self._app_width = 600
        self._app_heigth = 400

    def print_info(self, info):
        self.noteArea['Note'].append('[INFO]: ' + info)

    def print_warning(self, warning):
        self.noteArea['Note'].append('[WARNING]: ' + warning)

    def print_error(self, error):
        self.noteArea['Note'].append('[ERROR]: ' + error)