python3 fixes and more

log files were opened in binary mode
this was resulting in read_last() not working correctly
This commit is contained in:
Nedko Arnaudov 2021-02-14 23:59:34 +02:00
parent 8ea30191d6
commit 9be30b9ff4
6 changed files with 21 additions and 15 deletions

View File

@ -317,7 +317,7 @@ class cell_renderer_param(Gtk.CellRendererPixbuf):
if typechar == 'u' or typechar == 'i': if typechar == 'u' or typechar == 'i':
try: try:
value = int(value_str) value = int(value_str)
except ValueError, e: except (ValueError, e):
# Hide the widget (because it may display something else than what user typed in) # Hide the widget (because it may display something else than what user typed in)
widget.hide() widget.hide()
# Display the error # Display the error

View File

@ -36,13 +36,19 @@ from laditools import get_version_string
from laditools import LadiConfiguration from laditools import LadiConfiguration
from laditools import LadiApp from laditools import LadiApp
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import GLib
from gi.repository import Gtk from gi.repository import Gtk
from gi.repository import GObject from gi.repository import GObject
gi.require_version('Vte', '2.91')
from gi.repository import Vte from gi.repository import Vte
from laditools.gtk import find_data_file from laditools.gtk import find_data_file
timeout_add = GObject.timeout_add timeout_add = GLib.timeout_add
# Default configuration # Default configuration
max_lines_default = 100 max_lines_default = 100
@ -155,12 +161,12 @@ class LadiSystemLog(LadiApp):
# Make it do something... # Make it do something...
for log in self.log_files: for log in self.log_files:
try: try:
log['log_file'] = open(log['logfile_path'], "rb") log['log_file'] = open(log['logfile_path'], "r")
sys.stderr.write (_("Opening %s...\n") % log['logfile_path']) sys.stderr.write (_("Opening %s...\n") % log['logfile_path'])
lines = read_last(log['log_file'], self.max_lines) lines = read_last(log['log_file'], self.max_lines)
for line in lines: for line in lines:
line = line.strip('\r\n') + '\r\n' line = line.strip('\r\n') + '\r\n';
log["term"].feed(line, -1) log["term"].feed(bytes(line, "utf-8"))
except ValueError: except ValueError:
sys.stderr.write( _("You called Popen with invalid arguments... dumbass\n") ) sys.stderr.write( _("You called Popen with invalid arguments... dumbass\n") )
except: except:
@ -175,7 +181,7 @@ class LadiSystemLog(LadiApp):
for log in self.log_files: for log in self.log_files:
line = log['log_file'].readline() line = log['log_file'].readline()
while line: while line:
log["term"].feed(line + '\r', -1) log["term"].feed(bytes(line + '\r', "utf-8"))
line = log['log_file'].readline() line = log['log_file'].readline()
log['log_file'].seek(log['log_file'].tell()) log['log_file'].seek(log['log_file'].tell())
return True return True
@ -190,13 +196,13 @@ class LadiSystemLog(LadiApp):
def on_clear_text (self, data=None): def on_clear_text (self, data=None):
current_view = self.logview_notebook.get_current_page () current_view = self.logview_notebook.get_current_page ()
self.log_files[current_view]["term"].feed ("\033[2J\033[;f", -1) self.log_files[current_view]["term"].feed(bytes("\033[2J\033[;f", "utf-8"))
def on_purge (self, data=None): def on_purge (self, data=None):
current_view = self.logview_notebook.get_current_page () current_view = self.logview_notebook.get_current_page ()
# Opens the file in write anew mode thus clearing the file and close it right away # Opens the file in write anew mode thus clearing the file and close it right away
open (self.log_files[current_view]['logfile_path'], "w+") open (self.log_files[current_view]['logfile_path'], "w+")
self.log_files[current_view]["term"].feed ("\033[2J\033[;f", -1) self.log_files[current_view]["term"].feed(bytes("\033[2J\033[;f", "utf-8"))
def run (self): def run (self):
self.ui.show_all() self.ui.show_all()

View File

@ -149,7 +149,7 @@ class LadiStatusTray(Gtk.StatusIcon, LadiStatusIcon):
self.set_tooltip_safe ("JACK is stopped") self.set_tooltip_safe ("JACK is stopped")
self.set_icon ("stopped") self.set_icon ("stopped")
self.clear_diagnose_text() self.clear_diagnose_text()
except Exception, e: except (Exception, e):
self.set_tooltip_safe ("JACK is sick") self.set_tooltip_safe ("JACK is sick")
self.set_diagnose_text(repr(e)) self.set_diagnose_text(repr(e))
self.set_icon ("stopped") self.set_icon ("stopped")
@ -185,7 +185,7 @@ class LadiStatusIndicator(LadiStatusIcon):
self.set_tooltip_safe ("JACK is stopped") self.set_tooltip_safe ("JACK is stopped")
self.set_icon ("stopped") self.set_icon ("stopped")
self.clear_diagnose_text() self.clear_diagnose_text()
except Exception, e: except (Exception, e):
self.set_tooltip_safe ("JACK is sick") self.set_tooltip_safe ("JACK is sick")
self.set_diagnose_text(repr(e)) self.set_diagnose_text(repr(e))
self.set_icon ("stopped") self.set_icon ("stopped")

View File

@ -17,6 +17,8 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk from gi.repository import Gtk
# TODO : somehow, we need stock icons. Nothing else can be used for ImageMenuItems # TODO : somehow, we need stock icons. Nothing else can be used for ImageMenuItems

View File

@ -28,10 +28,8 @@ control_obj_path = "/org/ladish/Control"
studio_obj_path = "/org/ladish/Studio" studio_obj_path = "/org/ladish/Studio"
service_name = name_base service_name = name_base
LadishStatusType = Enum("STUDIO_STOPPED", LadishStatusType = Enum("LadishStatusType",
"NOT_AVAILABLE", "STUDIO_STOPPED NOT_AVAILABLE NO_STUDIO_LOADED STUDIO_RUNNING")
"NO_STUDIO_LOADED",
"STUDIO_RUNNING")
class LadishProxyError(Exception): pass class LadishProxyError(Exception): pass
class LadishStudioException(Exception): pass class LadishStudioException(Exception): pass

View File

@ -54,7 +54,7 @@ os.environ['XGETTEXT_ARGS'] = "--language=Python"
if not os.getenv("LADI_RELEASE") and \ if not os.getenv("LADI_RELEASE") and \
os.path.isfile(get_commit_script): os.path.isfile(get_commit_script):
commit = subprocess.check_output(["sh", get_commit_script]).strip() commit = subprocess.check_output(["sh", get_commit_script]).strip()
laditools_version += "~" + commit laditools_version += "~" + str(commit)
iconsizelist = "16 22 24 32 48 64 96 128 256".split() iconsizelist = "16 22 24 32 48 64 96 128 256".split()