diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade
index 5965ef4..55386e8 100644
--- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade
+++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade
@@ -604,6 +604,12 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti
+
+
+
+
+
True
@@ -1390,16 +1419,28 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti
diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css
index 9806b7c..da07ee0 100644
--- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css
+++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css
@@ -31,6 +31,9 @@ treeview.view,
color: rgba(255, 255, 255, 0.5);;
}
+#message_view {
+ font: 16px "Monospace";
+}
/* Rubberband coloring */
/* .rubberband,
diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller.py
index 8a2abb3..076559f 100644
--- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller.py
+++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller.py
@@ -1,5 +1,5 @@
# Python imports
-import threading, subprocess, signal, inspect, os, time
+import sys, traceback, threading, subprocess, signal, inspect, os, time
# Gtk imports
import gi
@@ -21,7 +21,8 @@ def threaded(fn):
class Controller(Controller_Data, ShowHideMixin, KeyboardSignalsMixin, WidgetFileActionMixin, \
PaneMixin, WindowMixin):
def __init__(self, args, unknownargs, _settings):
- self.settings = _settings
+ sys.excepthook = self.my_except_hook
+ self.settings = _settings
self.setup_controller_data()
self.window.show()
@@ -63,13 +64,23 @@ class Controller(Controller_Data, ShowHideMixin, KeyboardSignalsMixin, WidgetFil
print(repr(e))
+ def my_except_hook(self, exctype, value, _traceback):
+ trace = ''.join(traceback.format_tb(_traceback))
+ data = f"Exectype: {exctype} <--> Value: {value}\n\n{trace}\n\n\n\n"
+ start_itr = self.message_buffer.get_start_iter()
+ self.message_buffer.place_cursor(start_itr)
+ self.display_message(self.error, data)
+ # print "Handler code goes here"
+ # else:
+ # sys.__excepthook__(exctype, value, traceback)
-
- def display_message(self, type, text, seconds=3):
- markup = "" + text + ""
- self.message_label.set_markup(markup)
+ def display_message(self, type, text, seconds=None):
+ # markup = "" + text + ""
+ # self.message_label.set_markup(markup)
+ self.message_buffer.insert_at_cursor(text)
self.message_widget.popup()
- self.hide_message_timeout(seconds)
+ if seconds:
+ self.hide_message_timeout(seconds)
@threaded
def hide_message_timeout(self, seconds=3):
diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller_Data.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller_Data.py
index 529a11a..8220192 100644
--- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller_Data.py
+++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Controller_Data.py
@@ -23,7 +23,8 @@ class Controller_Data:
self.window3 = self.builder.get_object("window_3")
self.window4 = self.builder.get_object("window_4")
self.message_widget = self.builder.get_object("message_widget")
- self.message_label = self.builder.get_object("message_label")
+ self.message_view = self.builder.get_object("message_view")
+ self.message_buffer = self.builder.get_object("message_buffer")
self.bottom_size_label = self.builder.get_object("bottom_size_label")
self.bottom_file_count_label = self.builder.get_object("bottom_file_count_label")
diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/ShowHideMixin.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/ShowHideMixin.py
index e21a314..886aa08 100644
--- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/ShowHideMixin.py
+++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/ShowHideMixin.py
@@ -9,7 +9,10 @@ from gi.repository import Gtk
class ShowHideMixin:
- def show_about_page(self, widget, eve):
+ def show_messages_popup(self, type, text, seconds=None):
+ self.message_widget.popup()
+
+ def show_about_page(self, widget=None, eve=None):
about_page = self.builder.get_object("about_page")
response = about_page.run()
if response == -4:
diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetFileActionMixin.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetFileActionMixin.py
index f7768fb..5d9e2f7 100644
--- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetFileActionMixin.py
+++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/mixins/WidgetFileActionMixin.py
@@ -248,9 +248,7 @@ class WidgetFileActionMixin:
if not state:
raise GObject.GError("Failed to perform requested dir/file action!")
except GObject.GError as e:
- if debug:
- print(repr(e))
- self.display_message(self.error, f"{e.message}")
+ raise OSError(e)
def preprocess_paths(self, paths):
if not isinstance(paths, list):