finished preferences
This commit is contained in:
@@ -22,10 +22,11 @@ from gi.repository import Gtk, Adw, Gdk, Gio
|
||||
APPID = "com.angoosh.RDPConnect"
|
||||
HOMEDIR = os.path.expanduser('~')
|
||||
|
||||
VERSION = "1.0.5rc1"
|
||||
VERSION = "1.1.0"
|
||||
|
||||
conn_info = {}
|
||||
settings = {}
|
||||
settings["extra_params"] = {}
|
||||
fernet = ""
|
||||
|
||||
def load_keys():
|
||||
@@ -67,7 +68,123 @@ def load_config():
|
||||
except:
|
||||
print("[WARN] FILE: "+HOMEDIR+"/.config/rdpconnect/settings.json doesn't exist")
|
||||
|
||||
class PreferencesWindow(Gtk.Window):
|
||||
global settings
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
self.builder = Gtk.Builder(self)
|
||||
self.builder.add_from_file("/app/preferences.ui")
|
||||
|
||||
self.resx = self.builder.get_object("resx")
|
||||
self.resy = self.builder.get_object("resy")
|
||||
self.monitors = self.builder.get_object("monitors")
|
||||
self.fullscreen = self.builder.get_object("fullscreen")
|
||||
self.xfree = self.builder.get_object("xfree")
|
||||
self.sound = self.builder.get_object("sound")
|
||||
self.mic = self.builder.get_object("mic")
|
||||
self.dynres = self.builder.get_object("dynres")
|
||||
self.clipboard = self.builder.get_object("clipboard")
|
||||
|
||||
try:
|
||||
self.clipboard.set_state(settings["extra_params"]["clipboard"])
|
||||
self.clipboard.set_active(settings["extra_params"]["clipboard"])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.dynres.set_state(settings["extra_params"]["dynamic-resolution"])
|
||||
self.dynres.set_active(settings["extra_params"]["dynamic-resolution"])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.mic.set_state(settings["extra_params"]["microphone"])
|
||||
self.mic.set_active(settings["extra_params"]["microphone"])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.sound.set_state(settings["extra_params"]["sound"])
|
||||
self.sound.set_active(settings["extra_params"]["sound"])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
if settings["rdp_bin"] == "xfreerdp":
|
||||
self.xfree.set_state(True)
|
||||
self.xfree.set_active(True)
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.fullscreen.set_state(settings["extra_params"]["f"])
|
||||
self.fullscreen.set_active(settings["extra_params"]["f"])
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.monitors.get_buffer().set_text(str(settings["extra_params"]["monitors"]), len(settings["extra_params"]["monitors"]))
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.resx.get_buffer().set_text(str(settings["extra_params"]["w"]), len(settings["extra_params"]["w"]))
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
self.resy.get_buffer().set_text(str(settings["extra_params"]["h"]), len(settings["extra_params"]["h"]))
|
||||
except:
|
||||
pass
|
||||
|
||||
pref_window = self.builder.get_object("pref_window")
|
||||
pref_window.show()
|
||||
|
||||
def f_resx(self, app):
|
||||
settings["extra_params"]["w"] = self.resx.get_buffer().get_text()
|
||||
|
||||
def f_resy(self, app):
|
||||
settings["extra_params"]["h"] = self.resy.get_buffer().get_text()
|
||||
|
||||
def monconf(self, app):
|
||||
settings["extra_params"]["monitors"] = self.monitors.get_buffer().get_text()
|
||||
|
||||
def clipboard(self, app, state):
|
||||
if state:
|
||||
settings["extra_params"]["clipboard"] = True
|
||||
else:
|
||||
settings["extra_params"]["clipboard"] = False
|
||||
|
||||
def dynres(self, app, state):
|
||||
if state:
|
||||
settings["extra_params"]["dynamic-resolution"] = True
|
||||
else:
|
||||
settings["extra_params"]["dynamic-resolution"] = False
|
||||
|
||||
def microphone(self, app, state):
|
||||
if state:
|
||||
settings["extra_params"]["microphone"] = True
|
||||
else:
|
||||
settings["extra_params"]["microphone"] = False
|
||||
|
||||
def sound(self, app, state):
|
||||
if state:
|
||||
settings["extra_params"]["sound"] = True
|
||||
else:
|
||||
settings["extra_params"]["sound"] = False
|
||||
|
||||
def xfree(self, app, state):
|
||||
if state:
|
||||
settings["rdp_bin"] = "xfreerdp"
|
||||
else:
|
||||
settings["rdp_bin"] = "sdl-freerdp"
|
||||
|
||||
def fscr(self, app, state):
|
||||
if state:
|
||||
settings["extra_params"]["f"] = True
|
||||
else:
|
||||
settings["extra_params"]["f"] = False
|
||||
|
||||
def on_destroy(self, app):
|
||||
print("Saving settings config to "+HOMEDIR+"/.config/rdpconnect/settings.json")
|
||||
with open(HOMEDIR+"/.config/rdpconnect/settings.json", "w") as settings_file:
|
||||
js = json.dumps(settings, sort_keys=True, indent=4, separators=(',', ': '))
|
||||
settings_file.write(js)
|
||||
|
||||
|
||||
class MyApp(Adw.Application):
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
@@ -139,9 +256,7 @@ class MyApp(Adw.Application):
|
||||
about_dialog.present()
|
||||
|
||||
def on_preferences(self, action, param):
|
||||
pref_window = Gtk.Window(title="Preferences")
|
||||
pref_window.show()
|
||||
print("Preferences")
|
||||
PreferencesWindow()
|
||||
|
||||
def saveConnConf(self):
|
||||
if settings["save_conn"]:
|
||||
@@ -172,17 +287,28 @@ class MyApp(Adw.Application):
|
||||
settings["save_conn"] = True
|
||||
else:
|
||||
settings["save_conn"] = False
|
||||
if not "extra_params" in settings:
|
||||
settings["extra_params"] = []
|
||||
if not "rdp_bin" in settings:
|
||||
settings["rdp_bin"] = "sdl-freerdp"
|
||||
|
||||
self.saveConnConf()
|
||||
|
||||
extra_params = []
|
||||
for item in settings["extra_params"]:
|
||||
#check if is boolean
|
||||
if type(settings["extra_params"][item]) == type(True):
|
||||
if settings["extra_params"][item]:
|
||||
extra_params.append("/"+str(item))
|
||||
else:
|
||||
if str(settings["extra_params"][item]) != "":
|
||||
print(str(settings["extra_params"][item]))
|
||||
extra_params.append("/"+str(item)+":"+str(settings["extra_params"][item]))
|
||||
|
||||
print(extra_params)
|
||||
|
||||
try:
|
||||
subprocess.Popen([settings["rdp_bin"], "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+settings["extra_params"])
|
||||
subprocess.Popen([settings["rdp_bin"], "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+extra_params)
|
||||
except:
|
||||
subprocess.Popen(["sdl-freerdp", "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+settings["extra_params"])
|
||||
subprocess.Popen(["sdl-freerdp", "/v:"+str(conn_info["ip"]), "/u:"+str(conn_info["user"]), "/p:"+str(conn_info["passwd"])]+extra_params)
|
||||
|
||||
if not os.path.isdir(HOMEDIR+"/.config/rdpconnect"):
|
||||
os.makedirs(HOMEDIR+"/.config/rdpconnect")
|
||||
|
||||
Reference in New Issue
Block a user