Browse Source

More syntax changes; fix logs text when buffer is too long

tags/v0.9.0
falkTX 13 years ago
parent
commit
240cba078c
5 changed files with 259 additions and 235 deletions
  1. +24
    -14
      src/canvaspreviewframe.py
  2. +184
    -182
      src/logs.py
  3. +39
    -34
      src/shared_canvas.py
  4. +0
    -5
      src/shared_settings.py
  5. +12
    -0
      src/ui/logs.ui

+ 24
- 14
src/canvaspreviewframe.py View File

@@ -93,14 +93,21 @@ class CanvasPreviewFrame(QFrame):


max_width = self.view_rect[iWidth]/self.scale max_width = self.view_rect[iWidth]/self.scale
max_height = self.view_rect[iHeight]/self.scale max_height = self.view_rect[iHeight]/self.scale
if (max_width > self.fake_width): max_width = self.fake_width
if (max_height > self.fake_height): max_height = self.fake_height


if (x < 0.0): x = 0.0
elif (x > self.fake_width-max_width): x = self.fake_width-max_width
if (max_width > self.fake_width):
max_width = self.fake_width
if (max_height > self.fake_height):
max_height = self.fake_height


if (y < 0.0): y = 0.0
elif (y > self.fake_height-max_height): y = self.fake_height-max_height
if (x < 0.0):
x = 0.0
elif (x > self.fake_width-max_width):
x = self.fake_width-max_width

if (y < 0.0):
y = 0.0
elif (y > self.fake_height-max_height):
y = self.fake_height-max_height


self.view_rect[iX] = x+self.render_source.x() self.view_rect[iX] = x+self.render_source.x()
self.view_rect[iY] = y+self.render_source.y() self.view_rect[iY] = y+self.render_source.y()
@@ -110,19 +117,19 @@ class CanvasPreviewFrame(QFrame):


def mousePressEvent(self, event): def mousePressEvent(self, event):
if (event.button() == Qt.LeftButton): if (event.button() == Qt.LeftButton):
self.m_mouseDown = True
self.setCursor(QCursor(Qt.SizeAllCursor))
self.handleMouseEvent(event.x(), event.y())
self.m_mouseDown = True
self.setCursor(QCursor(Qt.SizeAllCursor))
self.handleMouseEvent(event.x(), event.y())
event.accept() event.accept()


def mouseMoveEvent(self, event): def mouseMoveEvent(self, event):
if (self.m_mouseDown): if (self.m_mouseDown):
self.handleMouseEvent(event.x(), event.y())
self.handleMouseEvent(event.x(), event.y())
event.accept() event.accept()


def mouseReleaseEvent(self, event): def mouseReleaseEvent(self, event):
if (self.m_mouseDown): if (self.m_mouseDown):
self.setCursor(QCursor(Qt.ArrowCursor))
self.setCursor(QCursor(Qt.ArrowCursor))
self.m_mouseDown = False self.m_mouseDown = False
QFrame.mouseReleaseEvent(self, event) QFrame.mouseReleaseEvent(self, event)


@@ -136,8 +143,11 @@ class CanvasPreviewFrame(QFrame):


max_width = self.view_rect[iWidth]/self.scale max_width = self.view_rect[iWidth]/self.scale
max_height = self.view_rect[iHeight]/self.scale max_height = self.view_rect[iHeight]/self.scale
if (max_width > self.fake_width): max_width = self.fake_width
if (max_height > self.fake_height): max_height = self.fake_height

if (max_width > self.fake_width):
max_width = self.fake_width
if (max_height > self.fake_height):
max_height = self.fake_height


painter.setBrush(QBrush(QColor(75,75,255,30))) painter.setBrush(QBrush(QColor(75,75,255,30)))
painter.setPen(QPen(Qt.blue, 2)) painter.setPen(QPen(Qt.blue, 2))
@@ -148,5 +158,5 @@ class CanvasPreviewFrame(QFrame):
def resizeEvent(self, event): def resizeEvent(self, event):
self.render_source = self.getRenderSource() self.render_source = self.getRenderSource()
if (self.real_parent): if (self.real_parent):
QTimer.singleShot(0, self.real_parent, SLOT("slot_miniCanvasCheckAll()"))
QTimer.singleShot(0, self.real_parent, SLOT("slot_miniCanvasCheckAll()"))
QFrame.resizeEvent(self, event) QFrame.resizeEvent(self, event)

+ 184
- 182
src/logs.py View File

@@ -19,6 +19,7 @@
# Imports (Global) # Imports (Global)
from PyQt4.QtCore import pyqtSlot, Qt, QFile, QIODevice, QTextStream, QThread from PyQt4.QtCore import pyqtSlot, Qt, QFile, QIODevice, QTextStream, QThread
from PyQt4.QtGui import QDialog, QPalette, QSyntaxHighlighter from PyQt4.QtGui import QDialog, QPalette, QSyntaxHighlighter
from time import sleep


# Imports (Custom Stuff) # Imports (Custom Stuff)
import ui_logs import ui_logs
@@ -26,79 +27,79 @@ from shared import *


# Fix log text output (get rid of terminal colors stuff) # Fix log text output (get rid of terminal colors stuff)
def fixLogText(text): def fixLogText(text):
return text.replace("","").replace("","").replace("","").replace("","").replace("","")
return text.replace("", "").replace("", "").replace("", "").replace("", "").replace("", "")


# Syntax Highlighter for JACK # Syntax Highlighter for JACK
class SyntaxHighligher_JACK(QSyntaxHighlighter):
class SyntaxHighlighter_JACK(QSyntaxHighlighter):
def __init__(self, parent): def __init__(self, parent):
QSyntaxHighlighter.__init__(self, parent) QSyntaxHighlighter.__init__(self, parent)


self.m_palette = self.parent().palette() self.m_palette = self.parent().palette()


def highlightBlock(self, text): def highlightBlock(self, text):
if (": ERROR: " in text):
self.setFormat(text.find(" ERROR: "), len(text), Qt.red)
elif (": WARNING: " in text):
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif (": ------------------" in text):
self.setFormat(text.find(" ------------------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
elif (": Connecting " in text):
self.setFormat(text.find(" Connecting "), len(text), self.m_palette.color(QPalette.Active, QPalette.Link))
elif (": Disconnecting " in text):
self.setFormat(text.find(" Disconnecting "), len(text), self.m_palette.color(QPalette.Active, QPalette.LinkVisited))
#elif (": New client " in text):
#self.setFormat(text.find(" New client "), len(text), self.m_palette.color(QPalette.Active, QPalette.Link))
if ": ERROR: " in text:
self.setFormat(text.find(" ERROR: "), len(text), Qt.red)
elif ": WARNING: " in text:
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif ": ------------------" in text:
self.setFormat(text.find(" ------------------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
elif ": Connecting " in text:
self.setFormat(text.find(" Connecting "), len(text), self.m_palette.color(QPalette.Active, QPalette.Link))
elif ": Disconnecting " in text:
self.setFormat(text.find(" Disconnecting "), len(text), self.m_palette.color(QPalette.Active, QPalette.LinkVisited))
#elif (": New client " in text):
#self.setFormat(text.find(" New client "), len(text), self.m_palette.color(QPalette.Active, QPalette.Link))


# Syntax Highlighter for A2J # Syntax Highlighter for A2J
class SyntaxHighligher_A2J(QSyntaxHighlighter):
class SyntaxHighlighter_A2J(QSyntaxHighlighter):
def __init__(self, parent): def __init__(self, parent):
QSyntaxHighlighter.__init__(self, parent) QSyntaxHighlighter.__init__(self, parent)


self.m_palette = self.parent().palette() self.m_palette = self.parent().palette()


def highlightBlock(self, text): def highlightBlock(self, text):
if (": error: " in text):
self.setFormat(text.find(" error: "), len(text), Qt.red)
elif (": WARNING: " in text):
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif (": ----------------------------" in text):
self.setFormat(text.find("----------------------------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
elif (": port created: " in text):
self.setFormat(text.find(" port created: "), len(text), self.m_palette.color(QPalette.Active, QPalette.Link))
elif (": port deleted: " in text):
self.setFormat(text.find(" port deleted: "), len(text), self.m_palette.color(QPalette.Active, QPalette.LinkVisited))
if ": error: " in text:
self.setFormat(text.find(" error: "), len(text), Qt.red)
elif ": WARNING: " in text:
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif ": ----------------------------" in text:
self.setFormat(text.find("----------------------------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
elif ": port created: " in text:
self.setFormat(text.find(" port created: "), len(text), self.m_palette.color(QPalette.Active, QPalette.Link))
elif ": port deleted: " in text:
self.setFormat(text.find(" port deleted: "), len(text), self.m_palette.color(QPalette.Active, QPalette.LinkVisited))


# Syntax Highlighter for LASH # Syntax Highlighter for LASH
class SyntaxHighligher_LASH(QSyntaxHighlighter):
class SyntaxHighlighter_LASH(QSyntaxHighlighter):
def __init__(self, parent): def __init__(self, parent):
QSyntaxHighlighter.__init__(self, parent) QSyntaxHighlighter.__init__(self, parent)


self.m_palette = self.parent().palette() self.m_palette = self.parent().palette()


def highlightBlock(self, text): def highlightBlock(self, text):
if (": ERROR: " in text):
self.setFormat(text.find(" ERROR: "), len(text), Qt.red)
elif (": WARNING: " in text):
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif (": ------------------" in text):
self.setFormat(text.find(" ------------------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
if ": ERROR: " in text:
self.setFormat(text.find(" ERROR: "), len(text), Qt.red)
elif ": WARNING: " in text:
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif ": ------------------" in text:
self.setFormat(text.find(" ------------------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))


# Syntax Highlighter for LADISH # Syntax Highlighter for LADISH
class SyntaxHighligher_LADISH(QSyntaxHighlighter):
class SyntaxHighlighter_LADISH(QSyntaxHighlighter):
def __init__(self, parent): def __init__(self, parent):
QSyntaxHighlighter.__init__(self, parent) QSyntaxHighlighter.__init__(self, parent)


self.m_palette = self.parent().palette() self.m_palette = self.parent().palette()


def highlightBlock(self, text): def highlightBlock(self, text):
if (": ERROR: " in text):
self.setFormat(text.find(" ERROR: "), len(text), Qt.red)
elif (": WARNING: " in text):
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif (": -------" in text):
self.setFormat(text.find(" -------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
# Lockless file read thread
if ": ERROR: " in text:
self.setFormat(text.find(" ERROR: "), len(text), Qt.red)
elif ": WARNING: " in text:
self.setFormat(text.find(" WARNING: "), len(text), Qt.darkRed)
elif ": -------" in text:
self.setFormat(text.find(" -------"), len(text), self.m_palette.color(QPalette.Active, QPalette.Mid))
# Lock-less file read thread
class LogsReadThread(QThread): class LogsReadThread(QThread):
def __init__(self, parent): def __init__(self, parent):
QThread.__init__(self, parent) QThread.__init__(self, parent)
@@ -116,29 +117,29 @@ class LogsReadThread(QThread):
# ------------------------------------------------------------- # -------------------------------------------------------------
# Init logs # Init logs


if (self.LOG_FILE_JACK):
self.log_jack_file = QFile(self.LOG_FILE_JACK)
self.log_jack_file.open(QIODevice.ReadOnly)
self.log_jack_stream = QTextStream(self.log_jack_file)
self.log_jack_stream.setCodec("UTF-8")
if (self.LOG_FILE_A2J):
self.log_a2j_file = QFile(self.LOG_FILE_A2J)
self.log_a2j_file.open(QIODevice.ReadOnly)
self.log_a2j_stream = QTextStream(self.log_a2j_file)
self.log_a2j_stream.setCodec("UTF-8")
if (self.LOG_FILE_LASH):
self.log_lash_file = QFile(self.LOG_FILE_LASH)
self.log_lash_file.open(QIODevice.ReadOnly)
self.log_lash_stream = QTextStream(self.log_lash_file)
self.log_lash_stream.setCodec("UTF-8")
if (self.LOG_FILE_LADISH):
self.log_ladish_file = QFile(self.LOG_FILE_LADISH)
self.log_ladish_file.open(QIODevice.ReadOnly)
self.log_ladish_stream = QTextStream(self.log_ladish_file)
self.log_ladish_stream.setCodec("UTF-8")
if self.LOG_FILE_JACK:
self.log_jack_file = QFile(self.LOG_FILE_JACK)
self.log_jack_file.open(QIODevice.ReadOnly)
self.log_jack_stream = QTextStream(self.log_jack_file)
self.log_jack_stream.setCodec("UTF-8")
if self.LOG_FILE_A2J:
self.log_a2j_file = QFile(self.LOG_FILE_A2J)
self.log_a2j_file.open(QIODevice.ReadOnly)
self.log_a2j_stream = QTextStream(self.log_a2j_file)
self.log_a2j_stream.setCodec("UTF-8")
if self.LOG_FILE_LASH:
self.log_lash_file = QFile(self.LOG_FILE_LASH)
self.log_lash_file.open(QIODevice.ReadOnly)
self.log_lash_stream = QTextStream(self.log_lash_file)
self.log_lash_stream.setCodec("UTF-8")
if self.LOG_FILE_LADISH:
self.log_ladish_file = QFile(self.LOG_FILE_LADISH)
self.log_ladish_file.open(QIODevice.ReadOnly)
self.log_ladish_stream = QTextStream(self.log_ladish_file)
self.log_ladish_stream.setCodec("UTF-8")


def purgeLogs(self): def purgeLogs(self):
self.m_purgeLogs = True self.m_purgeLogs = True
@@ -147,77 +148,76 @@ class LogsReadThread(QThread):
# ------------------------------------------------------------- # -------------------------------------------------------------
# Read logs and set text in main thread # Read logs and set text in main thread


while (self.isRunning()):
if (self.m_purgeLogs):
if (self.LOG_FILE_JACK):
self.log_jack_stream.flush()
self.log_jack_file.close()
self.log_jack_file.open(QIODevice.WriteOnly)
self.log_jack_file.close()
self.log_jack_file.open(QIODevice.ReadOnly)
if (self.LOG_FILE_A2J):
self.log_a2j_stream.flush()
self.log_a2j_file.close()
self.log_a2j_file.open(QIODevice.WriteOnly)
self.log_a2j_file.close()
self.log_a2j_file.open(QIODevice.ReadOnly)
if (self.LOG_FILE_LASH):
self.log_lash_stream.flush()
self.log_lash_file.close()
self.log_lash_file.open(QIODevice.WriteOnly)
self.log_lash_file.close()
self.log_lash_file.open(QIODevice.ReadOnly)
if (self.LOG_FILE_LADISH):
self.log_ladish_stream.flush()
self.log_ladish_file.close()
self.log_ladish_file.open(QIODevice.WriteOnly)
self.log_ladish_file.close()
self.log_ladish_file.open(QIODevice.ReadOnly)
else:
text_jack = ""
text_a2j = ""
text_lash = ""
text_ladish = ""
if (self.LOG_FILE_JACK):
text_jack = fixLogText(self.log_jack_stream.readAll()).strip()
if (self.LOG_FILE_A2J):
text_a2j = fixLogText(self.log_a2j_stream.readAll()).strip()
if (self.LOG_FILE_LASH):
text_lash = fixLogText(self.log_lash_stream.readAll()).strip()
if (self.LOG_FILE_LADISH):
text_ladish = fixLogText(self.log_ladish_stream.readAll()).strip()
self.parent().setLogsText(text_jack, text_a2j, text_lash, text_ladish)
self.emit(SIGNAL("updateLogs()"))
self.sleep(1)
while self.isRunning():
if self.m_purgeLogs:
if self.LOG_FILE_JACK:
self.log_jack_stream.flush()
self.log_jack_file.close()
self.log_jack_file.open(QIODevice.WriteOnly)
self.log_jack_file.close()
self.log_jack_file.open(QIODevice.ReadOnly)
if self.LOG_FILE_A2J:
self.log_a2j_stream.flush()
self.log_a2j_file.close()
self.log_a2j_file.open(QIODevice.WriteOnly)
self.log_a2j_file.close()
self.log_a2j_file.open(QIODevice.ReadOnly)
if self.LOG_FILE_LASH:
self.log_lash_stream.flush()
self.log_lash_file.close()
self.log_lash_file.open(QIODevice.WriteOnly)
self.log_lash_file.close()
self.log_lash_file.open(QIODevice.ReadOnly)
if self.LOG_FILE_LADISH:
self.log_ladish_stream.flush()
self.log_ladish_file.close()
self.log_ladish_file.open(QIODevice.WriteOnly)
self.log_ladish_file.close()
self.log_ladish_file.open(QIODevice.ReadOnly)
else:
text_jack = ""
text_a2j = ""
text_lash = ""
text_ladish = ""
if self.LOG_FILE_JACK:
text_jack = fixLogText(self.log_jack_stream.readAll()).strip()
if self.LOG_FILE_A2J:
text_a2j = fixLogText(self.log_a2j_stream.readAll()).strip()
if self.LOG_FILE_LASH:
text_lash = fixLogText(self.log_lash_stream.readAll()).strip()
if self.LOG_FILE_LADISH:
text_ladish = fixLogText(self.log_ladish_stream.readAll()).strip()
self.parent().setLogsText(text_jack, text_a2j, text_lash, text_ladish)
self.emit(SIGNAL("updateLogs()"))
self.sleep(1)


# ------------------------------------------------------------- # -------------------------------------------------------------
# Close logs before closing thread # Close logs before closing thread


if (self.LOG_FILE_JACK):
self.log_jack_file.close()
if self.LOG_FILE_JACK:
self.log_jack_file.close()


if (self.LOG_FILE_A2J):
self.log_a2j_file.close()
if self.LOG_FILE_A2J:
self.log_a2j_file.close()


if (self.LOG_FILE_LASH):
self.log_lash_file.close()
if self.LOG_FILE_LASH:
self.log_lash_file.close()


if (self.LOG_FILE_LADISH):
self.log_ladish_file.close()
if self.LOG_FILE_LADISH:
self.log_ladish_file.close()


# Logs Window # Logs Window
class LogsW(QDialog, ui_logs.Ui_LogsW): class LogsW(QDialog, ui_logs.Ui_LogsW):

LOG_PATH = os.path.join(HOME, ".log") LOG_PATH = os.path.join(HOME, ".log")


LOG_FILE_JACK = os.path.join(LOG_PATH, "jack", "jackdbus.log") LOG_FILE_JACK = os.path.join(LOG_PATH, "jack", "jackdbus.log")
@@ -233,54 +233,56 @@ class LogsW(QDialog, ui_logs.Ui_LogsW):
self.b_purge.setIcon(getIcon("user-trash")) self.b_purge.setIcon(getIcon("user-trash"))


self.m_firstRun = True self.m_firstRun = True
self.m_textLock = False

self.m_text_jack = "" self.m_text_jack = ""
self.m_text_a2j = "" self.m_text_a2j = ""
self.m_text_lash = "" self.m_text_lash = ""
self.m_text_ladish = "" self.m_text_ladish = ""


# ------------------------------------------------------------- # -------------------------------------------------------------
# Check for unexisting logs and remove tabs for those
# Check for non-existing logs and remove tabs for those


tab_index = 0 tab_index = 0


if (not os.path.exists(self.LOG_FILE_JACK)):
self.LOG_FILE_JACK = None
self.tabWidget.removeTab(0-tab_index)
tab_index += 1
if not os.path.exists(self.LOG_FILE_JACK):
self.LOG_FILE_JACK = None
self.tabWidget.removeTab(0 - tab_index)
tab_index += 1


if (not os.path.exists(self.LOG_FILE_A2J)):
self.LOG_FILE_A2J = None
self.tabWidget.removeTab(1-tab_index)
tab_index += 1
if not os.path.exists(self.LOG_FILE_A2J):
self.LOG_FILE_A2J = None
self.tabWidget.removeTab(1 - tab_index)
tab_index += 1


if (not os.path.exists(self.LOG_FILE_LASH)):
self.LOG_FILE_LASH = None
self.tabWidget.removeTab(2-tab_index)
tab_index += 1
if not os.path.exists(self.LOG_FILE_LASH):
self.LOG_FILE_LASH = None
self.tabWidget.removeTab(2 - tab_index)
tab_index += 1


if (not os.path.exists(self.LOG_FILE_LADISH)):
self.LOG_FILE_LADISH = None
self.tabWidget.removeTab(3-tab_index)
tab_index += 1
if not os.path.exists(self.LOG_FILE_LADISH):
self.LOG_FILE_LADISH = None
self.tabWidget.removeTab(3 - tab_index)
tab_index += 1


# ------------------------------------------------------------- # -------------------------------------------------------------
# Init logs viewers # Init logs viewers


if (self.LOG_FILE_JACK):
syntax_jack = SyntaxHighligher_JACK(self.pte_jack)
syntax_jack.setDocument(self.pte_jack.document())
if self.LOG_FILE_JACK:
syntax_jack = SyntaxHighlighter_JACK(self.pte_jack)
syntax_jack.setDocument(self.pte_jack.document())


if (self.LOG_FILE_A2J):
syntax_a2j = SyntaxHighligher_A2J(self.pte_a2j)
syntax_a2j.setDocument(self.pte_a2j.document())
if self.LOG_FILE_A2J:
syntax_a2j = SyntaxHighlighter_A2J(self.pte_a2j)
syntax_a2j.setDocument(self.pte_a2j.document())


if (self.LOG_FILE_LASH):
syntax_lash = SyntaxHighligher_LASH(self.pte_lash)
syntax_lash.setDocument(self.pte_lash.document())
if self.LOG_FILE_LASH:
syntax_lash = SyntaxHighlighter_LASH(self.pte_lash)
syntax_lash.setDocument(self.pte_lash.document())


if (self.LOG_FILE_LADISH):
syntax_ladish = SyntaxHighligher_LADISH(self.pte_ladish)
syntax_ladish.setDocument(self.pte_ladish.document())
if self.LOG_FILE_LADISH:
syntax_ladish = SyntaxHighlighter_LADISH(self.pte_ladish)
syntax_ladish.setDocument(self.pte_ladish.document())


# ------------------------------------------------------------- # -------------------------------------------------------------
# Init file read thread # Init file read thread
@@ -295,6 +297,9 @@ class LogsW(QDialog, ui_logs.Ui_LogsW):
self.connect(self.m_readThread, SIGNAL("updateLogs()"), SLOT("slot_updateLogs()")) self.connect(self.m_readThread, SIGNAL("updateLogs()"), SLOT("slot_updateLogs()"))


def setLogsText(self, text_jack, text_a2j, text_lash, text_ladish): def setLogsText(self, text_jack, text_a2j, text_lash, text_ladish):
while self.m_textLock:
sleep(0.5)

self.m_text_jack = text_jack self.m_text_jack = text_jack
self.m_text_a2j = text_a2j self.m_text_a2j = text_a2j
self.m_text_lash = text_lash self.m_text_lash = text_lash
@@ -302,40 +307,38 @@ class LogsW(QDialog, ui_logs.Ui_LogsW):


@pyqtSlot() @pyqtSlot()
def slot_updateLogs(self): def slot_updateLogs(self):
if (self.m_firstRun):
self.pte_jack.clear()
self.pte_a2j.clear()
self.pte_lash.clear()
self.pte_ladish.clear()

if (self.LOG_FILE_A2J):
if (self.m_text_a2j):
self.m_textLock = True

if self.m_firstRun:
self.pte_jack.clear()
self.pte_a2j.clear()
self.pte_lash.clear()
self.pte_ladish.clear()

if self.LOG_FILE_JACK and self.m_text_jack:
self.pte_jack.appendPlainText(self.m_text_jack)

if self.LOG_FILE_A2J and self.m_text_a2j:
self.pte_a2j.appendPlainText(self.m_text_a2j) self.pte_a2j.appendPlainText(self.m_text_a2j)


if (self.LOG_FILE_LASH):
if (self.m_text_lash):
if self.LOG_FILE_LASH and self.m_text_lash:
self.pte_lash.appendPlainText(self.m_text_lash) self.pte_lash.appendPlainText(self.m_text_lash)


if (self.LOG_FILE_LADISH):
if (self.m_text_ladish):
if self.LOG_FILE_LADISH and self.m_text_ladish:
self.pte_ladish.appendPlainText(self.m_text_ladish) self.pte_ladish.appendPlainText(self.m_text_ladish)


# Somehow appending the whole jack log breaks this call?
# Set it here in last for now
if (self.LOG_FILE_JACK):
if (self.m_text_jack):
self.pte_jack.appendPlainText(self.m_text_jack)
if self.m_firstRun:
self.pte_jack.horizontalScrollBar().setValue(0)
self.pte_jack.verticalScrollBar().setValue(self.pte_jack.verticalScrollBar().maximum())
self.pte_a2j.horizontalScrollBar().setValue(0)
self.pte_a2j.verticalScrollBar().setValue(self.pte_a2j.verticalScrollBar().maximum())
self.pte_lash.horizontalScrollBar().setValue(0)
self.pte_lash.verticalScrollBar().setValue(self.pte_lash.verticalScrollBar().maximum())
self.pte_ladish.horizontalScrollBar().setValue(0)
self.pte_ladish.verticalScrollBar().setValue(self.pte_ladish.verticalScrollBar().maximum())
self.m_firstRun = False


if (self.m_firstRun):
self.pte_jack.horizontalScrollBar().setValue(0)
self.pte_jack.verticalScrollBar().setValue(self.pte_jack.verticalScrollBar().maximum())
self.pte_a2j.horizontalScrollBar().setValue(0)
self.pte_a2j.verticalScrollBar().setValue(self.pte_a2j.verticalScrollBar().maximum())
self.pte_lash.horizontalScrollBar().setValue(0)
self.pte_lash.verticalScrollBar().setValue(self.pte_lash.verticalScrollBar().maximum())
self.pte_ladish.horizontalScrollBar().setValue(0)
self.pte_ladish.verticalScrollBar().setValue(self.pte_ladish.verticalScrollBar().maximum())
self.m_firstRun = False
self.m_textLock = False


@pyqtSlot() @pyqtSlot()
def slot_purgeLogs(self): def slot_purgeLogs(self):
@@ -356,7 +359,6 @@ class LogsW(QDialog, ui_logs.Ui_LogsW):
# ------------------------------------------------------------- # -------------------------------------------------------------
# Allow to use this as a standalone app # Allow to use this as a standalone app
if __name__ == '__main__': if __name__ == '__main__':

# Additional imports # Additional imports
from PyQt4.QtGui import QApplication from PyQt4.QtGui import QApplication




+ 39
- 34
src/shared_canvas.py View File

@@ -23,6 +23,8 @@ from PyQt4.QtGui import QFileDialog, QImage, QPainter, QPrinter, QPrintDialog
# Imports (Custom Stuff) # Imports (Custom Stuff)
import patchcanvas import patchcanvas


# ------------------------------------------------------------------------------------------------------------

# Shared Canvas code # Shared Canvas code
def canvas_arrange(): def canvas_arrange():
patchcanvas.arrange() patchcanvas.arrange()
@@ -47,46 +49,49 @@ def canvas_print(self_):
self_.scene.clearSelection() self_.scene.clearSelection()
self_.m_export_printer = QPrinter() self_.m_export_printer = QPrinter()
dialog = QPrintDialog(self_.m_export_printer, self_) dialog = QPrintDialog(self_.m_export_printer, self_)

if (dialog.exec_()): if (dialog.exec_()):
painter = QPainter(self_.m_export_printer)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.TextAntialiasing)
self_.scene.render(painter)
painter = QPainter(self_.m_export_printer)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.TextAntialiasing)
self_.scene.render(painter)


def canvas_save_image(self_): def canvas_save_image(self_):
newPath = QFileDialog.getSaveFileName(self_, self_.tr("Save Image"), filter=self_.tr("PNG Image (*.png);;JPEG Image (*.jpg)")) newPath = QFileDialog.getSaveFileName(self_, self_.tr("Save Image"), filter=self_.tr("PNG Image (*.png);;JPEG Image (*.jpg)"))
print(newPath)


if (newPath): if (newPath):
self_.scene.clearSelection()
if (newPath.endswith((".jpg", ".jpG", ".jPG", ".JPG", ".JPg", ".Jpg"))):
img_format = "JPG"
elif (newPath.endswith((".png", ".pnG", ".pNG", ".PNG", ".PNg", ".Png"))):
img_format = "PNG"
else:
# File-dialog may not auto-add the extension
img_format = "PNG"
newPath += ".png"

self_.m_export_image = QImage(self_.scene.sceneRect().width(), self_.scene.sceneRect().height(), QImage.Format_RGB32)
painter = QPainter(self_.m_export_image)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.TextAntialiasing)
self_.scene.render(painter)
self_.m_export_image.save(newPath, img_format, 100)
self_.scene.clearSelection()

if (newPath.endswith((".jpg", ".jpG", ".jPG", ".JPG", ".JPg", ".Jpg"))):
img_format = "JPG"
elif (newPath.endswith((".png", ".pnG", ".pNG", ".PNG", ".PNg", ".Png"))):
img_format = "PNG"
else:
# File-dialog may not auto-add the extension
img_format = "PNG"
newPath += ".png"

self_.m_export_image = QImage(self_.scene.sceneRect().width(), self_.scene.sceneRect().height(), QImage.Format_RGB32)
painter = QPainter(self_.m_export_image)
painter.setRenderHint(QPainter.Antialiasing) # TODO - set true, cleanup this
painter.setRenderHint(QPainter.TextAntialiasing)
self_.scene.render(painter)
self_.m_export_image.save(newPath, img_format, 100)

# ------------------------------------------------------------------------------------------------------------


# Shared Connections # Shared Connections
def setCanvasConnections(self_): def setCanvasConnections(self_):
self_.act_canvas_arrange.setEnabled(False)
self_.connect(self_.act_canvas_arrange, SIGNAL("triggered()"), lambda: canvas_arrange())
self_.connect(self_.act_canvas_refresh, SIGNAL("triggered()"), lambda: canvas_refresh(self_))
self_.connect(self_.act_canvas_zoom_fit, SIGNAL("triggered()"), lambda: canvas_zoom_fit(self_))
self_.connect(self_.act_canvas_zoom_in, SIGNAL("triggered()"), lambda: canvas_zoom_in(self_))
self_.connect(self_.act_canvas_zoom_out, SIGNAL("triggered()"), lambda: canvas_zoom_out(self_))
self_.connect(self_.act_canvas_zoom_100, SIGNAL("triggered()"), lambda: canvas_zoom_reset(self_))
self_.connect(self_.act_canvas_print, SIGNAL("triggered()"), lambda: canvas_print(self_))
self_.connect(self_.act_canvas_save_image, SIGNAL("triggered()"), lambda: canvas_save_image(self_))
self_.connect(self_.b_canvas_zoom_fit, SIGNAL("clicked()"), lambda: canvas_zoom_fit(self_))
self_.connect(self_.b_canvas_zoom_in, SIGNAL("clicked()"), lambda: canvas_zoom_in(self_))
self_.connect(self_.b_canvas_zoom_out, SIGNAL("clicked()"), lambda: canvas_zoom_out(self_))
self_.connect(self_.b_canvas_zoom_100, SIGNAL("clicked()"), lambda: canvas_zoom_reset(self_))
self_.act_canvas_arrange.setEnabled(False) # TODO - later
self_.connect(self_.act_canvas_arrange, SIGNAL("triggered()"), lambda: canvas_arrange())
self_.connect(self_.act_canvas_refresh, SIGNAL("triggered()"), lambda: canvas_refresh(self_))
self_.connect(self_.act_canvas_zoom_fit, SIGNAL("triggered()"), lambda: canvas_zoom_fit(self_))
self_.connect(self_.act_canvas_zoom_in, SIGNAL("triggered()"), lambda: canvas_zoom_in(self_))
self_.connect(self_.act_canvas_zoom_out, SIGNAL("triggered()"), lambda: canvas_zoom_out(self_))
self_.connect(self_.act_canvas_zoom_100, SIGNAL("triggered()"), lambda: canvas_zoom_reset(self_))
self_.connect(self_.act_canvas_print, SIGNAL("triggered()"), lambda: canvas_print(self_))
self_.connect(self_.act_canvas_save_image, SIGNAL("triggered()"), lambda: canvas_save_image(self_))
self_.connect(self_.b_canvas_zoom_fit, SIGNAL("clicked()"), lambda: canvas_zoom_fit(self_))
self_.connect(self_.b_canvas_zoom_in, SIGNAL("clicked()"), lambda: canvas_zoom_in(self_))
self_.connect(self_.b_canvas_zoom_out, SIGNAL("clicked()"), lambda: canvas_zoom_out(self_))
self_.connect(self_.b_canvas_zoom_100, SIGNAL("clicked()"), lambda: canvas_zoom_reset(self_))

+ 0
- 5
src/shared_settings.py View File

@@ -16,11 +16,6 @@
# #
# For a full copy of the GNU General Public License see the COPYING file # For a full copy of the GNU General Public License see the COPYING file


# Set PyQt4 API
from sip import setapi
setapi("QString", 2)
setapi("QVariant", 2)

# Imports (Global) # Imports (Global)
from PyQt4.QtCore import pyqtSlot, SIGNAL, SLOT from PyQt4.QtCore import pyqtSlot, SIGNAL, SLOT
from PyQt4.QtGui import QDialog, QDialogButtonBox, QIcon, QPixmap from PyQt4.QtGui import QDialog, QDialogButtonBox, QIcon, QPixmap


+ 12
- 0
src/ui/logs.ui View File

@@ -29,6 +29,9 @@
<property name="verticalScrollBarPolicy"> <property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum> <enum>Qt::ScrollBarAlwaysOn</enum>
</property> </property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="lineWrapMode"> <property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum> <enum>QPlainTextEdit::NoWrap</enum>
</property> </property>
@@ -52,6 +55,9 @@
<property name="verticalScrollBarPolicy"> <property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum> <enum>Qt::ScrollBarAlwaysOn</enum>
</property> </property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="lineWrapMode"> <property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum> <enum>QPlainTextEdit::NoWrap</enum>
</property> </property>
@@ -75,6 +81,9 @@
<property name="verticalScrollBarPolicy"> <property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum> <enum>Qt::ScrollBarAlwaysOn</enum>
</property> </property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="lineWrapMode"> <property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum> <enum>QPlainTextEdit::NoWrap</enum>
</property> </property>
@@ -98,6 +107,9 @@
<property name="verticalScrollBarPolicy"> <property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum> <enum>Qt::ScrollBarAlwaysOn</enum>
</property> </property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOn</enum>
</property>
<property name="lineWrapMode"> <property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum> <enum>QPlainTextEdit::NoWrap</enum>
</property> </property>


Loading…
Cancel
Save