mirror of
https://github.com/AdnanHodzic/auto-cpufreq.git
synced 2025-07-28 16:14:14 +02:00
GUI: add threading
This commit is contained in:
parent
86fd056687
commit
81bb72fe20
@ -6,6 +6,7 @@ from gi.repository import Gtk, GLib, Gdk, Gio, GdkPixbuf
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
sys.path.append("../")
|
sys.path.append("../")
|
||||||
from auto_cpufreq.core import is_running
|
from auto_cpufreq.core import is_running
|
||||||
@ -59,7 +60,7 @@ class ToolWindow(Gtk.Window):
|
|||||||
self.hbox.pack_start(self.vbox_right, False, False, 0)
|
self.hbox.pack_start(self.vbox_right, False, False, 0)
|
||||||
|
|
||||||
|
|
||||||
GLib.timeout_add_seconds(5, self.refresh)
|
GLib.timeout_add_seconds(5, self.refresh_in_thread)
|
||||||
|
|
||||||
def daemon_not_running(self):
|
def daemon_not_running(self):
|
||||||
self.box = DaemonNotRunningView(self)
|
self.box = DaemonNotRunningView(self)
|
||||||
@ -78,9 +79,12 @@ class ToolWindow(Gtk.Window):
|
|||||||
self.gtk_context.add_provider_for_screen(screen, self.gtk_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
self.gtk_context.add_provider_for_screen(screen, self.gtk_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
|
||||||
self.gtk_provider.load_from_file(Gio.File.new_for_path(CSS_FILE))
|
self.gtk_provider.load_from_file(Gio.File.new_for_path(CSS_FILE))
|
||||||
|
|
||||||
def refresh(self):
|
def refresh_in_thread(self):
|
||||||
|
Thread(target=self._refresh).start()
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _refresh(self):
|
||||||
self.systemstats.refresh()
|
self.systemstats.refresh()
|
||||||
self.currentgovernor.refresh()
|
self.currentgovernor.refresh()
|
||||||
self.cpufreqstats.refresh()
|
self.cpufreqstats.refresh()
|
||||||
return True
|
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ from gi.repository import Gtk, GdkPixbuf
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import platform as pl
|
import platform as pl
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
sys.path.append("../../")
|
sys.path.append("../../")
|
||||||
from subprocess import getoutput, run, PIPE
|
from subprocess import getoutput, run, PIPE
|
||||||
@ -181,7 +182,8 @@ class DropDownMenu(Gtk.MenuButton):
|
|||||||
confirm.destroy()
|
confirm.destroy()
|
||||||
if response == Gtk.ResponseType.YES:
|
if response == Gtk.ResponseType.YES:
|
||||||
try:
|
try:
|
||||||
result = run("pkexec auto-cpufreq --remove", shell=True, stdout=PIPE, stderr=PIPE)
|
# run in thread to prevent GUI from hanging
|
||||||
|
result = Thread(target=run, args=("pkexec auto-cpufreq --remove",), kwargs={"shell": True, "stdout": PIPE, "stderr": PIPE}).start()
|
||||||
if result.stderr.decode() == PKEXEC_ERROR:
|
if result.stderr.decode() == PKEXEC_ERROR:
|
||||||
raise Exception("Authorization was cancelled")
|
raise Exception("Authorization was cancelled")
|
||||||
dialog = Gtk.MessageDialog(
|
dialog = Gtk.MessageDialog(
|
||||||
@ -263,7 +265,8 @@ class DaemonNotRunningView(Gtk.Box):
|
|||||||
|
|
||||||
def install_daemon(self, button, parent):
|
def install_daemon(self, button, parent):
|
||||||
try:
|
try:
|
||||||
result = run("pkexec auto-cpufreq --install", shell=True, stdout=PIPE, stderr=PIPE)
|
# run in thread to prevent GUI from hanging
|
||||||
|
result = Thread(target=run, args=("pkexec auto-cpufreq --install",), kwargs={"shell": True, "stdout": PIPE, "stderr": PIPE}).start()
|
||||||
if result.stderr.decode() == PKEXEC_ERROR:
|
if result.stderr.decode() == PKEXEC_ERROR:
|
||||||
raise Exception("Authorization was cancelled")
|
raise Exception("Authorization was cancelled")
|
||||||
elif result.stderr is not None:
|
elif result.stderr is not None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user