Browse Source

Fix handling XML files with unicode; Fix Catarina group remove

tags/v0.9.0
falkTX 13 years ago
parent
commit
056b56c1b4
5 changed files with 30 additions and 21 deletions
  1. +3
    -3
      src/carla.py
  2. +18
    -13
      src/catarina.py
  3. +2
    -2
      src/patchcanvas.py
  4. +4
    -0
      src/shared.py
  5. +3
    -3
      src/shared_carla.py

+ 3
- 3
src/carla.py View File

@@ -1544,7 +1544,7 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):
content += "</CARLA-PROJECT>\n"

try:
fd = open(self.m_project_filename, "w")
fd = uopen(self.m_project_filename, "w")
fd.write(content)
fd.close()
except:
@@ -1552,7 +1552,7 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):

def load_project(self):
try:
fd = open(self.m_project_filename, "r")
fd = uopen(self.m_project_filename, "r")
projectRead = fd.read()
fd.close()
except:
@@ -1563,7 +1563,7 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):
return

xml = QDomDocument()
xml.setContent(projectRead)
xml.setContent(projectRead.encode("utf-8"))

xml_node = xml.documentElement()
if xml_node.tagName() != "CARLA-PROJECT":


+ 18
- 13
src/catarina.py View File

@@ -818,10 +818,10 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
content += " <Groups>\n"
for i in range(len(self.m_group_list)):
group = self.m_group_list[i]
group_id = group[iGroupId]
group_name = group[iGroupName]
group_id = group[iGroupId]
group_name = group[iGroupName]
group_split = group[iGroupSplit]
group_icon = group[iGroupIcon]
group_icon = group[iGroupIcon]
group_pos_i = patchcanvas.getGroupPos(group_id, patchcanvas.PORT_MODE_INPUT)
group_pos_o = patchcanvas.getGroupPos(group_id, patchcanvas.PORT_MODE_OUTPUT)
content += " <g%i> <name>%s</name> <data>%i:%i:%i:%f:%f:%f:%f</data> </g%i>\n" % (i, group_name, group_id, group_split, group_icon, group_pos_o.x(), group_pos_o.y(), group_pos_i.x(), group_pos_i.y(), i)
@@ -842,7 +842,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
content += "</CATARINA>\n"

try:
fd = open(path, "w")
fd = uopen(path, "w")
fd.write(content)
fd.close()
except:
@@ -855,7 +855,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
return

try:
fd = open(path, "r")
fd = uopen(path, "r")
readState = fd.read()
fd.close()
except:
@@ -863,17 +863,17 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
self.m_save_path = None
return

self.m_save_path = path
self.m_group_list = []
self.m_group_list_pos = []
self.m_port_list = []
self.m_save_path = path
self.m_group_list = []
self.m_group_list_pos = []
self.m_port_list = []
self.m_connection_list = []
self.m_last_group_id = 1
self.m_last_port_id = 1
self.m_last_group_id = 1
self.m_last_port_id = 1
self.m_last_connection_id = 1

xml = QDomDocument()
xml.setContent(readState)
xml.setContent(readState.encode("utf-8"))

content = xml.documentElement()
if content.tagName() != "CATARINA":
@@ -1033,7 +1033,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
if dialog.exec_():
group_id = dialog.ret_group_id

# Remove ports and connections of this group first
# Remove port connections first
for port in self.m_port_list:
if port[iPortGroup] == group_id:
port_id = port[iPortId]
@@ -1043,6 +1043,11 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW):
patchcanvas.disconnectPorts(connection[iConnId])
self.m_connection_list.remove(connection)

# Remove ports
for port in self.m_port_list:
if port[iPortGroup] == group_id:
port_id = port[iPortId]

patchcanvas.removePort(port[iPortId])
self.m_port_list.remove(port)



+ 2
- 2
src/patchcanvas.py View File

@@ -740,8 +740,8 @@ def addPort(group_id, port_id, port_name, port_mode, port_type):
CanvasItemFX(port_widget, True)

port_dict = port_dict_t()
port_dict.group_id = group_id
port_dict.port_id = port_id
port_dict.group_id = group_id
port_dict.port_id = port_id
port_dict.port_name = port_name
port_dict.port_mode = port_mode
port_dict.port_type = port_type


+ 4
- 0
src/shared.py View File

@@ -21,6 +21,7 @@ import os, sys
from unicodedata import normalize
from PyQt4.QtCore import qWarning, SIGNAL, SLOT
from PyQt4.QtGui import QFileDialog, QIcon, QMessageBox
from codecs import open as codecopen

# Set Platform
if sys.platform == "darwin":
@@ -221,6 +222,9 @@ def toList(value):
else:
return value

def uopen(filename, mode="r"):
return codecopen(filename, encoding="utf-8", mode=mode)

# QLineEdit and QPushButton combo
def getAndSetPath(self_, currentPath, lineEdit):
newPath = QFileDialog.getExistingDirectory(self_, self_.tr("Set Path"), currentPath, QFileDialog.ShowDirsOnly)


+ 3
- 3
src/shared_carla.py View File

@@ -949,7 +949,7 @@ class PluginEdit(QDialog, ui_carla_edit.Ui_PluginEdit):
content += "</CARLA-PRESET>\n"

try:
fd = open(self.m_currentStateFilename, "w")
fd = uopen(self.m_currentStateFilename, "w")
fd.write(content)
fd.close()
except:
@@ -963,7 +963,7 @@ class PluginEdit(QDialog, ui_carla_edit.Ui_PluginEdit):

def loadState(self):
try:
fd = open(self.m_currentStateFilename, "r")
fd = uopen(self.m_currentStateFilename, "r")
stateRead = fd.read()
fd.close()
except:
@@ -971,7 +971,7 @@ class PluginEdit(QDialog, ui_carla_edit.Ui_PluginEdit):
return

xml = QDomDocument()
xml.setContent(stateRead)
xml.setContent(stateRead.encode("utf-8"))

xmlNode = xml.documentElement()



Loading…
Cancel
Save