Skip to content

Commit

Permalink
Merge pull request #174 from specklesystems/2.17
Browse files Browse the repository at this point in the history
2.17
  • Loading branch information
KatKatKateryna authored Oct 30, 2023
2 parents 8084e6e + b574506 commit f744cf9
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 34 deletions.
2 changes: 1 addition & 1 deletion plugin_utils/installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ def install_requirements(host_application: str) -> None:
)

if completed_process.returncode != 0:
m = f"Failed to install dependenices through pip, got {completed_process.returncode} as return code. Full log: {completed_process.stdout}"
m = f"Failed to install dependenices through pip, got {completed_process.returncode} as return code. Full log: {completed_process}"
print(m)
print(completed_process.stdout)
print(completed_process.stderr)
Expand Down
92 changes: 60 additions & 32 deletions speckle/utils/panel_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,14 @@
from specklepy_qt_ui.qt_ui.logger import logToUser as logToUser_UI
import webbrowser

def logToUser(msg: str, func=None, level: int = 2, plugin = None, url = "", blue = False, report = False):

def logToUser(
msg: str, func=None, level: int = 2, plugin=None, url="", blue=False, report=False
):
msg = str(msg)
logToUser_UI(msg, func, level, plugin, url, blue, report)
logger.writeToLog(msg.replace('\n', '. ') + " " + url, level, func)
logger.writeToLog(msg.replace("\n", ". ") + " " + url, level, func)


class Logging:
"""Holds utility methods for logging messages to QGIS"""
Expand All @@ -21,35 +25,48 @@ def __init__(self, iface) -> None:
def log(self, message: str, level: Qgis.MessageLevel = Qgis.Info):
"""Logs a specific message to the Speckle messages panel."""
try:
if level==0: level = Qgis.Info
if level==1: level = Qgis.Warning
if level==2: level = Qgis.Critical
#return
if level == 0:
level = Qgis.Info
if level == 1:
level = Qgis.Warning
if level == 2:
level = Qgis.Critical
# return
QgsMessageLog.logMessage(message, "Speckle", level=level)
except Exception as e:
try:
logToUser(e, level = 2, func = inspect.stack()[0][3])
logToUser(e, level=2, func=inspect.stack()[0][3])
return
except: pass
except:
pass


def logToUserWithAction(self, message: str, action_text:str, url: str = "", level: Qgis.MessageLevel = Qgis.Info, duration:int =120):

def logToUserWithAction(
self,
message: str,
action_text: str,
url: str = "",
level: Qgis.MessageLevel = Qgis.Info,
duration: int = 120,
):
self.log(message, level)

if not self.qgisInterface:
return

if level==0: level = Qgis.Info
if level==1: level = Qgis.Warning
if level==2: level = Qgis.Critical


if level == 0:
level = Qgis.Info
if level == 1:
level = Qgis.Warning
if level == 2:
level = Qgis.Critical

def btnClicked(url):
try:
if url == "": return
if url == "":
return
webbrowser.open(url, new=0, autoraise=True)
except Exception as e:
pass
except Exception as e:
pass

widget = self.qgisInterface.messageBar().createMessage("Speckle", message)
button = QPushButton(widget)
Expand All @@ -58,30 +75,41 @@ def btnClicked(url):
widget.layout().addWidget(button)
self.qgisInterface.messageBar().pushWidget(widget, level, duration)


#def logToUser(self, message: str, level: Qgis.MessageLevel = Qgis.Info, duration: int =10, func=None, plugin=None):
# def logToUser(self, message: str, level: Qgis.MessageLevel = Qgis.Info, duration: int =10, func=None, plugin=None):
# return

def logToUserPanel(self, message: str, level: Qgis.MessageLevel = Qgis.Info, duration: int =20, func=None, plugin=None):

def logToUserPanel(
self,
message: str,
level: Qgis.MessageLevel = Qgis.Info,
duration: int = 20,
func=None,
plugin=None,
):
"""Logs a specific message to the user in QGIS"""

self.log(message, level)

if not self.qgisInterface: return

if level==0: level = Qgis.Info
if level==1: level = Qgis.Warning
if level==2: level = Qgis.Critical


if not self.qgisInterface:
return

if level == 0:
level = Qgis.Info
if level == 1:
level = Qgis.Warning
if level == 2:
level = Qgis.Critical

if self.qgisInterface:
self.qgisInterface.messageBar().pushMessage(
"Speckle", message, level=level, duration=duration
)

def writeToLog(self, msg: str = "", level: int = 2, func=None, plugin=None):
msg = str(msg)
if func is not None and func != "None":
if func is not None and func != "None":
msg += "::" + str(func)
self.log(msg, level)


logger = Logging(None)
3 changes: 2 additions & 1 deletion speckle/utils/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ def tryGetClient(sw: StreamWrapper, dataStorage, write=False, dockwidget=None):
except SpeckleException as ex:
if "already connected" in ex.message:
logToUser(
"Dependencies versioning error.\nClick here for details.",
"Dependencies versioning error.\nClick here for details.",
url="dependencies_error",
level=2,
plugin=dockwidget,
)
return
Expand Down
3 changes: 3 additions & 0 deletions speckle_qgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -1025,6 +1025,7 @@ def run(self):
logToUser(
"Dependencies versioning error.\nClick here for details.",
url="dependencies_error",
level=2,
plugin=self.dockwidget,
)

Expand Down Expand Up @@ -1086,6 +1087,7 @@ def handleStreamCreate(self, account, str_name, description, is_public):
logToUser(
"Dependencies versioning error.\nClick here for details.",
url="dependencies_error",
level=2,
plugin=self.dockwidget,
)
return
Expand Down Expand Up @@ -1148,6 +1150,7 @@ def handleBranchCreate(self, br_name, description):
logToUser(
"Dependencies versioning error.\nClick here for details.",
url="dependencies_error",
level=2,
plugin=self.dockwidget,
)
return
Expand Down

0 comments on commit f744cf9

Please sign in to comment.