Example #1
0
    def downloadServer(self):
        QtWidgets.qApp.setOverrideCursor(Qt.WaitCursor)
        if sys.maxsize > 2 ** 32:
            bits = 'x86_64'
        else:
            bits = 'i386'

        url = "%s/releases/download/v%s/ts2-sim-server_%s_%s_%s.zip" % (
            ts2.get_info()['server_repo'],
            ts2.get_info()['server_version'],
            ts2.get_info()['server_version'],
            ts2.PLATFORMS_MAP[sys.platform],
            bits
        )

        response = requests.get(url)

        try:
            with zipfile.ZipFile(BytesIO(response.content)) as zf:
                zf.extract(settings.serverFileName, settings.serverDir)
        except zipfile.BadZipFile:
            QtWidgets.QMessageBox.critical(self, "Download Error",
                                           "Error while downloading %s."
                                           "Download server manually and put the executable in the server dir" % url)
            self.updateServerLabel()
            QtWidgets.qApp.restoreOverrideCursor()
            return

        st = os.stat(settings.serverLoc)
        os.chmod(settings.serverLoc, st.st_mode | stat.S_IEXEC)
        self.updateServerLabel()

        QtWidgets.qApp.restoreOverrideCursor()
Example #2
0
 def __init__(self, parent):
     """Constructor for the DownloadSimulationsDialog."""
     super().__init__(parent)
     self.setWindowTitle(self.tr("Download simulations from server"))
     label = QtWidgets.QLabel(self)
     label.setText(self.tr("Download server: "))
     self.url = QtWidgets.QLineEdit(self)
     self.url.setText(ts2.get_info().get('simulations_repo'))
     hlayout = QtWidgets.QHBoxLayout()
     hlayout.addWidget(label)
     hlayout.addWidget(self.url)
     note = QtWidgets.QLabel(self)
     note.setText(
         self.tr("<em>The download server must be the url of a "
                 "valid GitHub repository.</em>"))
     buttonBox = QtWidgets.QDialogButtonBox()
     buttonBox.addButton(self.tr("Download"),
                         QtWidgets.QDialogButtonBox.AcceptRole)
     buttonBox.addButton(self.tr("Cancel"),
                         QtWidgets.QDialogButtonBox.RejectRole)
     vlayout = QtWidgets.QVBoxLayout()
     vlayout.addLayout(hlayout)
     vlayout.addSpacing(5)
     vlayout.addWidget(note)
     vlayout.addSpacing(10)
     vlayout.addWidget(buttonBox)
     self.setLayout(vlayout)
     buttonBox.accepted.connect(self.accept)
     buttonBox.rejected.connect(self.reject)
Example #3
0
 def __init__(self, parent):
     """Constructor for the DownloadSimulationsDialog."""
     super().__init__(parent)
     self.setWindowTitle(
         self.tr("Download simulations from server")
     )
     label = QtWidgets.QLabel(self)
     label.setText(self.tr("Download server: "))
     self.url = QtWidgets.QLineEdit(self)
     self.url.setText(ts2.get_info().get('simulations_repo'))
     hlayout = QtWidgets.QHBoxLayout()
     hlayout.addWidget(label)
     hlayout.addWidget(self.url)
     note = QtWidgets.QLabel(self)
     note.setText(self.tr("<em>The download server must be the url of a "
                          "valid GitHub repository.</em>"))
     buttonBox = QtWidgets.QDialogButtonBox()
     buttonBox.addButton(self.tr("Download"),
                         QtWidgets.QDialogButtonBox.AcceptRole)
     buttonBox.addButton(self.tr("Cancel"),
                         QtWidgets.QDialogButtonBox.RejectRole)
     vlayout = QtWidgets.QVBoxLayout()
     vlayout.addLayout(hlayout)
     vlayout.addSpacing(5)
     vlayout.addWidget(note)
     vlayout.addSpacing(10)
     vlayout.addWidget(buttonBox)
     self.setLayout(vlayout)
     buttonBox.accepted.connect(self.accept)
     buttonBox.rejected.connect(self.reject)
Example #4
0
File: conf.py Project: rachmatg/ts2
## Flags for the stuff to document..
autodoc_default_flags = [
    "members",
    #'undoc-members',
    #'private-members',
    "special-members",
    #'inherited-members',
    # "exclude-members ",
    "show-inheritance",
]
autoclass_content = "class"

## assign template var {{INFO.foo}}
## variables/Constants,  version. www etc, git.repos  from ts2
html_context = {"INFO": ts2.get_info()}

# -- General configuration ------------------------------------------------

# If your documentation needs a minimal Sphinx version, state it here.
# needs_sphinx = '1.0'

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
    "sphinx.ext.autodoc",
    "sphinx.ext.doctest",
    "sphinx.ext.intersphinx",
    "sphinx.ext.todo",
    "sphinx.ext.coverage",
Example #5
0
File: conf.py Project: zky001/ts2
## Flags for the stuff to document..
autodoc_default_flags = [
	'members',
	#'undoc-members',
	#'private-members',
	'special-members',
	#'inherited-members',
    #"exclude-members ",
	'show-inheritance'
]
autoclass_content = "class"

## assign template var {{INFO.foo}} 
## variables/Constants,  version. www etc, git.repos  from ts2 
html_context = {"INFO": ts2.get_info() }

# -- General configuration ------------------------------------------------

# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.doctest',
    'sphinx.ext.intersphinx',
    'sphinx.ext.todo',
    'sphinx.ext.coverage',
Example #6
0
    def __init__(self, parent, tab=0):
        """Constructor for the OpenDialog."""
        super().__init__(parent)
        self.setWindowTitle(self.tr("Open Simulation"))
        self.setMinimumWidth(800)
        self.setMinimumHeight(800)

        m = 5
        containerLayout = QtWidgets.QHBoxLayout()
        containerLayout.setContentsMargins(m, m, m, m)
        self.setLayout(containerLayout)

        # ========================================
        # Left Bar + navigation
        self.leftBar = QtWidgets.QVBoxLayout()
        self.leftBar.setContentsMargins(0, 0, 0, 0)
        containerLayout.addLayout(self.leftBar)

        self.buttGroup = QtWidgets.QButtonGroup()
        self.buttGroup.setExclusive(True)

        self.leftBar.addWidget(self._make_nav_button(self.tr("Sims"),
                                                     NAV.sims))
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Recent"), NAV.recent))
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Browse"), NAV.filesystem))
        self.leftBar.addStretch(20)

        # ==================================================================================
        # Stack widget for main
        mainLayout = QtWidgets.QVBoxLayout()
        mainLayout.setContentsMargins(0, 0, 0, 0)
        containerLayout.addLayout(mainLayout)

        self.stackWidget = QtWidgets.QStackedWidget()
        mainLayout.addWidget(self.stackWidget, 200)

        # =================
        # Downloaded Sims
        self.downloadWidget = QtWidgets.QWidget()
        self.downloadLayout = QtWidgets.QVBoxLayout()
        self.downloadLayout.setContentsMargins(0, 0, 0, 0)
        self.downloadWidget.setLayout(self.downloadLayout)
        self.stackWidget.addWidget(self.downloadWidget)

        tbBrowse = QtWidgets.QToolBar()
        self.downloadLayout.addWidget(tbBrowse)

        self.txtUrl = QtWidgets.QLineEdit(self)
        self.txtUrl.setText(ts2.get_info().get('simulations_repo'))
        tbBrowse.addWidget(self.txtUrl)

        self.buttDownload = tbBrowse.addAction("Download", self.onDownload)

        self.treeSims = QtWidgets.QTreeWidget()
        self.downloadLayout.addWidget(self.treeSims)
        hitem = self.treeSims.headerItem()
        hitem.setText(C.name, "Name")
        hitem.setText(C.description, "Description")
        hitem.setText(C.file_name, "File")
        hitem.setText(C.file_path, "Path")
        self.treeSims.setColumnHidden(C.file_path, True)
        self.treeSims.header().setStretchLastSection(True)
        self.treeSims.itemDoubleClicked.connect(self.onTreeSimsItemDblClicked)

        # =====================================
        # Recent

        self.treeRecent = QtWidgets.QTreeWidget()
        self.stackWidget.addWidget(self.treeRecent)

        hitem = self.treeRecent.headerItem()
        hitem.setText(0, "Path")

        self.treeRecent.itemDoubleClicked.connect(
            self.onTreeRecentItemDblClicked)

        # =====================================
        # Browse
        self.filesModel = QtWidgets.QFileSystemModel()
        self.filesModel.setRootPath(QtCore.QDir.homePath())
        self.filesModel.setNameFilters(["*.ts2", "*.json"])

        self.treeFiles = QtWidgets.QTreeView()
        self.treeFiles.setModel(self.filesModel)

        self.stackWidget.addWidget(self.treeFiles)

        self.treeFiles.doubleClicked.connect(self.onTreeBrowseItemDblClicked)

        # =================================
        # Bottom status
        self.statusBar = widgets.StatusBar()
        mainLayout.addWidget(self.statusBar, 0)
        if settings.debug:
            self.statusBar.showMessage(settings.simulationsDir)

        self.buttGroup.buttonToggled.connect(self.onNavButtClicked)
        self.buttGroup.button(tab).setChecked(True)
Example #7
0
    def __init__(self, parent, tab=0):
        """Constructor for the OpenDialog."""
        super().__init__(parent)
        self.setWindowTitle(self.tr("Open Simulation"))
        self.setMinimumWidth(800)
        self.setMinimumHeight(800)

        m = 5
        containerLayout = QtWidgets.QHBoxLayout()
        containerLayout.setContentsMargins(m, m, m, m)
        self.setLayout(containerLayout)

        # ========================================
        # Left Bar + navigation
        self.leftBar = QtWidgets.QVBoxLayout()
        self.leftBar.setContentsMargins(0, 0, 0, 0)
        containerLayout.addLayout(self.leftBar)

        self.buttGroup = QtWidgets.QButtonGroup()
        self.buttGroup.setExclusive(True)

        self.leftBar.addWidget(self._make_nav_button(self.tr("Sims"),
                                                     NAV.sims))
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Recent"), NAV.recent))
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Browse"), NAV.filesystem))
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Network"), NAV.network))
        self.leftBar.addStretch(20)

        # ==================================================================================
        # Stack widget for main
        mainLayout = QtWidgets.QVBoxLayout()
        mainLayout.setContentsMargins(0, 0, 0, 0)
        containerLayout.addLayout(mainLayout)

        self.stackWidget = QtWidgets.QStackedWidget()
        mainLayout.addWidget(self.stackWidget, 200)

        # =================
        # Downloaded Sims
        self.downloadWidget = QtWidgets.QWidget()
        self.downloadLayout = QtWidgets.QVBoxLayout()
        self.downloadLayout.setContentsMargins(0, 0, 0, 0)
        self.downloadWidget.setLayout(self.downloadLayout)
        self.stackWidget.addWidget(self.downloadWidget)

        tbBrowse = QtWidgets.QToolBar()
        self.downloadLayout.addWidget(tbBrowse)

        self.txtUrl = QtWidgets.QLineEdit(self)
        self.txtUrl.setText(ts2.get_info().get('simulations_repo'))
        tbBrowse.addWidget(self.txtUrl)

        self.buttDownload = tbBrowse.addAction(self.tr("Download"),
                                               self.onDownload)

        self.treeSims = QtWidgets.QTreeWidget()
        self.downloadLayout.addWidget(self.treeSims)
        hitem = self.treeSims.headerItem()
        hitem.setText(C.name, "Name")
        hitem.setText(C.description, "Description")
        hitem.setText(C.file_name, "File")
        hitem.setText(C.file_path, "Path")
        self.treeSims.setColumnHidden(C.file_path, True)
        self.treeSims.header().setStretchLastSection(True)
        self.treeSims.itemDoubleClicked.connect(self.onTreeSimsItemDblClicked)

        # =====================================
        # Recent

        self.treeRecent = QtWidgets.QTreeWidget()
        self.stackWidget.addWidget(self.treeRecent)

        hitem = self.treeRecent.headerItem()
        hitem.setText(0, "Path")

        self.treeRecent.itemDoubleClicked.connect(
            self.onTreeRecentItemDblClicked)

        # =====================================
        # Browse
        self.filesModel = QtWidgets.QFileSystemModel()
        self.filesModel.setRootPath(QtCore.QDir.homePath())
        self.filesModel.setNameFilters(["*.ts2", "*.json"])
        self.filesModel.setNameFilterDisables(False)

        self.treeFiles = QtWidgets.QTreeView()
        self.treeFiles.setModel(self.filesModel)
        self.treeFiles.setColumnWidth(0, 300)
        self.treeFiles.setExpanded(
            self.filesModel.index(QtCore.QDir.homePath()), True)
        path = QtCore.QDir.home()
        while path.cdUp():
            self.treeFiles.setExpanded(self.filesModel.index(path.path()),
                                       True)

        self.stackWidget.addWidget(self.treeFiles)

        self.treeFiles.doubleClicked.connect(self.onTreeBrowseItemDblClicked)

        # =================================
        # Network
        self.networkWidget = QtWidgets.QWidget()
        self.networkLayout = QtWidgets.QVBoxLayout()
        self.networkLayout.setContentsMargins(0, 0, 0, 0)
        self.networkWidget.setLayout(self.networkLayout)
        self.stackWidget.addWidget(self.networkWidget)

        networkLabel = QtWidgets.QLabel(
            self.tr("Connect to simulation server"))
        networkLabel.setStyleSheet("font-size: 15px; font-weight: bold;")
        labelLayout = QtWidgets.QHBoxLayout()
        labelLayout.addStretch(1)
        labelLayout.addWidget(networkLabel)
        labelLayout.addStretch(1)
        self.networkLayout.addLayout(labelLayout)

        tbNetworkBarLayout = QtWidgets.QHBoxLayout()
        self.networkLayout.addLayout(tbNetworkBarLayout)

        tbNetworkBarLayout.addWidget(QtWidgets.QLabel(self.tr("Host:")))
        self.networkServer = QtWidgets.QLineEdit(self)
        self.networkServer.setText("localhost")
        tbNetworkBarLayout.addWidget(self.networkServer, 2)
        tbNetworkBarLayout.addWidget(QtWidgets.QLabel(self.tr("Port:")))
        self.networkPort = QtWidgets.QLineEdit(self)
        self.networkPort.setInputMask("00000")
        self.networkPort.setText("22222")
        tbNetworkBarLayout.addWidget(self.networkPort, 1)

        self.connectAction = QtWidgets.QAction(self.tr("Connect"))
        self.connectAction.triggered.connect(self.onConnect)
        btn = QtWidgets.QToolButton()
        btn.setDefaultAction(self.connectAction)
        self.buttConnect = tbNetworkBarLayout.addWidget(btn)
        self.networkLayout.addStretch(1)

        # =================================
        # Bottom status
        self.statusBar = widgets.StatusBar()
        mainLayout.addWidget(self.statusBar, 0)
        if settings.debug:
            self.statusBar.showMessage(settings.simulationsDir)

        self.buttGroup.buttonToggled.connect(self.onNavButtClicked)
        self.buttGroup.button(tab).setChecked(True)
Example #8
0
    def __init__(self, parent, tab=0):
        """Constructor for the OpenDialog."""
        super().__init__(parent)
        self.setWindowTitle(
            self.tr("Open Simulation")
        )
        self.setMinimumWidth(800)
        self.setMinimumHeight(800)

        m = 5
        containerLayout = QtWidgets.QHBoxLayout()
        containerLayout.setContentsMargins(m, m, m, m)
        self.setLayout(containerLayout)

        # ========================================
        # Left Bar + navigation
        self.leftBar = QtWidgets.QVBoxLayout()
        self.leftBar.setContentsMargins(0, 0, 0, 0)
        containerLayout.addLayout(self.leftBar)

        self.buttGroup = QtWidgets.QButtonGroup()
        self.buttGroup.setExclusive(True)

        self.leftBar.addWidget(self._make_nav_button(self.tr("Sims"), NAV.sims))
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Recent"), NAV.recent)
        )
        self.leftBar.addWidget(
            self._make_nav_button(self.tr("Browse"), NAV.filesystem)
        )
        self.leftBar.addStretch(20)

        # ==================================================================================
        # Stack widget for main
        mainLayout = QtWidgets.QVBoxLayout()
        mainLayout.setContentsMargins(0, 0, 0, 0)
        containerLayout.addLayout(mainLayout)

        self.stackWidget = QtWidgets.QStackedWidget()
        mainLayout.addWidget(self.stackWidget, 200)

        # =================
        # Downloaded Sims
        self.downloadWidget = QtWidgets.QWidget()
        self.downloadLayout = QtWidgets.QVBoxLayout()
        self.downloadLayout.setContentsMargins(0, 0, 0, 0)
        self.downloadWidget.setLayout(self.downloadLayout)
        self.stackWidget.addWidget(self.downloadWidget)

        tbBrowse = QtWidgets.QToolBar()
        self.downloadLayout.addWidget(tbBrowse)

        self.txtUrl = QtWidgets.QLineEdit(self)
        self.txtUrl.setText(ts2.get_info().get('simulations_repo'))
        tbBrowse.addWidget(self.txtUrl)

        self.buttDownload = tbBrowse.addAction("Download", self.onDownload)

        self.treeSims = QtWidgets.QTreeWidget()
        self.downloadLayout.addWidget(self.treeSims)
        hitem = self.treeSims.headerItem()
        hitem.setText(C.name, "Name")
        hitem.setText(C.description, "Description")
        hitem.setText(C.file_name, "File")
        hitem.setText(C.file_path, "Path")
        self.treeSims.setColumnHidden(C.file_path, True)
        self.treeSims.header().setStretchLastSection(True)
        self.treeSims.itemDoubleClicked.connect(self.onTreeSimsItemDblClicked)

        # =====================================
        # Recent

        self.treeRecent = QtWidgets.QTreeWidget()
        self.stackWidget.addWidget(self.treeRecent)

        hitem = self.treeRecent.headerItem()
        hitem.setText(0, "Path")

        self.treeRecent.itemDoubleClicked.connect(
            self.onTreeRecentItemDblClicked
        )

        # =====================================
        # Browse
        self.filesModel = QtWidgets.QFileSystemModel()
        self.filesModel.setRootPath(QtCore.QDir.homePath())
        self.filesModel.setNameFilters(["*.ts2", "*.json"])

        self.treeFiles = QtWidgets.QTreeView()
        self.treeFiles.setModel(self.filesModel)

        self.stackWidget.addWidget(self.treeFiles)

        self.treeFiles.doubleClicked.connect(
            self.onTreeBrowseItemDblClicked
        )

        # =================================
        # Bottom status
        self.statusBar = widgets.StatusBar()
        mainLayout.addWidget(self.statusBar, 0)
        if settings.debug:
            self.statusBar.showMessage(settings.simulationsDir)

        self.buttGroup.buttonToggled.connect(self.onNavButtClicked)
        self.buttGroup.button(tab).setChecked(True)