From ebc116454d99d29403027a64957d42ed31184289 Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 12 Apr 2013 16:24:38 +0100 Subject: [PATCH] Make carla-control load DLL, so it also gets the custom theme --- data/carla-control | 3 ++- source/carla_control.py | 37 +++++++++++++++++++++++++++++++++++-- source/carla_shared.py | 1 + 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/data/carla-control b/data/carla-control index 34bf89b55..43efc52ea 100755 --- a/data/carla-control +++ b/data/carla-control @@ -7,4 +7,5 @@ else fi INSTALL_PREFIX="X-PREFIX-X" -exec $PYTHON $INSTALL_PREFIX/share/carla/carla_control.py "$@" +export PATH="$INSTALL_PREFIX"/lib/carla:$PATH +exec $PYTHON $INSTALL_PREFIX/share/carla/carla_control.py --with-libprefix="$INSTALL_PREFIX" "$@" diff --git a/source/carla_control.py b/source/carla_control.py index c5d096c42..4e0544d26 100755 --- a/source/carla_control.py +++ b/source/carla_control.py @@ -19,6 +19,7 @@ # ------------------------------------------------------------------------------------------------------------ # Imports (Global) +from PyQt4.QtCore import QLibrary from PyQt4.QtGui import QApplication, QInputDialog, QMainWindow from liblo import make_method, Address, ServerError, ServerThread from liblo import send as lo_send @@ -509,7 +510,7 @@ class ControlServer(ServerThread): class CarlaControlW(QMainWindow): def __init__(self, parent=None): QMainWindow.__init__(self, parent) - self.ui = ui_carla_control.Ui_CarlaControlW + self.ui = ui_carla_control.Ui_CarlaControlW() self.ui.setupUi(self) # ------------------------------------------------------------- @@ -905,6 +906,30 @@ if __name__ == '__main__': app.setOrganizationName("Cadence") app.setWindowIcon(QIcon(":/scalable/carla-control.svg")) + libPrefix = None + + for i in range(len(app.arguments())): + if i == 0: continue + argument = app.arguments()[i] + + if argument.startswith("--with-libprefix="): + libPrefix = argument.replace("--with-libprefix=", "") + + if libPrefix is not None: + libName = os.path.join(libPrefix, "lib", "carla", carla_libname) + else: + libName = carla_library_path + + # Load backend DLL, so it registers the theme + libDLL = QLibrary() + libDLL.setFileName(libName) + + try: + libDLL.load() + except: + pass + + # Init backend (OSC bridge version) Carla.host = Host() # Create GUI @@ -917,4 +942,12 @@ if __name__ == '__main__': Carla.gui.show() # App-Loop - sys.exit(app.exec_()) + ret = app.exec_() + + # Close backend DLL + if libDLL.isLoaded(): + # Need to destroy app before theme + del app + libDLL.unload() + + sys.exit(ret) diff --git a/source/carla_shared.py b/source/carla_shared.py index 9183c89f5..9cfcbd250 100644 --- a/source/carla_shared.py +++ b/source/carla_shared.py @@ -868,6 +868,7 @@ class CarlaAboutW(QDialog): self.ui.l_extended.hide() self.ui.tabWidget.removeTab(1) self.ui.tabWidget.removeTab(1) + self.adjustSize() else: self.ui.l_extended.setText(cString(Carla.host.get_extended_license_text()))