forked from leovan/SciHubEVA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
scihub_add_scihub_url.py
39 lines (27 loc) · 1.16 KB
/
scihub_add_scihub_url.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
from PySide2.QtCore import QObject, Slot, Signal
from PySide2.QtQml import QQmlApplicationEngine
class SciHubAddSciHubURL(QObject):
showWindowAddSciHubURL = Signal()
def __init__(self, conf, parent):
super(SciHubAddSciHubURL, self).__init__()
self._conf = conf
self._parent = parent
self._engine = QQmlApplicationEngine()
self._engine.load('qrc:/ui/SciHubEVAAddSciHubURL.qml')
self._window = self._engine.rootObjects()[0]
self._connect()
def _connect(self):
# Connect QML signals to PyQt slots
self._window.addSciHubURL.connect(self.addSciHubURL)
# Connect PyQt signals to QML slots
self.showWindowAddSciHubURL.connect(self._window.showWindowAddSciHubURL)
@Slot(str)
def addSciHubURL(self, url):
scihub_available_urls = json.loads(self._conf.get('network', 'scihub_available_urls'))
if url not in scihub_available_urls:
scihub_available_urls.append(url)
self._conf.set('network', 'scihub_available_urls', json.dumps(scihub_available_urls))
self._parent.load_from_conf()