From b5541f78d01ea277d98dd2a3a50063c1315af9e5 Mon Sep 17 00:00:00 2001 From: Gabriel Studer <gabriel.studer@unibas.ch> Date: Tue, 13 Mar 2018 23:24:12 +0100 Subject: [PATCH] initial commit to use QT5 instead of QT4 What is NOT done yet: - OpenGL context of QOpenGLWindow must be made active before calling any GL function in scene.cc. The wrong GL context is active otherwise. - cmake polishing - final grepping for QT4 leftovers --- CMakeLists.txt | 9 +- modules/gui/pymod/CMakeLists.txt | 3 +- modules/gui/pymod/__init__.py | 10 +- modules/gui/pymod/dng/init.py | 6 +- modules/gui/pymod/dng/menu.py | 23 +- modules/gui/pymod/dng/superpositiondialog.py | 29 ++- modules/gui/pymod/dng/termuse.py | 7 +- modules/gui/pymod/export_input.cc | 2 +- modules/gui/pymod/export_tool.cc | 2 +- modules/gui/pymod/helpwidget.py | 18 +- modules/gui/pymod/init_context_menu.py | 134 ++++++------ modules/gui/pymod/init_menubar.py | 2 +- modules/gui/pymod/init_spacenav.py | 2 +- modules/gui/pymod/init_splash.py | 12 +- .../gui/pymod/scene/color_options_widget.py | 36 ++-- .../gui/pymod/scene/color_select_widget.py | 24 ++- .../gui/pymod/scene/combo_options_widget.py | 31 ++- modules/gui/pymod/scene/cpk_widget.py | 18 +- modules/gui/pymod/scene/custom_widget.py | 54 ++--- modules/gui/pymod/scene/file_loader.py | 2 +- .../gui/pymod/scene/gradient_editor_widget.py | 81 +++---- .../gui/pymod/scene/gradient_info_handler.py | 4 +- .../gui/pymod/scene/gradient_list_model.py | 14 +- .../gui/pymod/scene/gradient_preset_widget.py | 63 +++--- modules/gui/pymod/scene/hsc_widget.py | 158 +++++++------- .../scene/immutable_gradient_info_handler.py | 2 +- .../gui/pymod/scene/immutable_info_handler.py | 12 +- .../scene/immutable_preset_info_handler.py | 1 - modules/gui/pymod/scene/init_inspector.py | 2 +- modules/gui/pymod/scene/inspector_widget.py | 28 +-- modules/gui/pymod/scene/line_trace_widget.py | 22 +- modules/gui/pymod/scene/map_level_widget.py | 46 ++-- modules/gui/pymod/scene/preset.py | 1 - .../pymod/scene/preset_editor_list_model.py | 2 +- .../gui/pymod/scene/preset_editor_widget.py | 202 +++++++++--------- .../gui/pymod/scene/preset_info_handler.py | 3 +- modules/gui/pymod/scene/preset_list_model.py | 16 +- modules/gui/pymod/scene/preset_widget.py | 52 ++--- modules/gui/pymod/scene/query_editor.py | 58 +++-- modules/gui/pymod/scene/remote.py | 37 ++-- modules/gui/pymod/scene/render_mode_widget.py | 12 +- modules/gui/pymod/scene/render_op.py | 1 - .../gui/pymod/scene/render_options_widget.py | 16 +- modules/gui/pymod/scene/simple_widget.py | 32 +-- modules/gui/pymod/scene/sline_widget.py | 24 +-- .../gui/pymod/scene/toolbar_options_widget.py | 27 ++- modules/gui/pymod/scene/trace_widget.py | 28 +-- modules/gui/pymod/scene/tube_widget.py | 48 ++--- .../gui/pymod/scene/uniform_color_widget.py | 14 +- modules/gui/pymod/scene/visibility_op.py | 1 - modules/gui/pymod/scene/wireframe_widget.py | 24 +-- modules/gui/pymod/sip_handler.hh | 4 +- modules/gui/pymod/table.py | 4 +- modules/gui/pymod/trajectory_viewer.py | 65 +++--- modules/gui/pymod/transfer_ownership.hh | 2 +- modules/gui/src/CMakeLists.txt | 22 +- modules/gui/src/file_viewer.cc | 2 +- modules/gui/src/gl_canvas.cc | 15 +- modules/gui/src/gl_canvas.hh | 15 +- modules/gui/src/gl_win.cc | 92 ++------ modules/gui/src/gl_win.hh | 2 - modules/gui/src/main.cc | 1 + modules/gui/src/panels/event_button.cc | 3 +- .../gui/src/panels/panel_bar_widget_holder.cc | 3 + modules/gui/src/panels/tabbed_panel_bar.cc | 2 + .../python_namespace_tree_model.hh | 3 +- .../src/python_shell/python_shell_widget.cc | 1 + modules/gui/src/scene_win/scene_win_model.cc | 1 + .../sequence_viewer/alignment_view_object.cc | 14 +- modules/img/alg/src/CMakeLists.txt | 3 - modules/info/src/CMakeLists.txt | 5 +- modules/info/src/info_impl.cc | 3 +- modules/info/src/info_impl.hh | 8 +- 73 files changed, 825 insertions(+), 900 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cf4c283a..e01823287 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -198,7 +198,7 @@ if (WIN32) endif() if (ENABLE_INFO) - find_package(Qt4 4.5.0 REQUIRED) + find_package(Qt5Xml REQUIRED) endif() if (OPTIMIZE) @@ -233,7 +233,7 @@ else() endif() find_package(Eigen 3.2.0 REQUIRED) -find_package(Python 2.4 REQUIRED) +find_package(Python 2.7 REQUIRED) if(USE_NUMPY) find_package(Numpy REQUIRED) @@ -269,8 +269,11 @@ if (ENABLE_STATIC) endif() if (ENABLE_GUI) + find_package(Qt5Widgets REQUIRED) + find_package(Qt5OpenGL REQUIRED) + find_package(Qt5PrintSupport REQUIRED) ost_find_python_module(sip) - ost_find_python_module(PyQt4) + ost_find_python_module(PyQt5) endif() if (ENABLE_SPNAV) diff --git a/modules/gui/pymod/CMakeLists.txt b/modules/gui/pymod/CMakeLists.txt index 2d0690f01..9c4826656 100644 --- a/modules/gui/pymod/CMakeLists.txt +++ b/modules/gui/pymod/CMakeLists.txt @@ -117,6 +117,5 @@ install(FILES ${INSPECTOR_ICONS} DESTINATION "share/openstructure/scene/icons") set(QT_USE_QTOPENGL 1) set(QT_USE_QTNETWORK 1) -include(${QT_USE_FILE}) -target_link_libraries(_ost_gui ${QT_LIBRARIES}) +target_link_libraries(_ost_gui ${QT_LIBRARIES} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport Qt5::Core Qt5::Gui Qt5::Widgets Qt5::PrintSupport) diff --git a/modules/gui/pymod/__init__.py b/modules/gui/pymod/__init__.py index 227a0db3b..da9be0da8 100644 --- a/modules/gui/pymod/__init__.py +++ b/modules/gui/pymod/__init__.py @@ -42,8 +42,9 @@ def ClearMessageWidget(): gosty.message_widget.Clear() -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * +from PyQt5.QtCore import * from ost import gfx def PickColor(default=gfx.WHITE): @@ -135,8 +136,7 @@ def AddMenuAction(*args, **kwargs): self.predicate=predicate self.action=action app=GostyApp.Instance() - QObject.connect(app.scene_win.qobject, SIGNAL('ActiveNodesChanged()'), - self.TestEnable) + app.scene_win.qobject.ActiveNodesChanged.connect(self.TestEnable) self.TestEnable() def TestEnable(self): @@ -168,7 +168,7 @@ def AddMenuAction(*args, **kwargs): enabler=MenuActionEnabler(kwargs['enabled'], action) else: action.setEnabled(kwargs['enabled']) - QObject.connect(action, SIGNAL('triggered()'), function) + action.triggered.connect(function) return action diff --git a/modules/gui/pymod/dng/init.py b/modules/gui/pymod/dng/init.py index 4be7ed291..d8c66b00e 100644 --- a/modules/gui/pymod/dng/init.py +++ b/modules/gui/pymod/dng/init.py @@ -15,7 +15,7 @@ except ImportError: import httplib -from PyQt4 import QtGui, QtCore +from PyQt5 import QtGui, QtWidgets, QtCore from ost.gui.scene.init_inspector import _InitInspector from ost.gui.init_menubar import _InitMenuBar from ost.gui.init_spacenav import _InitSpaceNav @@ -26,7 +26,7 @@ from ost.gui.dng import superpositiondialog from ost.gui.scene.remote import RemoteLoader import ost.gui.dng.menu -from PyQt4.QtGui import * +from PyQt5.QtGui import * def _my_exit(code): QtGui.QApplication.instance().quit() gui.GostyApp.Instance().ProcessEvents() @@ -49,7 +49,7 @@ _InitRuleBasedProcessor() def _CheckRestore(): settings = QtCore.QSettings() - restore = settings.value("restore_settings",QtCore.QVariant(False)).toBool() + restore = settings.value("restore_settings",QtCore.QVariant(False)) if not restore: settings.clear() settings.setValue("restore_settings",QtCore.QVariant(True)) diff --git a/modules/gui/pymod/dng/menu.py b/modules/gui/pymod/dng/menu.py index 875d43cf2..9e4503cfa 100644 --- a/modules/gui/pymod/dng/menu.py +++ b/modules/gui/pymod/dng/menu.py @@ -1,5 +1,6 @@ -from PyQt4.QtCore import * -from PyQt4.QtGui import * +from PyQt5.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtWidgets import * from ost import * from ost import gui from ost.gui.init_splash import _InitSplash @@ -60,11 +61,11 @@ class ClipWidget(QWidget): l.addWidget(self.near_, 0, 2) l.addWidget(self.far_, 1, 2) l.addWidget(self.auto_, 2, 0, 1, 4) - self.connect(self.near_, SIGNAL('valueChanged(int)'), self.SetNear) - self.connect(self.far_, SIGNAL('valueChanged(int)'), self.SetFar) - self.connect(self.auto_, SIGNAL('stateChanged(int)'), self.SetAuto) - self.connect(bounds_near, SIGNAL('textEdited(QString)'), self.SetNearBounds) - self.connect(bounds_far, SIGNAL('textEdited(QString)'), self.SetFarBounds) + self.near_.valueChanged.connect(self.SetNear) + self.far_.valueChanged.connect(self.SetFar) + self.auto_.stateChanged.connect(self.SetAuto) + bounds_near.textEdited.connect(self.SetNearBounds) + bounds_far.textEdited.connect(self.SetFarBounds) def SetNear(self, val): gfx.Scene().near = val @@ -104,13 +105,13 @@ class ExportSceneDialog(QDialog): l.addWidget(self.opaque_, 2, 1) hbox=QHBoxLayout() cancel=QPushButton("Cancel") - QObject.connect(cancel, SIGNAL('clicked()'), self.reject) + cancel.clicked.connect(self.reject) hbox.addWidget(cancel) export=QPushButton("Export") hbox.addWidget(export) export.setDefault(True) l.addLayout(hbox, 3, 1, 2, 1) - QObject.connect(export, SIGNAL('clicked()'), self.accept) + export.clicked.connect(self.accept) @property def transparent(self): return not self.opaque_.isChecked() @@ -127,7 +128,7 @@ class SceneMenu(QMenu): def __init__(self, parent=None): QMenu.__init__(self, parent) self.setTitle('Scene') - QObject.connect(self, SIGNAL('aboutToShow()'), self._AboutToShow) + self.aboutToShow.connect(self._AboutToShow) gui.AddMenuAction(self, 'Background Color', self._SetSceneBackground) self.fog_action=gui.AddMenuAction(self, 'Depth Cueing', self._ToggleFog, shortcut='Ctrl+Shift+F', checkable=True, @@ -214,7 +215,7 @@ class WindowMenu(QMenu): QMenu.__init__(self, parent) self.setTitle('Window') gosty=gui.GostyApp.Instance() - QObject.connect(self, SIGNAL('aboutToShow()'), self._AboutToShow) + self.aboutToShow.connect(self._AboutToShow) inspector_visible=gosty.GetWidget('InspectorDialog').isVisible() self._gl_win_action=gui.AddMenuAction(self, 'GL Window', self._ToggleShowGLWindow, checkable=True, diff --git a/modules/gui/pymod/dng/superpositiondialog.py b/modules/gui/pymod/dng/superpositiondialog.py index 7eb391803..894043007 100644 --- a/modules/gui/pymod/dng/superpositiondialog.py +++ b/modules/gui/pymod/dng/superpositiondialog.py @@ -19,16 +19,15 @@ # # Authors: Stefan Bienert # -from PyQt4.QtCore import * -from PyQt4.QtGui import * +from PyQt5 import QtCore, QtGui, QtWidgets from ost.mol.alg import Superpose from ost import mol -class ChainComboBox(QComboBox): +class ChainComboBox(QtWidgets.QComboBox): def __init__(self, ent, gfx, parent=None): # class variables self.all_chains = 'All' - QComboBox.__init__(self, parent) + QtWidgets.QComboBox.__init__(self, parent) self.entity = ent self.addItem(self.all_chains) for chain in self.entity.chains: @@ -37,9 +36,7 @@ class ChainComboBox(QComboBox): self.setCurrentIndex(0) if gfx: self.gfx = gfx - QObject.connect(self, - SIGNAL('highlighted (const QString&)'), - self._HighlightChain) + self.highlighted.connect(self._HighlightChain) else: self.gfx = None @@ -82,7 +79,7 @@ class ChainComboBox(QComboBox): break selected_chain = property(_GetSelectedChain, _SetSelectedChain) -class SuperpositionDialog(QDialog): +class SuperpositionDialog(QtWidgets.QDialog): """ Provides a graphical user interface to structurally superpose two entities. Uses function :func:`~ost.mol.alg.Superpose`. The RMSD of two superposed @@ -132,7 +129,7 @@ class SuperpositionDialog(QDialog): self.gfx_two = None self.gfx_select_one = None self.gfx_select_two = None - QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.setWindowTitle('Superpose structures') if not isinstance(ent_one, mol.EntityHandle) and \ not isinstance(ent_one, mol.EntityView): @@ -183,9 +180,7 @@ class SuperpositionDialog(QDialog): layout.addWidget(self._chain_two, grow, 1) grow += 1 # link chain and reference selection - QObject.connect(self._reference, - SIGNAL('currentIndexChanged(int)'), - self._ChangeChainSelection) + self._reference.currentIndexChanged.connect(self._ChangeChainSelection) # match methods self._methods = self._MatchMethods() layout.addWidget(QLabel('match residues by'), grow, 0) @@ -205,14 +200,14 @@ class SuperpositionDialog(QDialog): grow += 1 # buttons ok_button = QPushButton("Superpose") - QObject.connect(ok_button, SIGNAL('clicked()'), self.accept) + ok_button.clicked.connect(self.accept) cancel_button = QPushButton("Cancel") hbox_layout = QHBoxLayout() hbox_layout.addStretch(1) layout.addLayout(hbox_layout, grow, 0, 1, 2) grow += 1 - QObject.connect(cancel_button, SIGNAL('clicked()'), self.reject) - QObject.connect(self, SIGNAL('accepted()'), self._Superpose) + cancel_button.clicked.connect(self.reject) + self.accepted.connect(self._Superpose) hbox_layout.addWidget(cancel_button, 0) hbox_layout.addWidget(ok_button, 0) ok_button.setDefault(True) @@ -260,7 +255,7 @@ class SuperpositionDialog(QDialog): vbox_layout.addWidget(bt3) vbox_layout.addWidget(custom_rbutton) vbox_layout.addWidget(self._atoms) - QObject.connect(custom_rbutton, SIGNAL('toggled(bool)'), self._toggle_atoms) + custom_rbutton.toggled.connect(self._toggle_atoms) box = QGroupBox("atom selection") box.setLayout(vbox_layout) return box, group @@ -340,7 +335,7 @@ class SuperpositionDialog(QDialog): vbox_layout.addWidget(distance_label) vbox_layout.addWidget(distance_in) vbox_layout.addSpacing(50) - QObject.connect(bt1, SIGNAL('toggled(bool)'), self._toggle_iterative) + bt1.toggled.connect(self._toggle_iterative) box = QGroupBox("Iterative") box.setLayout(vbox_layout) return box,iteration_in, distance_in diff --git a/modules/gui/pymod/dng/termuse.py b/modules/gui/pymod/dng/termuse.py index a1fed90dd..68a937c5e 100644 --- a/modules/gui/pymod/dng/termuse.py +++ b/modules/gui/pymod/dng/termuse.py @@ -1,5 +1,4 @@ -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from PyQt5 import QtGui, QtCore, QtWidgets from ost.gui import AdminRights import ost import os @@ -7,9 +6,9 @@ import os usage='''The DNG application bundle contains two shell commands ('ost' and 'dng') that lets you use the OpenStructure command-line interpreter and dng from the terminal. If you want to use these commands, it is recommended that a symbolic link is created. ''' -class TerminalUsageDialog(QDialog): +class TerminalUsageDialog(QtWidgets.QDialog): def __init__(self, parent=None): - QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.setWindowTitle('Enhanced Terminal Usage') self.setFixedSize(QSize(480, 300)) l=QVBoxLayout(self) diff --git a/modules/gui/pymod/export_input.cc b/modules/gui/pymod/export_input.cc index 8906e944b..b6ecb5c0b 100644 --- a/modules/gui/pymod/export_input.cc +++ b/modules/gui/pymod/export_input.cc @@ -31,7 +31,7 @@ namespace { object spnav_get_instance() { static object sip_module=import("sip"); - static object pyqt4_module=import("PyQt4.QtCore"); + static object pyqt5_module=import("PyQt5.QtCore"); SpnavInput* si = SpnavInput::Instance(); if(si->isValid()) { return ost::gui::get_py_qobject<SpnavInput>(si); diff --git a/modules/gui/pymod/export_tool.cc b/modules/gui/pymod/export_tool.cc index c5165570e..3d968fd88 100644 --- a/modules/gui/pymod/export_tool.cc +++ b/modules/gui/pymod/export_tool.cc @@ -103,7 +103,7 @@ void to_add_option_b(ToolOptions& to, const String& name, object qpoint_to_bp_object (QPoint& p) { - static object bp_module =import("PyQt4.QtCore"); + static object bp_module =import("PyQt5.QtCore"); return bp_module.attr("QPoint")(p.x(),p.y()); } diff --git a/modules/gui/pymod/helpwidget.py b/modules/gui/pymod/helpwidget.py index 39e8602a8..9ac28e205 100644 --- a/modules/gui/pymod/helpwidget.py +++ b/modules/gui/pymod/helpwidget.py @@ -1,19 +1,17 @@ -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from PyQt5 import QtWidgets from ost import gui -class DocWidget(QWidget): +class DocWidget(QtWidgets.QWidget): def __init__(self, parent=None): - QWidget.__init__(self, parent) - l=QVBoxLayout(self) - l.setMargin(0) + QtWidgets.QWidget.__init__(self, parent) + l=QtWidgets.QVBoxLayout(self) + l.setContentsMargins(0,0,0,0) self.setWindowTitle('OpenStructure Help') - self.searchbox=QLineEdit(self) + self.searchbox=QtWidgets.QLineEdit(self) l.addWidget(self.searchbox) - self.doctext=QTextEdit('', self) + self.doctext=QtWidgets.QTextEdit('', self) l.addWidget(self.doctext) self.setLayout(l) - QObject.connect(self.searchbox, SIGNAL('returnPressed()'), - self.OnReturnPressed) + self.searchbox.returnPressed.connect(self.OnReturnPressed) def OnReturnPressed(self): help(str(self.searchbox.text())) doc_widget=DocWidget() diff --git a/modules/gui/pymod/init_context_menu.py b/modules/gui/pymod/init_context_menu.py index e911645c0..e130c76d8 100644 --- a/modules/gui/pymod/init_context_menu.py +++ b/modules/gui/pymod/init_context_menu.py @@ -1,6 +1,6 @@ import platform -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets import sip @@ -13,52 +13,52 @@ from ost.seq import alg import ost from ost.gui.scene.query_editor import QueryEditorWidget,QueryDialog -class SelectRefDialog(QtGui.QDialog): +class SelectRefDialog(QtWidgets.QDialog): def __init__(self, ent_list, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.ent_list_ = ent_list - vb = QtGui.QVBoxLayout() + vb = QtWidgets.QVBoxLayout() self.setLayout(vb) self.setWindowTitle("Select Reference Object") - self.label = QtGui.QLabel("Please Select the Reference Object") - self.list = QtGui.QTableWidget(self) + self.label = QtWidgets.QLabel("Please Select the Reference Object") + self.list = QtWidgets.QTableWidget(self) self.list.horizontalHeader().setStretchLastSection(True) self.list.setColumnCount(2) self.list.verticalHeader().setVisible(False) self.list.horizontalHeader().setVisible(False) - self.list.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) - self.list.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) + self.list.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) + self.list.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) vb.addWidget(self.label) vb.addWidget(self.list) - self.show_scores = QtGui.QCheckBox(self) + self.show_scores = QtWidgets.QCheckBox(self) self.show_scores.setText("Show Scores") self.show_scores.setChecked(True) vb.addWidget(self.show_scores) - self.show_alignment = QtGui.QCheckBox(self) + self.show_alignment = QtWidgets.QCheckBox(self) self.show_alignment.setText("Display Alignment") self.show_alignment.setChecked(False) vb.addWidget(self.show_alignment) - hb = QtGui.QHBoxLayout() - hb.setDirection(QtGui.QBoxLayout.LeftToRight) - cancel_btn = QtGui.QPushButton("Cancel", self) - load_btn = QtGui.QPushButton("Select", self) + hb = QtWidgets.QHBoxLayout() + hb.setDirection(QtWidgets.QBoxLayout.LeftToRight) + cancel_btn = QtWidgets.QPushButton("Cancel", self) + load_btn = QtWidgets.QPushButton("Select", self) hb.addStretch(1) hb.addWidget(cancel_btn) hb.addWidget(load_btn) vb.addItem(hb) load_btn.setDefault(True) - QtCore.QObject.connect(load_btn, QtCore.SIGNAL("clicked()"), self.Select) - QtCore.QObject.connect(cancel_btn, QtCore.SIGNAL("clicked()"), self.reject) + load_btn.clicked.connect(self.Select) + cancel_btn.clicked.connect(self.reject) row = 0 for ent in self.ent_list_: variant = QtCore.QVariant(ent) self.list.insertRow(row) - new_item = QtGui.QTableWidgetItem("%i"%(row+1)) + new_item = QtWidgets.QTableWidgetItem("%i"%(row+1)) new_item.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled) new_item.setData(QtCore.Qt.UserRole,variant) self.list.setItem(row, 0, new_item) - new_item = QtGui.QTableWidgetItem(ent.GetName()) + new_item = QtWidgets.QTableWidgetItem(ent.GetName()) new_item.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled) self.list.setItem(row, 1, new_item) row += 1 @@ -83,103 +83,103 @@ class SelectRefDialog(QtGui.QDialog): def GetEntities(self): return self.ent_list_ -class ShowResultDialog(QtGui.QDialog): +class ShowResultDialog(QtWidgets.QDialog): def __init__(self, ent_list, res_list, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.ent_list_ = ent_list - vb = QtGui.QVBoxLayout() + vb = QtWidgets.QVBoxLayout() self.setLayout(vb) self.setWindowTitle("Alignment result") - self.label = QtGui.QLabel("Alignment results with %s as reference"%ent_list[0].GetName()) - self.list = QtGui.QTableWidget(self) + self.label = QtWidgets.QLabel("Alignment results with %s as reference"%ent_list[0].GetName()) + self.list = QtWidgets.QTableWidget(self) self.list.horizontalHeader().setStretchLastSection(True) self.list.setColumnCount(4) self.list.verticalHeader().setVisible(False) self.list.setHorizontalHeaderLabels (["Name","RMSD","TMScore",""]) - self.list.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) + self.list.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) vb.addWidget(self.label) vb.addWidget(self.list) - hb = QtGui.QHBoxLayout() - hb.setDirection(QtGui.QBoxLayout.LeftToRight) - ok_btn = QtGui.QPushButton("OK", self) + hb = QtWidgets.QHBoxLayout() + hb.setDirection(QtWidgets.QBoxLayout.LeftToRight) + ok_btn = QtWidgets.QPushButton("OK", self) hb.addStretch(1) hb.addWidget(ok_btn) vb.addItem(hb) ok_btn.setDefault(True) - QtCore.QObject.connect(ok_btn, QtCore.SIGNAL("clicked()"), self.accept) + ok_btn.clicked.connect(self.accept) for i in range(0, len(res_list)): self.list.insertRow(i) - new_item = QtGui.QTableWidgetItem(ent_list[i+1].GetName()) + new_item = QtWidgets.QTableWidgetItem(ent_list[i+1].GetName()) new_item.setFlags(QtCore.Qt.ItemIsEnabled) self.list.setItem(i, 0, new_item) - new_item = QtGui.QTableWidgetItem("%.2f"%res_list[i].rmsd) + new_item = QtWidgets.QTableWidgetItem("%.2f"%res_list[i].rmsd) new_item.setFlags(QtCore.Qt.ItemIsEnabled) self.list.setItem(i, 1, new_item) - new_item = QtGui.QTableWidgetItem("%i"%res_list[i].tm_score) + new_item = QtWidgets.QTableWidgetItem("%i"%res_list[i].tm_score) new_item.setFlags(QtCore.Qt.ItemIsEnabled) self.list.setItem(i, 2, new_item) - new_item = QtGui.QTableWidgetItem() + new_item = QtWidgets.QTableWidgetItem() new_item.setFlags(QtCore.Qt.ItemIsEnabled) self.list.setItem(i, 3, new_item) self.list.resizeColumnsToContents() -class CalculateSurfaceSettingsDialog(QtGui.QDialog): +class CalculateSurfaceSettingsDialog(QtWidgets.QDialog): def __init__(self, executable, parent=None): - QtGui.QDialog.__init__(self, parent) - vb = QtGui.QGridLayout() + QtWidgets.QDialog.__init__(self, parent) + vb = QtWidgets.QGridLayout() self.setLayout(vb) self.setWindowTitle("MSMS Surface Settings") - msmsexe_label=QtGui.QLabel("executable") - self.msmsexe_field=QtGui.QLineEdit() + msmsexe_label=QtWidgets.QLabel("executable") + self.msmsexe_field=QtWidgets.QLineEdit() self.msmsexe_field.setText(executable) - msmsexe_browsebutton=QtGui.QPushButton("Browse") + msmsexe_browsebutton=QtWidgets.QPushButton("Browse") vb.addWidget(msmsexe_label, 0, 0) vb.addWidget(self.msmsexe_field, 0, 1) vb.addWidget(msmsexe_browsebutton, 0, 2) - surfname_label=QtGui.QLabel("surface name") - self.surfname_field=QtGui.QLineEdit() + surfname_label=QtWidgets.QLabel("surface name") + self.surfname_field=QtWidgets.QLineEdit() self.surfname_field.setText("surface") vb.addWidget(surfname_label, 1, 0) vb.addWidget(self.surfname_field, 1, 1, 1, 2) - density_label=QtGui.QLabel("density") - self.density_spinbox=QtGui.QSpinBox() + density_label=QtWidgets.QLabel("density") + self.density_spinbox=QtWidgets.QSpinBox() self.density_spinbox.setRange(1, 10) self.density_spinbox.setValue(4) vb.addWidget(density_label, 2, 0) vb.addWidget(self.density_spinbox, 2, 1, 1, 2) - probe_label=QtGui.QLabel("probe radius") - self.probe_spinbox=QtGui.QDoubleSpinBox() + probe_label=QtWidgets.QLabel("probe radius") + self.probe_spinbox=QtWidgets.QDoubleSpinBox() self.probe_spinbox.setDecimals(1) self.probe_spinbox.setSingleStep(0.1) self.probe_spinbox.setRange(0.3, 5.0) self.probe_spinbox.setValue(1.4) vb.addWidget(probe_label, 3, 0) vb.addWidget(self.probe_spinbox, 3, 1, 1, 2) - selection_label=QtGui.QLabel("selection") - self.selection_field=QtGui.QLineEdit() + selection_label=QtWidgets.QLabel("selection") + self.selection_field=QtWidgets.QLineEdit() self.selection_field.setText("") vb.addWidget(selection_label, 4, 0) vb.addWidget(self.selection_field, 4, 1, 1, 2) - self.noh_box=QtGui.QCheckBox("no hydrogens") + self.noh_box=QtWidgets.QCheckBox("no hydrogens") vb.addWidget(self.noh_box, 5, 0) - self.nohet_box=QtGui.QCheckBox("no hetatoms") + self.nohet_box=QtWidgets.QCheckBox("no hetatoms") vb.addWidget(self.nohet_box, 5, 1) - self.nowat_box=QtGui.QCheckBox("no waters") + self.nowat_box=QtWidgets.QCheckBox("no waters") vb.addWidget(self.nowat_box, 5, 2) - cancel_btn = QtGui.QPushButton("Cancel", self) - ok_btn = QtGui.QPushButton("OK", self) + cancel_btn = QtWidgets.QPushButton("Cancel", self) + ok_btn = QtWidgets.QPushButton("OK", self) vb.addWidget(cancel_btn, 6, 1) vb.addWidget(ok_btn, 6, 2) - QtCore.QObject.connect(msmsexe_browsebutton, QtCore.SIGNAL("clicked()"), self.GetPath) - QtCore.QObject.connect(ok_btn, QtCore.SIGNAL("clicked()"), self.accept) - QtCore.QObject.connect(cancel_btn, QtCore.SIGNAL("clicked()"), self.reject) + msmsexe_browsebutton.clicked.connect(self.GetPath) + ok_btn.clicked.connect(self.accept) + cancel_btn.clicked.connect(self.reject) def GetPath(self): - path=QtGui.QFileDialog().getOpenFileName(self, "Choose MSMS Executable") + path=QtWidgets.QFileDialog().getOpenFileName(self, "Choose MSMS Executable") if path!='': self.msmsexe_field.setText(path) @@ -191,9 +191,8 @@ class SurfaceContextMenu(QtCore.QObject): except settings.FileNotFound: self.executable="" QtCore.QObject.__init__(self, context_menu.qobject) - self.action = QtGui.QAction("Calculate Surface", self) - QtCore.QObject.connect(self.action, QtCore.SIGNAL("triggered()"), - self.CalculateSurface) + self.action = QtWidgets.QAction("Calculate Surface", self) + self.action.triggered.connect(self.CalculateSurface) context_menu.AddAction(self.action, gui.ContextActionType.ENTITY) def CalculateSurface(self): @@ -251,8 +250,8 @@ class AlignmentContextMenu(QtCore.QObject): settings.Locate(settings_name) QtCore.QObject.__init__(self, context_menu.qobject) - self.action = QtGui.QAction("Align", self) - QtCore.QObject.connect(self.action,QtCore.SIGNAL("triggered()"), self.Align) + self.action = QtWidgets.QAction("Align", self) + self.action.triggered.connect(self.Align) context_menu.AddAction(self.action, gui.ContextActionType.ENTITY | gui.ContextActionType.MULTI) self.seq_viewer = None except settings.FileNotFound: @@ -311,17 +310,14 @@ class AlignmentContextMenu(QtCore.QObject): class SelectMenuPoints(QtCore.QObject): def __init__(self, context_menu): QtCore.QObject.__init__(self, context_menu.qobject) - action=QtGui.QAction("Select...", self) - QtCore.QObject.connect(action, QtCore.SIGNAL('triggered()'), - self._Select) + action=QtWidgets.QAction("Select...", self) + action.triggered.connect(self._Select) context_menu.AddAction(action, gui.ENTITY) - action=QtGui.QAction("Copy Selection...", self) - QtCore.QObject.connect(action, QtCore.SIGNAL('triggered()'), - self._CopyViews) + action=QtWidgets.QAction("Copy Selection...", self) + action.triggered.connect(self._CopyViews) context_menu.AddAction(action, gui.ENTITY) - action=QtGui.QAction('Select...', self) - QtCore.QObject.connect(action, QtCore.SIGNAL('triggered()'), - self._SelectViewsSameEntity) + action=QtWidgets.QAction('Select...', self) + action.triggered.connect(self._SelectViewsSameEntity) context_menu.AddAction(action, gui.ENTITY_VIEW|gui.VIEWS_SAME_OBJECT) def _Select(self): scene_selection=gui.SceneSelection.Instance() diff --git a/modules/gui/pymod/init_menubar.py b/modules/gui/pymod/init_menubar.py index 761e483bb..03930fc53 100644 --- a/modules/gui/pymod/init_menubar.py +++ b/modules/gui/pymod/init_menubar.py @@ -23,7 +23,7 @@ import sip from ost import gfx import ost -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtGui from ost.gui import FileLoader from ost.gui.init_splash import _InitSplash from ost.gui.dng import termuse diff --git a/modules/gui/pymod/init_spacenav.py b/modules/gui/pymod/init_spacenav.py index f94b569f9..86154534b 100644 --- a/modules/gui/pymod/init_spacenav.py +++ b/modules/gui/pymod/init_spacenav.py @@ -1,6 +1,6 @@ import math,traceback -from PyQt4 import QtCore +from PyQt5 import QtCore import ost from ost import gfx, gui diff --git a/modules/gui/pymod/init_splash.py b/modules/gui/pymod/init_splash.py index ec5e3667c..de8f10c47 100644 --- a/modules/gui/pymod/init_splash.py +++ b/modules/gui/pymod/init_splash.py @@ -1,4 +1,4 @@ -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtGui, QtWidgets import os import ost @@ -15,16 +15,16 @@ Feel free visit our website at:<br /> <a href='http://www.openstructure.org'>http://www.openstructure.org</a> """ % ost.VERSION -class SplashDialog(QtGui.QDialog): +class SplashDialog(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) - layout = QtGui.QHBoxLayout(self) + QtWidgets.QDialog.__init__(self, parent) + layout = QtWidgets.QHBoxLayout(self) self.setLayout(layout) - imageLabel = QtGui.QLabel(); + imageLabel = QtWidgets.QLabel(); self.pix_map = QtGui.QPixmap(LOGO_PATH); imageLabel.setPixmap(self.pix_map); layout.addWidget(imageLabel) - self.label = QtGui.QTextBrowser() + self.label = QtWidgets.QTextBrowser() self.label.setReadOnly(True) self.label.setOpenExternalLinks(True) self.label.setHtml(SPLASH_TEXT) diff --git a/modules/gui/pymod/scene/color_options_widget.py b/modules/gui/pymod/scene/color_options_widget.py index 1d8e95cf6..c99eb41e2 100644 --- a/modules/gui/pymod/scene/color_options_widget.py +++ b/modules/gui/pymod/scene/color_options_widget.py @@ -29,7 +29,7 @@ except ImportError: _img_present=False pass -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtWidgets from scene_selection_helper import SelHelper from gradient_editor_widget import GradientEditor from uniform_color_widget import UniformColorWidget @@ -41,8 +41,8 @@ class ColorOptionsWidget(ComboOptionsWidget): #Title self.text_ = "Color Options" - conly_label_ = QtGui.QLabel('carbons only') - self.conly_box_ = QtGui.QCheckBox() + conly_label_ = QtWidgets.QLabel('carbons only') + self.conly_box_ = QtWidgets.QCheckBox() #Add options to menu self.entity_widgets_ = list() @@ -55,8 +55,8 @@ class ColorOptionsWidget(ComboOptionsWidget): self.img_widgets_ = list() self.img_widgets_.append(["Uniform",UniformColorWidget()]) - qw = QtGui.QWidget(self) - gl = QtGui.QGridLayout(qw) + qw = QtWidgets.QWidget(self) + gl = QtWidgets.QGridLayout(qw) gl.addWidget(self.conly_box_, 0, 0, 1, 1) gl.addWidget(conly_label_, 0, 1, 1, 4) self.grid_layout_.addWidget(qw, 2, 0, 1, 1) @@ -112,9 +112,9 @@ class ColorOptionsWidget(ComboOptionsWidget): return self.conly_box_.isChecked() -class ByElementWidget(QtGui.QWidget): +class ByElementWidget(QtWidgets.QWidget): def __init__(self, text, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.parent_ = parent @@ -122,13 +122,13 @@ class ByElementWidget(QtGui.QWidget): self.text_ = text #UI - text_label = QtGui.QLabel(text) + text_label = QtWidgets.QLabel(text) font = text_label.font() font.setBold(True) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(text_label,0,0,1,1) - grid.addWidget(QtGui.QLabel("No Settings available"), 1, 0, 1, 3) + grid.addWidget(QtWidgets.QLabel("No Settings available"), 1, 0, 1, 3) grid.setRowStretch(2,1) self.setLayout(grid) self.setMinimumSize(250,60) @@ -156,20 +156,20 @@ class ByElementWidget(QtGui.QWidget): return self.text_ -class ByChainWidget(QtGui.QWidget): +class ByChainWidget(QtWidgets.QWidget): def __init__(self, text, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.parent_ = parent #Title self.text_ = text #UI - text_label = QtGui.QLabel(text) + text_label = QtWidgets.QLabel(text) font = text_label.font() font.setBold(True) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(text_label,0,0,1,1) grid.setRowStretch(2,1) self.setLayout(grid) @@ -197,20 +197,20 @@ class ByChainWidget(QtGui.QWidget): def GetText(self): return self.text_ -class ByEntityWidget(QtGui.QWidget): +class ByEntityWidget(QtWidgets.QWidget): def __init__(self, text, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.parent_ = parent #Title self.text_ = text #UI - text_label = QtGui.QLabel(text) + text_label = QtWidgets.QLabel(text) font = text_label.font() font.setBold(True) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(text_label,0,0,1,1) grid.setRowStretch(2,1) self.setLayout(grid) diff --git a/modules/gui/pymod/scene/color_select_widget.py b/modules/gui/pymod/scene/color_select_widget.py index 110108e63..e7847bb62 100644 --- a/modules/gui/pymod/scene/color_select_widget.py +++ b/modules/gui/pymod/scene/color_select_widget.py @@ -20,28 +20,31 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui #Gradient Stop -class ColorSelectWidget(QtGui.QWidget): +class ColorSelectWidget(QtWidgets.QWidget): + + colorChanged = QtCore.pyqtSignal() + def __init__(self, width, height, color, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Membervars self.width_ = width self.height_ = height if(color is None): - self.color_ = QtGui.QColor("White") + self.color_ = QtWidgets.QColor("White") else: self.color_ = color self.show() #ContextMenu - self.change_color_ = QtGui.QAction('ChangeColor', self) + self.change_color_ = QtWidgets.QAction('ChangeColor', self) - QtCore.QObject.connect(self.change_color_, QtCore.SIGNAL('triggered()'), self.ChangeColor) + self.change_color_.triggered.connect(self.ChangeColor) self.addAction(self.change_color_) self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) @@ -49,11 +52,12 @@ class ColorSelectWidget(QtGui.QWidget): self.Resize() def ChangeColor(self): - color = QtGui.QColorDialog.getColor(self.color_, self) + color = QtWidgets.QColorDialog.getColor(initial = self.color_, parent = self, + title = "asdf") if(color != self.color_ and color.isValid()): self.color_ = color - self.emit(QtCore.SIGNAL("colorChanged")) + self.colorChanged.emit() self.update() def GetColor(self): @@ -66,11 +70,11 @@ class ColorSelectWidget(QtGui.QWidget): def SetColor(self, color): if(self.color_ != color): self.color_ = color - self.emit(QtCore.SIGNAL("colorChanged")) + self.colorChanged.emit() self.update() def SetGfxColor(self, color): - qcolor= QtGui.QColor(color.Red()*255,color.Green()*255,color.Blue()*255,color.Alpha()*255) + qcolor= QtWidgets.QColor(color.Red()*255,color.Green()*255,color.Blue()*255,color.Alpha()*255) self.SetColor(qcolor) def paintEvent(self, event): diff --git a/modules/gui/pymod/scene/combo_options_widget.py b/modules/gui/pymod/scene/combo_options_widget.py index 8961c04a2..28bacce3f 100644 --- a/modules/gui/pymod/scene/combo_options_widget.py +++ b/modules/gui/pymod/scene/combo_options_widget.py @@ -21,9 +21,9 @@ import sys from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets -class ComboOptionsWidget(QtGui.QWidget): +class ComboOptionsWidget(QtWidgets.QWidget): """QWidget with a Combobox and a show area. This abstract QWidget has a Combobox and a show area. Whenever the value of @@ -31,22 +31,21 @@ class ComboOptionsWidget(QtGui.QWidget): shown in the show area. """ def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Setup ui_ self.parent_ = parent - self.grid_layout_ = QtGui.QGridLayout(self) + self.grid_layout_ = QtWidgets.QGridLayout(self) self.grid_layout_.setHorizontalSpacing(0) self.grid_layout_.setVerticalSpacing(0) self.grid_layout_.setContentsMargins(0,0,0,0) - self.combo_box_ = QtGui.QComboBox(self) + self.combo_box_ = QtWidgets.QComboBox(self) self.grid_layout_.addWidget(self.combo_box_, 0, 0, 1, 1) - self.stacked_widget_ = QtGui.QStackedWidget(self) + self.stacked_widget_ = QtWidgets.QStackedWidget(self) self.grid_layout_.addWidget(self.stacked_widget_, 1, 0, 1, 1) self.__UpdateView(self.combo_box_.currentIndex()) - QtCore.QObject.connect(self.combo_box_, QtCore.SIGNAL("activated(int)"), - self.__UpdateView) + self.combo_box_.activated.connect(self.__UpdateView) self.setEnabled(False) @@ -66,11 +65,11 @@ class ComboOptionsWidget(QtGui.QWidget): the old widget will be removed and the new widget gets the identifier. Returns True, if widget is added. Otherwise it returns False """ - if isinstance(widget, QtGui.QWidget) and ident is not None: + if isinstance(widget, QtWidgets.QWidget) and ident is not None: if hasattr(widget, "GetText"): - string = QtCore.QString(widget.GetText()) + string = widget.GetText() else: - string = QtCore.QString(ident) + string = ident self.RemoveWidget(ident) self.stacked_widget_.addWidget(widget) @@ -82,7 +81,7 @@ class ComboOptionsWidget(QtGui.QWidget): def RemoveWidget(self,ident): index = self.__GetIndex(ident) if(index >= 0): - self.stacked_widget_.removeWidget(self.combo_box_.itemData(index).toPyObject()[1]) + self.stacked_widget_.removeWidget(self.combo_box_.itemData(index)[1]) self.combo_box_.removeItem(index) def OnComboChange(self, item): @@ -137,18 +136,18 @@ class ComboOptionsWidget(QtGui.QWidget): def __GetIndex(self, ident): for i in range(self.combo_box_.count()): - pair = self.combo_box_.itemData(i).toPyObject() + pair = self.combo_box_.itemData(i) if ident == pair[0]: return i return -1 def __GetCurrentPair(self): current_index = self.combo_box_.currentIndex() - return self.combo_box_.itemData(current_index).toPyObject() + return self.combo_box_.itemData(current_index) #Overwritten Methods def setEnabled(self, bool): - QtGui.QWidget.setEnabled(self, bool) + QtWidgets.QWidget.setEnabled(self, bool) for i in range(self.combo_box_.count()): - pair = self.combo_box_.itemData(i).toPyObject() + pair = self.combo_box_.itemData(i) pair[1].setEnabled(bool) diff --git a/modules/gui/pymod/scene/cpk_widget.py b/modules/gui/pymod/scene/cpk_widget.py index 038476597..c40819abe 100644 --- a/modules/gui/pymod/scene/cpk_widget.py +++ b/modules/gui/pymod/scene/cpk_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #CPK Render Options @@ -40,26 +40,26 @@ class CPKWidget(RenderModeWidget): #Create Ui elements - self.sphere_spinbox_ = QtGui.QSpinBox() + self.sphere_spinbox_ = QtWidgets.QSpinBox() self.sphere_spinbox_.setRange(min_sphere_detail, max_sphere_detail) - cpk_mode_label = QtGui.QLabel("Rendering Mode") - self.cpk_mode_ = QtGui.QComboBox() + cpk_mode_label = QtWidgets.QLabel("Rendering Mode") + self.cpk_mode_ = QtWidgets.QComboBox() self.cpk_mode_.addItem("Triangles") self.cpk_mode_.addItem("3D Sprites") - cpk_label = QtGui.QLabel(self.text_) + cpk_label = QtWidgets.QLabel(self.text_) font = cpk_label.font() font.setBold(True) - sphere_label = QtGui.QLabel("Sphere Detail") - grid = QtGui.QGridLayout() + sphere_label = QtWidgets.QLabel("Sphere Detail") + grid = QtWidgets.QGridLayout() grid.addWidget(cpk_label,0,0,1,1) grid.addWidget(sphere_label, 1, 0, 1, 3) grid.addWidget(self.sphere_spinbox_, 1, 2, 1, 1) grid.setRowStretch(2,1) self.setLayout(grid) - QtCore.QObject.connect(self.sphere_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSphereDetail) - QtCore.QObject.connect(self.cpk_mode_, QtCore.SIGNAL("currentIndexChanged(int)"), self.UpdateSphereMode) + self.sphere_spinbox_.valueChanged.connect(self.UpdateSphereDetail) + self.cpk_mode_.currentIndexChanged.connect(self.UpdateSphereMode) self.setMinimumSize(250,60) diff --git a/modules/gui/pymod/scene/custom_widget.py b/modules/gui/pymod/scene/custom_widget.py index a0413862d..e94eabd2d 100644 --- a/modules/gui/pymod/scene/custom_widget.py +++ b/modules/gui/pymod/scene/custom_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Custom Render Options @@ -49,46 +49,46 @@ class CustomWidget(RenderModeWidget): #Create Ui elements - self.sphere_spinbox_ = QtGui.QSpinBox() + self.sphere_spinbox_ = QtWidgets.QSpinBox() self.sphere_spinbox_.setRange(min_sphere_detail, max_sphere_detail) - self.arc_spinbox_ = QtGui.QSpinBox() + self.arc_spinbox_ = QtWidgets.QSpinBox() self.arc_spinbox_.setRange(min_arc_detail, max_arc_detail) #Bond Radius - radius_bond_label = QtGui.QLabel("Bond Radius") + radius_bond_label = QtWidgets.QLabel("Bond Radius") - self.radius_bond_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_bond_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_bond_spinbox_.setRange(min_rad, max_bond_rad) self.radius_bond_spinbox_.setDecimals(2) self.radius_bond_spinbox_.setSingleStep(0.05) - self.radius_bond_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.radius_bond_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.radius_bond_slider_.setRange(min_rad*100.0, max_bond_rad*100.0) - self.radius_bond_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.radius_bond_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.radius_bond_slider_.setTickInterval(5) #Sphere Radius - radius_sphere_label = QtGui.QLabel("Sphere Radius") + radius_sphere_label = QtWidgets.QLabel("Sphere Radius") - self.radius_sphere_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_sphere_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_sphere_spinbox_.setRange(min_rad, max_sphere_rad) self.radius_sphere_spinbox_.setDecimals(2) self.radius_sphere_spinbox_.setSingleStep(0.05) - self.radius_sphere_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.radius_sphere_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.radius_sphere_slider_.setRange(min_rad*100.0, max_sphere_rad*100.0) - self.radius_sphere_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.radius_sphere_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.radius_sphere_slider_.setTickInterval(5) - custom_label = QtGui.QLabel(self.text_) + custom_label = QtWidgets.QLabel(self.text_) font = custom_label.font() font.setBold(True) - sphere_label = QtGui.QLabel("Sphere Detail") - arc_label = QtGui.QLabel("Arc Detail") - grid = QtGui.QGridLayout() + sphere_label = QtWidgets.QLabel("Sphere Detail") + arc_label = QtWidgets.QLabel("Arc Detail") + grid = QtWidgets.QGridLayout() grid.addWidget(custom_label,0,0,1,1) grid.addWidget(sphere_label, 1, 0, 1, 3) grid.addWidget(self.sphere_spinbox_, 1, 2, 1, 1) @@ -106,22 +106,14 @@ class CustomWidget(RenderModeWidget): grid.setRowStretch(3,1) self.setLayout(grid) - QtCore.QObject.connect(self.sphere_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSphereDetail) - QtCore.QObject.connect(self.arc_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateArcDetail) - - QtCore.QObject.connect(self.radius_bond_spinbox_, - QtCore.SIGNAL("valueChanged(double)"), - self.UpdateBondRadius) - QtCore.QObject.connect(self.radius_bond_slider_, - QtCore.SIGNAL("valueChanged(int)"), - self.UpdateSliderBondRadius) - - QtCore.QObject.connect(self.radius_sphere_spinbox_, - QtCore.SIGNAL("valueChanged(double)"), - self.UpdateSphereRadius) - QtCore.QObject.connect(self.radius_sphere_slider_, - QtCore.SIGNAL("valueChanged(int)"), - self.UpdateSliderSphereRadius) + self.sphere_spinbox_.valueChanged.connect(self.UpdateSphereDetail) + self.arc_spinbox_.valueChanged.connect(self.UpdateArcDetail) + + self.radius_bond_spinbox_.valueChanged.connect(self.UpdateBondRadius) + self.radius_bond_slider_.valueChanged.connect(self.UpdateSliderBondRadius) + + self.radius_sphere_spinbox_.valueChanged.connect(self.UpdateSphereRadius) + self.radius_sphere_slider_.valueChanged.connect(self.UpdateSliderSphereRadius) self.setMinimumSize(250,150) diff --git a/modules/gui/pymod/scene/file_loader.py b/modules/gui/pymod/scene/file_loader.py index a0acf4140..fedca4543 100644 --- a/modules/gui/pymod/scene/file_loader.py +++ b/modules/gui/pymod/scene/file_loader.py @@ -23,7 +23,7 @@ import ost import sip import re -from PyQt4 import QtCore, QtGui, QtNetwork +from PyQt5 import QtCore, QtGui, QtNetwork from ost.gui import FileLoader """ diff --git a/modules/gui/pymod/scene/gradient_editor_widget.py b/modules/gui/pymod/scene/gradient_editor_widget.py index d4b93071b..370bd51cd 100644 --- a/modules/gui/pymod/scene/gradient_editor_widget.py +++ b/modules/gui/pymod/scene/gradient_editor_widget.py @@ -21,22 +21,22 @@ from ost import gui from ost import gfx from ost import mol -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtGui, QtWidgets from color_select_widget import ColorSelectWidget from gradient_preset_widget import GradientPresetWidget #Gradient Editor -class GradientEditor(QtGui.QWidget): +class GradientEditor(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.parent_ = parent #Create Ui elements - gradient_label = QtGui.QLabel("Gradient Editor") + gradient_label = QtWidgets.QLabel("Gradient Editor") font = gradient_label.font() font.setBold(True) - self.prop_combo_box_ = QtGui.QComboBox() + self.prop_combo_box_ = QtWidgets.QComboBox() self.gradient_preview_ = GradientPreview() self.gradient_edit_ = GradientEdit(self.gradient_preview_,self) self.gradient_preset_ = GradientPresetWidget(self.gradient_edit_) @@ -51,7 +51,7 @@ class GradientEditor(QtGui.QWidget): self.props=["abfac","rbfac","x","y","z","rnum","acharge"] - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(gradient_label, 0, 0, 1, 1) grid.addWidget(self.prop_combo_box_, 1, 0, 1, 1) @@ -61,9 +61,9 @@ class GradientEditor(QtGui.QWidget): grid.addWidget(self.gradient_preset_, 5, 0, 1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.prop_combo_box_, QtCore.SIGNAL("currentIndexChanged(int)"), self.Update) - QtCore.QObject.connect(self.gradient_edit_, QtCore.SIGNAL("gradientUpdated"), self.Update) - QtCore.QObject.connect(self.gradient_preset_, QtCore.SIGNAL("gradientSelected"), self.gradient_edit_.LoadGradient) + self.prop_combo_box_.currentIndexChanged.connect(self.Update) + self.gradient_edit_.gradientUpdated.connect(self.Update) + self.gradient_preset_.gradientSelected.connect(self.gradient_edit_.LoadGradient) self.setMinimumSize(250,300) @@ -97,14 +97,14 @@ class GradientEditor(QtGui.QWidget): entity.Apply(glco) #Gradient Preview -class GradientPreview(QtGui.QWidget): +class GradientPreview(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Defaults self.border_offset_ = 3 self.preview_height_ = 25 - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.gradient_ = QtGui.QLinearGradient() @@ -129,9 +129,12 @@ class GradientPreview(QtGui.QWidget): paint.end() #Gradient Edit -class GradientEdit(QtGui.QWidget): +class GradientEdit(QtWidgets.QWidget): + + gradientUpdated = QtCore.pyqtSignal() + def __init__(self, gradient_preview, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Defaults self.gradient_preview_ = gradient_preview @@ -143,8 +146,8 @@ class GradientEdit(QtGui.QWidget): #ContextMenu - self.add_ = QtGui.QAction("Add", self) - QtCore.QObject.connect(self.add_, QtCore.SIGNAL("triggered()"), self.Add) + self.add_ = QtWidgets.QAction("Add", self) + self.add_.triggered.connect(self.Add) self.addAction(self.add_) self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) @@ -165,33 +168,34 @@ class GradientEdit(QtGui.QWidget): self.width_ = self.width() def RemoveStop(self, stop): - self.stops.remove(stop) - stop.hide() - del(stop) + self.stops.remove(stop) + stop.hide() + del(stop) - self.UpdateGradient() - self.emit(QtCore.SIGNAL("gradientUpdated"),(self)) + self.UpdateGradient() + self.gradientUpdated.emit() def RemoveStopGui(self, stop): if(len(self.stops)>2): self.RemoveStop(stop) else: - QtGui.QMessageBox.question(self, "Information", "Please keep in mind, at least two stops are needed for a gradient!") + QtWidgets.QMessageBox.question(self, "Information", "Please keep in mind, at least two stops are needed for a gradient!") def AddStop(self, pos, color=None): stop = MyGradientStop(pos, self.border_offset_, self, color) - QtCore.QObject.connect(stop, QtCore.SIGNAL("gradientChanged"), self.UpdateGradient) - QtCore.QObject.connect(stop, QtCore.SIGNAL("colorChanged"), self.UpdateGradient) - QtCore.QObject.connect(stop, QtCore.SIGNAL("colorChanged"), self.parent().Update) - QtCore.QObject.connect(stop, QtCore.SIGNAL("gradientUpdated"), self.parent().Update) - QtCore.QObject.connect(stop, QtCore.SIGNAL("removeStop"), self.RemoveStopGui) + stop.gradientChanged.connect(self.UpdateGradient) + stop.colorChanged.connect(self.UpdateGradient) + stop.colorChanged.connect(self.parent().Update) + stop.gradientUpdated.connect(self.parent().Update) + stop.removeStop.connect(self.RemoveStopGui) + stop.MoveToNewPos() self.stops.append(stop) - self.UpdateGradient() - self.emit(QtCore.SIGNAL("gradientUpdated"),(self)) + self.UpdateGradient() + self.gradientUpdated.emit() def Add(self): - self.AddStop(QtGui.QCursor.pos().x() - self.mapToGlobal(QtCore.QPoint(0, 0)).x()) + self.AddStop(QtWidgets.QCursor.pos().x() - self.mapToGlobal(QtCore.QPoint(0, 0)).x()) def UpdateGradient(self): self.gradient_preview_.SetGradient(self.GetGradient()) @@ -235,6 +239,11 @@ class GradientEdit(QtGui.QWidget): #Gradient Stop class MyGradientStop(ColorSelectWidget): + + removeStop = QtCore.pyqtSignal() + gradientChanged = QtCore.pyqtSignal() + gradientUpdated = QtCore.pyqtSignal() + def __init__(self, pos, offset, parent, color=None): #Defaults self.length_ = 20 @@ -245,8 +254,6 @@ class MyGradientStop(ColorSelectWidget): ColorSelectWidget.__init__(self, self.length_,self.length_, color, parent) - self.MoveToNewPos() - if(color is None): self.color_ = QtGui.QColor("White") self.ChangeColor() @@ -254,12 +261,12 @@ class MyGradientStop(ColorSelectWidget): self.color_ = color #ContextMenu - self.remove_ = QtGui.QAction("Remove", self) - QtCore.QObject.connect(self.remove_, QtCore.SIGNAL("triggered()"), self.Remove) + self.remove_ = QtWidgets.QAction("Remove", self) + self.remove_.triggered.connect(self.Remove) self.addAction(self.remove_) def Remove(self): - self.emit(QtCore.SIGNAL("removeStop"),(self)) + self.removeStop.emit() def GetPos(self): return self.pos_ @@ -279,7 +286,7 @@ class MyGradientStop(ColorSelectWidget): def MoveToNewPos(self): self.move(self.pos_ - self.halflength_, 0) self.update() - self.emit(QtCore.SIGNAL("gradientChanged")) + self.gradientChanged.emit() def mouseMoveEvent(self, event): self.pos_ += event.pos().x() - self.halflength_ @@ -294,4 +301,4 @@ class MyGradientStop(ColorSelectWidget): def mouseReleaseEvent(self, entity): if entity.button() == QtCore.Qt.LeftButton: - self.emit(QtCore.SIGNAL("gradientUpdated")) + self.gradientUpdated.emit() diff --git a/modules/gui/pymod/scene/gradient_info_handler.py b/modules/gui/pymod/scene/gradient_info_handler.py index 951dcd668..747b05860 100644 --- a/modules/gui/pymod/scene/gradient_info_handler.py +++ b/modules/gui/pymod/scene/gradient_info_handler.py @@ -21,7 +21,7 @@ from ost import gui from ost import gfx from ost import info -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore from immutable_gradient_info_handler import ImmutableGradientInfoHandler #Gradient Info Handler @@ -57,4 +57,4 @@ class GradientInfoHandler(ImmutableGradientInfoHandler): groupname = group.GetAttribute(self.NAME_ATTRIBUTE_NAME) if old == groupname: group.SetAttribute(self.NAME_ATTRIBUTE_NAME, new) - self.handle_.Export(self.FILE_NAME) \ No newline at end of file + self.handle_.Export(self.FILE_NAME) diff --git a/modules/gui/pymod/scene/gradient_list_model.py b/modules/gui/pymod/scene/gradient_list_model.py index 8e859f4d7..43f3f95db 100644 --- a/modules/gui/pymod/scene/gradient_list_model.py +++ b/modules/gui/pymod/scene/gradient_list_model.py @@ -2,7 +2,7 @@ from ost import gui from ost import gfx import os import ost -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui from immutable_gradient_info_handler import ImmutableGradientInfoHandler from gradient_info_handler import GradientInfoHandler @@ -11,6 +11,8 @@ class GradientListModel(QtCore.QAbstractListModel): IMMUTABLE_GRADIENTS_PATH = os.path.join(ost.GetSharedDataPath(),"scene", "gradients.xml") MUTABLE_GRADIENTS_PATH = "user_gradients.xml" + + dataChanged = QtCore.pyqtSignal(int, int, name="dataChanged") def __init__(self, parent=None, *args): QtCore.QAbstractListModel.__init__(self, parent, *args) @@ -32,7 +34,7 @@ class GradientListModel(QtCore.QAbstractListModel): end_index = self.createIndex(self.rowCount(),0) if save: self.AddGradientToInfo(gradient,name) - self.emit(QtCore.SIGNAL("dataChanged"),model_index, end_index) + self.dataChanged.emit(model_index, end_index) return True return False @@ -45,7 +47,7 @@ class GradientListModel(QtCore.QAbstractListModel): self.removeRow(row, QtCore.QModelIndex()) model_index = self.createIndex(row,0) self.infoh_.RemoveGradient(name) - self.emit(QtCore.SIGNAL("dataChanged"),model_index, model_index) + self.dataChanged.emit(model_index, model_index) return True return False @@ -115,12 +117,12 @@ class GradientListModel(QtCore.QAbstractListModel): new_name = value.toString() self.data_[row][0] = new_name self.infoh_.RenameGradient(old_name,str(new_name)) - self.emit(QtCore.SIGNAL("dataChanged"),index, index) + self.dataChanged.emit(index, index) return True elif role == QtCore.Qt.DisplayRole: self.data_[row][0] = value.toString() elif role == QtCore.Qt.DecorationRole: - self.dat_[row][2] = value.toPyObject() + self.data_[row][2] = value.toPyObject() return False def flags(self, index): @@ -146,4 +148,4 @@ class GradientListModel(QtCore.QAbstractListModel): - \ No newline at end of file + diff --git a/modules/gui/pymod/scene/gradient_preset_widget.py b/modules/gui/pymod/scene/gradient_preset_widget.py index ebbfc942f..998714bef 100644 --- a/modules/gui/pymod/scene/gradient_preset_widget.py +++ b/modules/gui/pymod/scene/gradient_preset_widget.py @@ -26,85 +26,88 @@ from ost import info from datetime import datetime from datetime import datetime -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui from gradient_info_handler import GradientInfoHandler from gradient_list_model import GradientListModel #Gradient Preset Widget -class GradientPresetWidget(QtGui.QWidget): +class GradientPresetWidget(QtWidgets.QWidget): ICONS_DIR = os.path.join(ost.GetSharedDataPath(), "gui", "icons/") + + gradientSelected = QtCore.pyqtSignal(object, name="gradientSelected") + def __init__(self, gradient_edit, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Title self.text_ = "Gradient Presets" #Refrences - self.gradient_edit_ = gradient_edit - + self.gradient_edit_ = gradient_edit + #Create Ui elements - self.list_view_ = QtGui.QListView() + self.list_view_ = QtWidgets.QListView() #Create Model self.list_model_ = GradientListModel(self) self.list_view_.setModel(self.list_model_) - self.list_view_.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) + self.list_view_.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) - preset_label = QtGui.QLabel(self.text_) + preset_label = QtWidgets.QLabel(self.text_) font = preset_label.font() font.setBold(True) - self.add_action = QtGui.QAction("+",self) + self.add_action = QtWidgets.QAction("+",self) self.add_action.setIcon(QtGui.QIcon(GradientPresetWidget.ICONS_DIR+"add_icon.png")) - QtCore.QObject.connect(self.add_action, QtCore.SIGNAL("triggered()"), self.Add) + self.add_action.triggered.connect(self.Add) - self.add_button_ = QtGui.QToolButton(self) + self.add_button_ = QtWidgets.QToolButton(self) self.add_button_.setIconSize(QtCore.QSize(20,20)) self.add_button_.setDefaultAction(self.add_action) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(preset_label, 0, 0, 1, 1) - qhbox = QtGui.QHBoxLayout() + qhbox = QtWidgets.QHBoxLayout() grid.addWidget(self.list_view_,1,0,3,3) grid.addWidget(self.add_button_,4,0,1,1) self.setLayout(grid) self.list_view_.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) - QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("customContextMenuRequested(const QPoint)"), self.contextMenuEvent) + self.list_view_.customContextMenuRequested.connect(self.contextMenuEvent) self.CreateImmutableContextMenu() self.CreateContextMenu() - QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("doubleClicked(const QModelIndex)"), self.Load) + self.list_view_.doubleClicked.connect(self.Load) def CreateImmutableContextMenu(self): - self.immucontextMenu_ = QtGui.QMenu("Context menu", self) - self.load_ = QtGui.QAction("Load", self.list_view_) + self.immucontextMenu_ = QtWidgets.QMenu("Context menu", self) + self.load_ = QtWidgets.QAction("Load", self.list_view_) self.immucontextMenu_.addAction(self.load_) #Connect Signal with Slot - QtCore.QObject.connect(self.load_, QtCore.SIGNAL("triggered()"), self.LoadCurrentIndex) + self.load_.triggered.connect(self.LoadCurrentIndex) def CreateContextMenu(self): - self.contextMenu_ = QtGui.QMenu("Context menu", self) - self.remove_ = QtGui.QAction("Remove", self.list_view_) - self.rename_ = QtGui.QAction("Rename", self.list_view_) + self.contextMenu_ = QtWidgets.QMenu("Context menu", self) + self.remove_ = QtWidgets.QAction("Remove", self.list_view_) + self.rename_ = QtWidgets.QAction("Rename", self.list_view_) self.contextMenu_.addAction(self.load_) self.contextMenu_.addAction(self.remove_) self.contextMenu_.addAction(self.rename_) #Connect Signals with Slots - QtCore.QObject.connect(self.remove_, QtCore.SIGNAL("triggered()"), self.Remove) - QtCore.QObject.connect(self.rename_, QtCore.SIGNAL("triggered()"), self.Rename) + self.remove_.triggered.connect(self.Remove) + self.rename_.triggered.connect(self.Rename) def contextMenuEvent(self, pos): #ContextMenu index = self.list_view_.indexAt(pos) if index.isValid(): if self.list_model_.IsEditable(index.row()): - self.contextMenu_.popup(QtGui.QCursor.pos()) + self.contextMenu_.popup(QtWidgets.QCursor.pos()) else: - self.immucontextMenu_.popup(QtGui.QCursor.pos()) + self.immucontextMenu_.popup(QtWidgets.QCursor.pos()) def Add(self): if(self.list_view_.currentIndex().isValid()): @@ -115,14 +118,14 @@ class GradientPresetWidget(QtGui.QWidget): self.list_view_.setCurrentIndex(index) self.Rename() else: - QtGui.QMessageBox.information(self, "Gradient not added", "The gradient could not be added!") + QtWidgets.QMessageBox.information(self, "Gradient not added", "The gradient could not be added!") def Remove(self): if(self.list_view_.currentIndex().isValid()): - ret = QtGui.QMessageBox.warning(self, "Delete Gradient", + ret = QtWidgets.QMessageBox.warning(self, "Delete Gradient", "Delete Gradient?", - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) - if ret == QtGui.QMessageBox.Yes: + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) + if ret == QtWidgets.QMessageBox.Yes: self.list_model_.RemoveItem(self.list_view_.currentIndex().row()) def LoadCurrentIndex(self): @@ -131,7 +134,7 @@ class GradientPresetWidget(QtGui.QWidget): def Load(self, index): if(index.isValid()): - self.emit(QtCore.SIGNAL("gradientSelected"),self.list_model_.GetGradient(index)) + self.gradientSelected.emit(self.list_model_.GetGradient(index)) def Rename(self): if(self.list_view_.currentIndex().isValid()): diff --git a/modules/gui/pymod/scene/hsc_widget.py b/modules/gui/pymod/scene/hsc_widget.py index c67dc9721..442639a71 100644 --- a/modules/gui/pymod/scene/hsc_widget.py +++ b/modules/gui/pymod/scene/hsc_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Tube Render Options @@ -59,172 +59,172 @@ class HSCWidget(RenderModeWidget): #########UI########## #Poly Mode - poly_mode_label = QtGui.QLabel("Poly Mode") + poly_mode_label = QtWidgets.QLabel("Poly Mode") - self.poly_mode_cb_ = QtGui.QComboBox() + self.poly_mode_cb_ = QtWidgets.QComboBox() self.poly_mode_cb_.addItem("Points") self.poly_mode_cb_.addItem("Wireframe") self.poly_mode_cb_.addItem("Surface") #Sphere Label - spline_label = QtGui.QLabel("Spline Detail") + spline_label = QtWidgets.QLabel("Spline Detail") - self.spline_spinbox_ = QtGui.QSpinBox() + self.spline_spinbox_ = QtWidgets.QSpinBox() self.spline_spinbox_.setRange(min_spline_detail, max_spline_detail) #Arc Label - arc_label = QtGui.QLabel("Arc Detail") + arc_label = QtWidgets.QLabel("Arc Detail") - self.arc_spinbox_ = QtGui.QSpinBox() + self.arc_spinbox_ = QtWidgets.QSpinBox() self.arc_spinbox_.setRange(min_arc_detail, max_arc_detail) #Tube - tube_label = QtGui.QLabel("Tube") + tube_label = QtWidgets.QLabel("Tube") font = tube_label.font() font.setBold(True) #Tube Radius - radius_tube_label = QtGui.QLabel("Radius") + radius_tube_label = QtWidgets.QLabel("Radius") - self.width_tube_spinbox_ = QtGui.QDoubleSpinBox() + self.width_tube_spinbox_ = QtWidgets.QDoubleSpinBox() self.width_tube_spinbox_.setRange(min_width, max_tube_width) self.width_tube_spinbox_.setDecimals(1) self.width_tube_spinbox_.setSingleStep(0.1) - self.width_tube_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.width_tube_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.width_tube_slider_.setRange(min_width*10.0, max_tube_width*10.0) - self.width_tube_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.width_tube_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.width_tube_slider_.setTickInterval(1) #Tube Ratio - ratio_tube_label = QtGui.QLabel("Ratio") + ratio_tube_label = QtWidgets.QLabel("Ratio") - self.thickness_tube_spinbox_ = QtGui.QDoubleSpinBox() + self.thickness_tube_spinbox_ = QtWidgets.QDoubleSpinBox() self.thickness_tube_spinbox_.setRange(min_tube_ratio, max_tube_ratio) self.thickness_tube_spinbox_.setDecimals(1) self.thickness_tube_spinbox_.setSingleStep(0.1) - self.thickness_tube_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.thickness_tube_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.thickness_tube_slider_.setRange(min_tube_ratio*10.0, max_tube_ratio*10) - self.thickness_tube_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.thickness_tube_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.thickness_tube_slider_.setTickInterval(1) # Tube Profile Type - tube_profile_label = QtGui.QLabel("Tube Profile Type") - self.tube_profile_spinbox_ = QtGui.QSpinBox() + tube_profile_label = QtWidgets.QLabel("Tube Profile Type") + self.tube_profile_spinbox_ = QtWidgets.QSpinBox() self.tube_profile_spinbox_.setRange(min_profile, max_profile) # Helix - helix_label = QtGui.QLabel("Helix") + helix_label = QtWidgets.QLabel("Helix") font = helix_label.font() font.setBold(True) #Helix Radius - radius_helix_label = QtGui.QLabel("Width") + radius_helix_label = QtWidgets.QLabel("Width") - self.width_helix_spinbox_ = QtGui.QDoubleSpinBox() + self.width_helix_spinbox_ = QtWidgets.QDoubleSpinBox() self.width_helix_spinbox_.setRange(min_width, max_width) self.width_helix_spinbox_.setDecimals(1) self.width_helix_spinbox_.setSingleStep(0.1) - self.width_helix_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.width_helix_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.width_helix_slider_.setRange(min_width*10.0, max_width*10.0) - self.width_helix_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.width_helix_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.width_helix_slider_.setTickInterval(1) #Helix Ratio - ratio_helix_label = QtGui.QLabel("Thickness") + ratio_helix_label = QtWidgets.QLabel("Thickness") - self.thickness_helix_spinbox_ = QtGui.QDoubleSpinBox() + self.thickness_helix_spinbox_ = QtWidgets.QDoubleSpinBox() self.thickness_helix_spinbox_.setRange(min_ratio,max_ratio) self.thickness_helix_spinbox_.setDecimals(1) self.thickness_helix_spinbox_.setSingleStep(0.1) - self.thickness_helix_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.thickness_helix_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.thickness_helix_slider_.setRange(min_ratio*10.0,max_ratio*10.0) - self.thickness_helix_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.thickness_helix_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.thickness_helix_slider_.setTickInterval(1) #Helix ECC - ecc_helix_label = QtGui.QLabel("ECC") + ecc_helix_label = QtWidgets.QLabel("ECC") - self.ecc_helix_spinbox_ = QtGui.QDoubleSpinBox() + self.ecc_helix_spinbox_ = QtWidgets.QDoubleSpinBox() self.ecc_helix_spinbox_.setRange(min_ecc,max_ecc) self.ecc_helix_spinbox_.setDecimals(1) self.ecc_helix_spinbox_.setSingleStep(0.1) - self.ecc_helix_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.ecc_helix_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.ecc_helix_slider_.setRange(min_ecc*10,max_ecc*10) - self.ecc_helix_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.ecc_helix_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.ecc_helix_slider_.setTickInterval(1) # Helix Profile Type - helix_profile_label = QtGui.QLabel("Helix Profile Type") - self.helix_profile_spinbox_ = QtGui.QSpinBox() + helix_profile_label = QtWidgets.QLabel("Helix Profile Type") + self.helix_profile_spinbox_ = QtWidgets.QSpinBox() self.helix_profile_spinbox_.setRange(min_profile, max_profile) # Helix Rendering Mode - helix_mode_label = QtGui.QLabel("Helix Render Mode") - self.helix_mode_spinbox_ = QtGui.QSpinBox() + helix_mode_label = QtWidgets.QLabel("Helix Render Mode") + self.helix_mode_spinbox_ = QtWidgets.QSpinBox() self.helix_mode_spinbox_.setRange(0, 1) #Strand - strand_label = QtGui.QLabel("Strand") + strand_label = QtWidgets.QLabel("Strand") font = strand_label.font() font.setBold(1) #Strand Radius - radius_strand_label = QtGui.QLabel("Width") + radius_strand_label = QtWidgets.QLabel("Width") - self.width_strand_spinbox_ = QtGui.QDoubleSpinBox() + self.width_strand_spinbox_ = QtWidgets.QDoubleSpinBox() self.width_strand_spinbox_.setRange(min_width, max_width) self.width_strand_spinbox_.setDecimals(1) self.width_strand_spinbox_.setSingleStep(0.1) - self.width_strand_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.width_strand_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.width_strand_slider_.setRange(min_width*10, max_width*10) - self.width_strand_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.width_strand_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.width_strand_slider_.setTickInterval(1) #Strand Ratio - ratio_strand_label = QtGui.QLabel("Thickness") + ratio_strand_label = QtWidgets.QLabel("Thickness") - self.thickness_strand_spinbox_ = QtGui.QDoubleSpinBox() + self.thickness_strand_spinbox_ = QtWidgets.QDoubleSpinBox() self.thickness_strand_spinbox_.setRange(min_ratio,max_ratio) self.thickness_strand_spinbox_.setDecimals(1) self.thickness_strand_spinbox_.setSingleStep(0.1) - self.thickness_strand_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.thickness_strand_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.thickness_strand_slider_.setRange(min_ratio*10,max_ratio*10) - self.thickness_strand_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.thickness_strand_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.thickness_strand_slider_.setTickInterval(1) #Strand ECC - ecc_strand_label = QtGui.QLabel("ECC") + ecc_strand_label = QtWidgets.QLabel("ECC") - self.ecc_strand_spinbox_ = QtGui.QDoubleSpinBox() + self.ecc_strand_spinbox_ = QtWidgets.QDoubleSpinBox() self.ecc_strand_spinbox_.setRange(min_ecc,max_ecc) self.ecc_strand_spinbox_.setDecimals(1) self.ecc_strand_spinbox_.setSingleStep(0.1) - self.ecc_strand_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.ecc_strand_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.ecc_strand_slider_.setRange(min_ecc*10,max_ecc*10) - self.ecc_strand_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.ecc_strand_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.ecc_strand_slider_.setTickInterval(1) # Strand Profile Type - strand_profile_label = QtGui.QLabel("Strand Profile Type") - self.strand_profile_spinbox_ = QtGui.QSpinBox() + strand_profile_label = QtWidgets.QLabel("Strand Profile Type") + self.strand_profile_spinbox_ = QtWidgets.QSpinBox() self.strand_profile_spinbox_.setRange(min_profile, max_profile) # Strand Rendering Mode - strand_mode_label = QtGui.QLabel("Strand Render Mode") - self.strand_mode_spinbox_ = QtGui.QSpinBox() + strand_mode_label = QtWidgets.QLabel("Strand Render Mode") + self.strand_mode_spinbox_ = QtWidgets.QSpinBox() self.strand_mode_spinbox_.setRange(0, 1) # row=1 - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(poly_mode_label,row,0,1,1) grid.addWidget(self.poly_mode_cb_,row,3,1,2) row+=1 @@ -290,33 +290,33 @@ class HSCWidget(RenderModeWidget): grid.setRowStretch(row+1,1) self.setLayout(grid) - QtCore.QObject.connect(self.spline_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSplineDetail) - QtCore.QObject.connect(self.arc_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateArcDetail) - QtCore.QObject.connect(self.poly_mode_cb_, QtCore.SIGNAL("currentIndexChanged(int)"), self.UpdatePolyMode) - - QtCore.QObject.connect(self.width_tube_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateTubeRadius) - QtCore.QObject.connect(self.width_tube_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderTubeRadius) - QtCore.QObject.connect(self.thickness_tube_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateTubeRatio) - QtCore.QObject.connect(self.thickness_tube_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderTubeRatio) - QtCore.QObject.connect(self.tube_profile_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateTubeProfileType) - - QtCore.QObject.connect(self.width_helix_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateHelixWidth) - QtCore.QObject.connect(self.width_helix_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderHelixWidth) - QtCore.QObject.connect(self.thickness_helix_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateHelixThickness) - QtCore.QObject.connect(self.thickness_helix_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderHelixThickness) - QtCore.QObject.connect(self.ecc_helix_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateHelixEcc) - QtCore.QObject.connect(self.ecc_helix_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderHelixEcc) - QtCore.QObject.connect(self.helix_profile_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateHelixProfileType) - QtCore.QObject.connect(self.helix_mode_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateHelixMode) + self.spline_spinbox_.valueChanged.connect(self.UpdateSplineDetail) + self.arc_spinbox_.valueChanged.connect(self.UpdateArcDetail) + self.poly_mode_cb_.currentIndexChanged.connect(self.UpdatePolyMode) + + self.width_tube_spinbox_.valueChanged.connect(self.UpdateTubeRadius) + self.width_tube_slider_.valueChanged.connect(self.UpdateSliderTubeRadius) + self.thickness_tube_spinbox_.valueChanged.connect(self.UpdateTubeRatio) + self.thickness_tube_slider_.valueChanged.connect(self.UpdateSliderTubeRatio) + self.tube_profile_spinbox_.valueChanged.connect(self.UpdateTubeProfileType) + + self.width_helix_spinbox_.valueChanged.connect(self.UpdateHelixWidth) + self.width_helix_slider_.valueChanged.connect(self.UpdateSliderHelixWidth) + self.thickness_helix_spinbox_.valueChanged.connect(self.UpdateHelixThickness) + self.thickness_helix_slider_.valueChanged.connect(self.UpdateSliderHelixThickness) + self.ecc_helix_spinbox_.valueChanged.connect(self.UpdateHelixEcc) + self.ecc_helix_slider_.valueChanged.connect(self.UpdateSliderHelixEcc) + self.helix_profile_spinbox_.valueChanged.connect(self.UpdateHelixProfileType) + self.helix_mode_spinbox_.valueChanged.connect(self.UpdateHelixMode) - QtCore.QObject.connect(self.width_strand_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateStrandWidth) - QtCore.QObject.connect(self.width_strand_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderStrandWidth) - QtCore.QObject.connect(self.thickness_strand_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateStrandThickness) - QtCore.QObject.connect(self.thickness_strand_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderStrandThickness) - QtCore.QObject.connect(self.ecc_strand_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateStrandEcc) - QtCore.QObject.connect(self.ecc_strand_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderStrandEcc) - QtCore.QObject.connect(self.strand_profile_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateStrandProfileType) - QtCore.QObject.connect(self.strand_mode_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateStrandMode) + self.width_strand_spinbox_.valueChanged.connect(self.UpdateStrandWidth) + self.width_strand_slider_.valueChanged.connect(self.UpdateSliderStrandWidth) + self.thickness_strand_spinbox_.valueChanged.connect(self.UpdateStrandThickness) + self.thickness_strand_slider_.valueChanged.connect(self.UpdateSliderStrandThickness) + self.ecc_strand_spinbox_.valueChanged.connect(self.UpdateStrandEcc) + self.ecc_strand_slider_.valueChanged.connect(self.UpdateSliderStrandEcc) + self.strand_profile_spinbox_.valueChanged.connect(self.UpdateStrandProfileType) + self.strand_mode_spinbox_.valueChanged.connect(self.UpdateStrandMode) self.setMinimumSize(250,550) ########/UI######## diff --git a/modules/gui/pymod/scene/immutable_gradient_info_handler.py b/modules/gui/pymod/scene/immutable_gradient_info_handler.py index c70b041e9..65ecf0d9c 100644 --- a/modules/gui/pymod/scene/immutable_gradient_info_handler.py +++ b/modules/gui/pymod/scene/immutable_gradient_info_handler.py @@ -21,7 +21,7 @@ from ost import gui from ost import gfx from ost import info -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui #Gradient Editor class ImmutableGradientInfoHandler: diff --git a/modules/gui/pymod/scene/immutable_info_handler.py b/modules/gui/pymod/scene/immutable_info_handler.py index 600fd393d..e766c8402 100644 --- a/modules/gui/pymod/scene/immutable_info_handler.py +++ b/modules/gui/pymod/scene/immutable_info_handler.py @@ -21,7 +21,7 @@ from ost import gui from ost import gfx from ost import info -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets #Gradient Editor class ImmutableInfoHandler: @@ -50,13 +50,13 @@ class ImmutableInfoHandler: def ConvertToQGradient(self, gfxGradient): stops = gfxGradient.GetStops() - qgrad = QtGui.QLinearGradient() + qgrad = QtWidgets.QLinearGradient() for stop in stops: color = stop.GetColor() - qcolor = QtGui.QColor(color.Red()*255, - color.Green()*255, - color.Blue()*255, - color.Alpha()*255) + qcolor = QtWidgets.QColor(color.Red()*255, + color.Green()*255, + color.Blue()*255, + color.Alpha()*255) qgrad.setColorAt(stop.GetRel(), qcolor) return qgrad diff --git a/modules/gui/pymod/scene/immutable_preset_info_handler.py b/modules/gui/pymod/scene/immutable_preset_info_handler.py index 5b1fb7c12..83dd1c741 100644 --- a/modules/gui/pymod/scene/immutable_preset_info_handler.py +++ b/modules/gui/pymod/scene/immutable_preset_info_handler.py @@ -21,7 +21,6 @@ from ost import gui from ost import gfx from ost import info -from PyQt4 import QtCore, QtGui from ost.gui.scene.preset import Preset #Gradient Editor diff --git a/modules/gui/pymod/scene/init_inspector.py b/modules/gui/pymod/scene/init_inspector.py index 72b35454d..0e2803dae 100644 --- a/modules/gui/pymod/scene/init_inspector.py +++ b/modules/gui/pymod/scene/init_inspector.py @@ -21,7 +21,7 @@ import sip from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore from ost.gui.scene.inspector_widget import InspectorDialog def _InitInspector(app): diff --git a/modules/gui/pymod/scene/inspector_widget.py b/modules/gui/pymod/scene/inspector_widget.py index 4a976841b..503d3acdc 100644 --- a/modules/gui/pymod/scene/inspector_widget.py +++ b/modules/gui/pymod/scene/inspector_widget.py @@ -23,7 +23,7 @@ import sip from ost import gfx import ost import os -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from toolbar_options_widget import ToolBarOptionsWidget from render_options_widget import RenderOptionsWidget from color_options_widget import ColorOptionsWidget @@ -48,8 +48,7 @@ class InspectorWidget(ToolBarOptionsWidget): self.obs = SceneObserverImpl() self.obs.AttachObserver(self) ost.scene.AttachObserver(self.obs) - QtCore.QObject.connect(app.scene_win.qobject,QtCore.SIGNAL("ActiveNodesChanged()"), - self.ActiveNodesChanged) + app.scene_win.qobject.ActiveNodesChanged.connect(self.ActiveNodesChanged) self.setMinimumSize(250,215) #ToolBarOptionsWidget Method @@ -73,19 +72,22 @@ class InspectorWidget(ToolBarOptionsWidget): SelHelper().Update() ToolBarOptionsWidget.Update(self) -class InspectorDialog(QtGui.QDialog): +class InspectorDialog(QtWidgets.QDialog): + + visible = QtCore.pyqtSignal(bool, name="visible") + def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.setWindowTitle("Inspector Gadget") self.setAttribute(QtCore.Qt.WA_MacSmallSize) - self.layout=QtGui.QHBoxLayout() - self.layout.setMargin(0) + self.layout=QtWidgets.QHBoxLayout() + self.layout.setContentsMargins(0,0,0,0) self.layout.setSpacing(0) self.setLayout(self.layout) self.mywidget_ = InspectorWidget(self) self.layout.addWidget(self.mywidget_) - size_pol = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, - QtGui.QSizePolicy.Expanding) + size_pol = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, + QtWidgets.QSizePolicy.Expanding) self.setSizePolicy(size_pol) self.DoResize() @@ -100,9 +102,9 @@ class InspectorDialog(QtGui.QDialog): self.setHidden(not self.isHidden()) def hideEvent(self, event): - self.emit(QtCore.SIGNAL("visible"),False) - QtGui.QDialog.hideEvent(self,event) + self.visible.emit(False) + QtWidgets.QDialog.hideEvent(self,event) def showEvent(self, event): - self.emit(QtCore.SIGNAL("visible"),True) - QtGui.QDialog.showEvent(self,event) \ No newline at end of file + self.visible.emit(True) + QtWidgets.QDialog.showEvent(self,event) diff --git a/modules/gui/pymod/scene/line_trace_widget.py b/modules/gui/pymod/scene/line_trace_widget.py index 5b1133e72..569f6dfcc 100644 --- a/modules/gui/pymod/scene/line_trace_widget.py +++ b/modules/gui/pymod/scene/line_trace_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Simple Render Options @@ -39,20 +39,20 @@ class LineTraceWidget(RenderModeWidget): max_line_width = 20 #Create Ui elements - self.radius_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_spinbox_.setRange(min_line_width, max_line_width) self.radius_spinbox_.setDecimals(2) self.radius_spinbox_.setSingleStep(0.1) - self.aa_rendering_cb_ = QtGui.QCheckBox() + self.aa_rendering_cb_ = QtWidgets.QCheckBox() - sline_label = QtGui.QLabel("Trace Settings") + sline_label = QtWidgets.QLabel("Trace Settings") font = sline_label.font() font.setBold(True) - radius_label = QtGui.QLabel("Line Width") - aa_label = QtGui.QLabel("AA-Lines") - grid = QtGui.QGridLayout() + radius_label = QtWidgets.QLabel("Line Width") + aa_label = QtWidgets.QLabel("AA-Lines") + grid = QtWidgets.QGridLayout() grid.addWidget(sline_label, 0, 0, 1, 1) grid.addWidget(radius_label, 1, 0, 1, 3) grid.addWidget(self.radius_spinbox_, 1, 2, 1, 1) @@ -61,12 +61,8 @@ class LineTraceWidget(RenderModeWidget): grid.setRowStretch(3,1) self.setLayout(grid) - QtCore.QObject.connect(self.radius_spinbox_, - QtCore.SIGNAL("valueChanged(double)"), - self.UpdateLineWidth) - QtCore.QObject.connect(self.aa_rendering_cb_, - QtCore.SIGNAL("stateChanged(int)"), - self.UpdateAA) + self.radius_spinbox_.valueChanged.connect(self.UpdateLineWidth) + self.aa_rendering_cb_.stateChanged.connect(self.UpdateAA) self.setMinimumSize(250,90) diff --git a/modules/gui/pymod/scene/map_level_widget.py b/modules/gui/pymod/scene/map_level_widget.py index 02851b761..b5c0905de 100644 --- a/modules/gui/pymod/scene/map_level_widget.py +++ b/modules/gui/pymod/scene/map_level_widget.py @@ -26,13 +26,13 @@ try: except ImportError: _img_present=False pass -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from preset_widget import PresetWidget -class AdditionalSettingsWidget(QtGui.QStackedWidget): +class AdditionalSettingsWidget(QtWidgets.QStackedWidget): def __init__(self, parent=None): - QtGui.QStackedWidget.__init__(self, parent) + QtWidgets.QStackedWidget.__init__(self, parent) self.map_widget_ = MapLevelWidget(self) self.preset_widget_ = PresetWidget(self) self.addWidget(self.preset_widget_); @@ -67,22 +67,22 @@ class AdditionalSettingsWidget(QtGui.QStackedWidget): self.setEnabled(False) #Map Level Widget -class MapLevelWidget(QtGui.QWidget): +class MapLevelWidget(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Create Ui elements - self.map_level_label_ = QtGui.QLabel("Map Contour Level") + self.map_level_label_ = QtWidgets.QLabel("Map Contour Level") self.font = self.map_level_label_.font() self.font.setBold(True) self.level_preview_ = LevelPreview() - self.level_spinbox_ = QtGui.QDoubleSpinBox() + self.level_spinbox_ = QtWidgets.QDoubleSpinBox() self.level_spinbox_.setDecimals(3) self.level_spinbox_.setSingleStep(0.05) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.level_preview_, 0, 0, 1, 4) grid.addWidget(self.map_level_label_, 1, 0, 1, 3) @@ -90,9 +90,9 @@ class MapLevelWidget(QtGui.QWidget): grid.setRowStretch(3, 1) self.setLayout(grid) - QtCore.QObject.connect(self.level_preview_, QtCore.SIGNAL("levelUpdated"), self.UpdateLevel) - QtCore.QObject.connect(self.level_preview_, QtCore.SIGNAL("levelModified"), self.ModifySpinBox) - QtCore.QObject.connect(self.level_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLevel) + self.level_preview_.levelUpdated.connect(self.UpdateLevel) + self.level_preview_.levelModified.connect(self.ModifySpinBox) + self.level_spinbox_.valueChanged.connect(self.UpdateLevel) self.setMinimumSize(250,200) @@ -129,19 +129,23 @@ class MapLevelWidget(QtGui.QWidget): node.SetLevel(level) def ModifySpinBox(self, level): - QtCore.QObject.disconnect(self.level_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLevel) + self.level_spinbox_.valueChanged.disconnect(self.UpdateLevel) self.level_spinbox_.setValue(level) - QtCore.QObject.connect(self.level_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLevel) + self.level_spinbox_.valueChanged.connect(self.UpdateLevel) #Level Preview -class LevelPreview(QtGui.QWidget): +class LevelPreview(QtWidgets.QWidget): + + levelUpdated = QtCore.pyqtSignal(int, name="levelUpdated") + levelModified = QtCore.pyqtSignal(int, name="levelModified") + def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Defaults self.border_offset_ = 3 self.preview_height_ = 150 - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Ui self.setMinimumSize(0, self.preview_height_ + 4) @@ -171,7 +175,7 @@ class LevelPreview(QtGui.QWidget): def paintEvent(self, event): if self.isEnabled() and self.bins_ is not None: - painter = QtGui.QPainter() + painter = QtWidgets.QPainter() if painter.begin(self): self.PaintBackground(painter) self.PaintBins(painter) @@ -228,7 +232,7 @@ class LevelPreview(QtGui.QWidget): width = size.width()-(2* self.border_offset_) painter.setBrush(QtCore.Qt.gray) painter.setPen(QtCore.Qt.gray) - pos=self.mapFromGlobal(QtGui.QCursor.pos()) + pos=self.mapFromGlobal(QtWidgets.QCursor.pos()) painter.drawRect(pos.x(), self.border_offset_, 1, @@ -241,7 +245,7 @@ class LevelPreview(QtGui.QWidget): tot_len = self.maximum_-self.minimum_ self.level_ = self.minimum_ + float(event.x())/width * tot_len self.update() - self.emit(QtCore.SIGNAL("levelUpdated"),(self.level_)) + self.levelUpdated.emit(self.level_) def mousePressEvent(self,event): self.paint_mouse_=True @@ -251,5 +255,5 @@ class LevelPreview(QtGui.QWidget): width = size.width()-(2* self.border_offset_) tot_len = self.maximum_-self.minimum_ level = self.minimum_ + float(event.x())/width * tot_len - self.emit(QtCore.SIGNAL("levelModified"),(level)) - self.update() \ No newline at end of file + self.levelModified.emit(level) + self.update() diff --git a/modules/gui/pymod/scene/preset.py b/modules/gui/pymod/scene/preset.py index 4628f8248..279765d7c 100644 --- a/modules/gui/pymod/scene/preset.py +++ b/modules/gui/pymod/scene/preset.py @@ -20,7 +20,6 @@ from ost import info from ost import gfx -from PyQt4 import QtGui from ost.gfx import ColorOp diff --git a/modules/gui/pymod/scene/preset_editor_list_model.py b/modules/gui/pymod/scene/preset_editor_list_model.py index a30fc13c3..35fac9836 100644 --- a/modules/gui/pymod/scene/preset_editor_list_model.py +++ b/modules/gui/pymod/scene/preset_editor_list_model.py @@ -2,7 +2,7 @@ from ost import gui from ost import gfx import os import ost -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore from preset import Preset class PresetEditorListModel(QtCore.QAbstractListModel): diff --git a/modules/gui/pymod/scene/preset_editor_widget.py b/modules/gui/pymod/scene/preset_editor_widget.py index 97d7e7723..c5a314efb 100644 --- a/modules/gui/pymod/scene/preset_editor_widget.py +++ b/modules/gui/pymod/scene/preset_editor_widget.py @@ -23,7 +23,7 @@ from ost import gfx from ost import mol from datetime import datetime from datetime import datetime -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui from color_select_widget import ColorSelectWidget from gradient_preset_widget import GradientPresetWidget from gradient_editor_widget import GradientPreview @@ -41,16 +41,16 @@ from render_op import RenderOp from visibility_op import VisibilityOp #Preset Editor -class PresetEditor(QtGui.QDialog): +class PresetEditor(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.setWindowTitle("Preset Editor") #Create Ui Elements - self.list_view_ = QtGui.QListView() + self.list_view_ = QtWidgets.QListView() - self.combo_box_ = QtGui.QComboBox() + self.combo_box_ = QtWidgets.QComboBox() self.ufcow_=UniformColorOpWidget(self) self.glcow_=GradientLevelColorOpWidget(self) @@ -65,22 +65,22 @@ class PresetEditor(QtGui.QDialog): self.combo_box_.addItem("RenderMode Operation", QtCore.QVariant(self.row_)) self.combo_box_.addItem("Visibility Operation", QtCore.QVariant(self.vow_)) - self.add_button_ = QtGui.QPushButton("Add") + self.add_button_ = QtWidgets.QPushButton("Add") #Create Model - self.list_view_.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) + self.list_view_.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.list_view_.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) - QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("customContextMenuRequested(const QPoint)"), self.contextMenuEvent) + self.list_view_.customContextMenuRequested.connect(self.contextMenuEvent) - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.combo_box_,0,0,1,1) grid.addWidget(self.add_button_,0,1,1,1) @@ -89,9 +89,9 @@ class PresetEditor(QtGui.QDialog): grid.setRowStretch(1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.add_button_, QtCore.SIGNAL("clicked()"), self.Add) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) + self.add_button_.clicked.connect(self.Add) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) self.CreateContextMenu() @@ -100,26 +100,26 @@ class PresetEditor(QtGui.QDialog): self.list_view_.setModel(self.list_model_) def CreateContextMenu(self): - self.context_menu_ = QtGui.QMenu("Context menu", self) - self.edit_ = QtGui.QAction("Edit", self.list_view_) - self.remove_ = QtGui.QAction("Remove", self.list_view_) - self.moveup_ = QtGui.QAction("Move Up", self.list_view_) - self.movedown_ = QtGui.QAction("Move Down", self.list_view_) + self.context_menu_ = QtWidgets.QMenu("Context menu", self) + self.edit_ = QtWidgets.QAction("Edit", self.list_view_) + self.remove_ = QtWidgets.QAction("Remove", self.list_view_) + self.moveup_ = QtWidgets.QAction("Move Up", self.list_view_) + self.movedown_ = QtWidgets.QAction("Move Down", self.list_view_) self.context_menu_.addAction(self.edit_) self.context_menu_.addAction(self.remove_) self.context_menu_.addAction(self.moveup_) self.context_menu_.addAction(self.movedown_) #Connect Signals with Slots - QtCore.QObject.connect(self.edit_, QtCore.SIGNAL("triggered()"), self.Edit) - QtCore.QObject.connect(self.remove_, QtCore.SIGNAL("triggered()"), self.Remove) - QtCore.QObject.connect(self.moveup_, QtCore.SIGNAL("triggered()"), self.MoveUp) - QtCore.QObject.connect(self.movedown_, QtCore.SIGNAL("triggered()"), self.MoveDown) + self.edit_.triggered.connect(self.Edit) + self.remove_.triggered.connect(self.Remove) + self.moveup_.triggered.connect(self.MoveUp) + self.movedown_.triggered.connect(self.MoveDown) def contextMenuEvent(self, pos): #ContextMenu index = self.list_view_.indexAt(pos) if index.isValid(): - self.context_menu_.popup(QtGui.QCursor.pos()) + self.context_menu_.popup(QtWidgets.QCursor.pos()) def Add(self): dialog = self.combo_box_.itemData(self.combo_box_.currentIndex()).toPyObject() @@ -180,29 +180,29 @@ class PresetEditor(QtGui.QDialog): def Cancel(self): self.reject() -class UniformColorOpWidget(QtGui.QDialog): +class UniformColorOpWidget(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.query_editor_ = QueryEditorWidget(self) - detail_label = QtGui.QLabel("Parts") - self.detail_selection_cb_ = QtGui.QComboBox() + detail_label = QtWidgets.QLabel("Parts") + self.detail_selection_cb_ = QtWidgets.QComboBox() self.detail_selection_cb_.addItem("Main and Detail",QtCore.QVariant(3)) self.detail_selection_cb_.addItem("Main",QtCore.QVariant(2)) self.detail_selection_cb_.addItem("Detail",QtCore.QVariant(1)) - color_label = QtGui.QLabel("Color") + color_label = QtWidgets.QLabel("Color") self.color_select_widget_ = ColorSelectWidget(30,30,QtGui.QColor("White")) - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.query_editor_, 0, 0, 1, 2) grid.addWidget(detail_label, 1, 0, 1, 1) @@ -213,8 +213,8 @@ class UniformColorOpWidget(QtGui.QDialog): grid.setRowStretch(2, 1) self.setLayout(grid) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) def GetOp(self): qv=mol.QueryViewWrapper(self.query_editor_.GetQuery(),self.query_editor_.GetQueryFlags()) @@ -250,22 +250,22 @@ class UniformColorOpWidget(QtGui.QDialog): def Cancel(self): self.reject() -class GradientLevelColorOpWidget(QtGui.QDialog): +class GradientLevelColorOpWidget(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.query_editor_ = QueryEditorWidget(self) - detail_label = QtGui.QLabel("Parts") - self.detail_selection_cb_ = QtGui.QComboBox() + detail_label = QtWidgets.QLabel("Parts") + self.detail_selection_cb_ = QtWidgets.QComboBox() self.detail_selection_cb_.addItem("Main and Detail",QtCore.QVariant(3)) self.detail_selection_cb_.addItem("Main",QtCore.QVariant(2)) self.detail_selection_cb_.addItem("Detail",QtCore.QVariant(1)) - property_label = QtGui.QLabel("Property") - self.property_edit_ = QtGui.QLineEdit() + property_label = QtWidgets.QLabel("Property") + self.property_edit_ = QtWidgets.QLineEdit() - self.prop_combo_box_ = QtGui.QComboBox() + self.prop_combo_box_ = QtWidgets.QComboBox() self.prop_combo_box_.addItem("atom B-factor",QtCore.QVariant("abfac")) self.prop_combo_box_.addItem("average residue B-factor",QtCore.QVariant("rbfac")) self.prop_combo_box_.addItem("X-Coordinate",QtCore.QVariant("x")) @@ -276,42 +276,42 @@ class GradientLevelColorOpWidget(QtGui.QDialog): self.prop_combo_box_.addItem("Custom",QtCore.QVariant("custom")) - level_label = QtGui.QLabel("Level") - self.combo_box_ = QtGui.QComboBox(self); + level_label = QtWidgets.QLabel("Level") + self.combo_box_ = QtWidgets.QComboBox(self); self.combo_box_.addItem("Atom",QtCore.QVariant(Prop.Level.ATOM)) self.combo_box_.addItem("Residue",QtCore.QVariant(Prop.Level.RESIDUE)) self.combo_box_.addItem("Chain",QtCore.QVariant(Prop.Level.CHAIN)) self.combo_box_.addItem("Unspecified",QtCore.QVariant(Prop.Level.UNSPECIFIED)) - gradient_label = QtGui.QLabel("Gradient") + gradient_label = QtWidgets.QLabel("Gradient") self.gradient_preview_ = GradientPreview() self.gradient_edit_ = GradientEdit(self.gradient_preview_,self) - self.minmax_label_ = QtGui.QLabel("Min Max") - self.auto_calc_ = QtGui.QCheckBox("Auto calculate") + self.minmax_label_ = QtWidgets.QLabel("Min Max") + self.auto_calc_ = QtWidgets.QCheckBox("Auto calculate") self.auto_calc_.setChecked(True) - self.minv_label_ = QtGui.QLabel("Min Value") - self.maxv_label_ = QtGui.QLabel("Max Value") + self.minv_label_ = QtWidgets.QLabel("Min Value") + self.maxv_label_ = QtWidgets.QLabel("Max Value") - self.minv_ = QtGui.QDoubleSpinBox(self) + self.minv_ = QtWidgets.QDoubleSpinBox(self) self.minv_.setDecimals(2) self.minv_.setMinimum(-9999.99) self.minv_.setValue(0) - self.maxv_ = QtGui.QDoubleSpinBox(self) + self.maxv_ = QtWidgets.QDoubleSpinBox(self) self.maxv_.setDecimals(2) self.maxv_.setValue(1) self.maxv_.setMinimum(-9999.99) - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.query_editor_, 0, 0, 1, 2) grid.addWidget(detail_label, 1, 0, 1, 1) @@ -335,10 +335,10 @@ class GradientLevelColorOpWidget(QtGui.QDialog): grid.setRowStretch(1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.prop_combo_box_, QtCore.SIGNAL("currentIndexChanged(int)"), self.UpdateGui) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) - QtCore.QObject.connect(self.auto_calc_, QtCore.SIGNAL("stateChanged (int)"), self.UpdateGui) + self.prop_combo_box_.currentIndexChanged.connect(self.UpdateGui) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) + self.auto_calc_.stateChanged.connect(self.UpdateGui) self.UpdateGui() @@ -395,7 +395,7 @@ class GradientLevelColorOpWidget(QtGui.QDialog): self.UpdateGui() def UpdateGui(self): - prop = self.prop_combo_box_.itemData(self.prop_combo_box_.currentIndex()).toPyObject() + prop = str(self.prop_combo_box_.itemData(self.prop_combo_box_.currentIndex())) if(prop == "custom"): self.combo_box_.setEnabled(True) self.property_edit_.setEnabled(True) @@ -419,25 +419,25 @@ class GradientLevelColorOpWidget(QtGui.QDialog): def Update(self): pass #Do Nothing -class ByElementColorOpWidget(QtGui.QDialog): +class ByElementColorOpWidget(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.query_editor_ = QueryEditorWidget(self) - detail_label = QtGui.QLabel("Parts") - self.detail_selection_cb_ = QtGui.QComboBox() + detail_label = QtWidgets.QLabel("Parts") + self.detail_selection_cb_ = QtWidgets.QComboBox() self.detail_selection_cb_.addItem("Main and Detail",QtCore.QVariant(3)) self.detail_selection_cb_.addItem("Main",QtCore.QVariant(2)) self.detail_selection_cb_.addItem("Detail",QtCore.QVariant(1)) - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.query_editor_, 0, 0, 1, 2) grid.addWidget(detail_label, 1, 0, 1, 1) @@ -446,8 +446,8 @@ class ByElementColorOpWidget(QtGui.QDialog): grid.setRowStretch(1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) def GetOp(self): detail = self.detail_selection_cb_.itemData(self.detail_selection_cb_.currentIndex()).toPyObject() @@ -475,25 +475,25 @@ class ByElementColorOpWidget(QtGui.QDialog): self.reject() -class ByChainColorOpWidget(QtGui.QDialog): +class ByChainColorOpWidget(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.query_editor_ = QueryEditorWidget(self) - detail_label = QtGui.QLabel("Parts") - self.detail_selection_cb_ = QtGui.QComboBox() + detail_label = QtWidgets.QLabel("Parts") + self.detail_selection_cb_ = QtWidgets.QComboBox() self.detail_selection_cb_.addItem("Main and Detail",QtCore.QVariant(3)) self.detail_selection_cb_.addItem("Main",QtCore.QVariant(2)) self.detail_selection_cb_.addItem("Detail",QtCore.QVariant(1)) - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.query_editor_, 0, 0, 1, 2) grid.addWidget(detail_label, 1, 0, 1, 1) @@ -502,8 +502,8 @@ class ByChainColorOpWidget(QtGui.QDialog): grid.setRowStretch(1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) def GetOp(self): detail = self.detail_selection_cb_.itemData(self.detail_selection_cb_.currentIndex()).toPyObject() @@ -531,16 +531,16 @@ class ByChainColorOpWidget(QtGui.QDialog): self.reject() -class RenderOpWidget(QtGui.QDialog): +class RenderOpWidget(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.query_editor_ = QueryEditorWidget(self) - self.keep_ = QtGui.QCheckBox("Keep") + self.keep_ = QtWidgets.QCheckBox("Keep") self.keep_.setChecked(False) - render_label = QtGui.QLabel("Rendermode") - self.render_modes_ = QtGui.QComboBox() + render_label = QtWidgets.QLabel("Rendermode") + self.render_modes_ = QtWidgets.QComboBox() self.render_modes_.addItem("Fast Bonds") self.render_modes_.addItem("Ball & Stick") self.render_modes_.addItem("Spheres") @@ -559,14 +559,14 @@ class RenderOpWidget(QtGui.QDialog): gfx.RenderMode.TUBE, gfx.RenderMode.HSC] - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.query_editor_, 0, 0, 1, 2) grid.addWidget(self.keep_, 1, 1, 1, 1) @@ -576,8 +576,8 @@ class RenderOpWidget(QtGui.QDialog): grid.setRowStretch(1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) def GetOp(self): selection = self.query_editor_.GetQueryText() @@ -606,22 +606,22 @@ class RenderOpWidget(QtGui.QDialog): def Cancel(self): self.reject() -class VisibilityOpWidget(QtGui.QDialog): +class VisibilityOpWidget(QtWidgets.QDialog): def __init__(self, parent=None): - QtGui.QDialog.__init__(self, parent) + QtWidgets.QDialog.__init__(self, parent) self.query_editor_ = QueryEditorWidget(self) - self.visible_ = QtGui.QCheckBox("Visible") + self.visible_ = QtWidgets.QCheckBox("Visible") self.visible_.setChecked(True) - self.hbox_ = QtGui.QHBoxLayout() - self.ok_button_ = QtGui.QPushButton("OK") - self.cancel_button_ = QtGui.QPushButton("Cancel") + self.hbox_ = QtWidgets.QHBoxLayout() + self.ok_button_ = QtWidgets.QPushButton("OK") + self.cancel_button_ = QtWidgets.QPushButton("Cancel") self.hbox_.addWidget(self.ok_button_) self.hbox_.addStretch() self.hbox_.addWidget(self.cancel_button_) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.query_editor_, 0, 0, 1, 2) grid.addWidget(self.visible_, 1, 1, 1, 1) @@ -629,8 +629,8 @@ class VisibilityOpWidget(QtGui.QDialog): grid.setRowStretch(1, 1) self.setLayout(grid) - QtCore.QObject.connect(self.ok_button_, QtCore.SIGNAL("clicked()"), self.Ok) - QtCore.QObject.connect(self.cancel_button_, QtCore.SIGNAL("clicked()"), self.Cancel) + self.ok_button_.clicked.connect(self.Ok) + self.cancel_button_.clicked.connect(self.Cancel) def GetOp(self): selection = self.query_editor_.GetQueryText() diff --git a/modules/gui/pymod/scene/preset_info_handler.py b/modules/gui/pymod/scene/preset_info_handler.py index ba77aaff8..25237b3bd 100644 --- a/modules/gui/pymod/scene/preset_info_handler.py +++ b/modules/gui/pymod/scene/preset_info_handler.py @@ -21,7 +21,6 @@ from ost import gui from ost import gfx from ost import info -from PyQt4 import QtCore, QtGui from immutable_preset_info_handler import ImmutablePresetInfoHandler #Preset Info Handler @@ -55,4 +54,4 @@ class PresetInfoHandler(ImmutablePresetInfoHandler): groupname = group.GetAttribute(ImmutablePresetInfoHandler.NAME_ATTRIBUTE_NAME) if old == groupname: group.SetAttribute(ImmutablePresetInfoHandler.NAME_ATTRIBUTE_NAME, new) - self.handle_.Export(self.file_name_) \ No newline at end of file + self.handle_.Export(self.file_name_) diff --git a/modules/gui/pymod/scene/preset_list_model.py b/modules/gui/pymod/scene/preset_list_model.py index c35aa453f..dbe1926ad 100644 --- a/modules/gui/pymod/scene/preset_list_model.py +++ b/modules/gui/pymod/scene/preset_list_model.py @@ -2,15 +2,16 @@ from ost import gui from ost import gfx import os import ost -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui from immutable_preset_info_handler import ImmutablePresetInfoHandler from preset_info_handler import PresetInfoHandler -from PyQt4.QtGui import QDesktopServices class PresetListModel(QtCore.QAbstractListModel): IMMUTABLE_PRESET_PATH = os.path.join(ost.GetSharedDataPath(),"scene", "presets.xml") MUTABLE_PRESET_PATH = "user_presets.xml" + + dataChanged = QtCore.pyqtSignal(int, int, name="dataChanged") def __init__(self, parent=None, *args): QtCore.QAbstractListModel.__init__(self, parent, *args) @@ -20,7 +21,8 @@ class PresetListModel(QtCore.QAbstractListModel): #Info Handler self.immutable_infoh_=ImmutablePresetInfoHandler(PresetListModel.IMMUTABLE_PRESET_PATH) - data_loc=QDesktopServices.storageLocation(QDesktopServices.DataLocation) + data_loc=str(QtCore.QStandardPaths.writableLocation(QtCore.QStandardPaths.DataLocation)) + mutable_path=os.path.join(str(data_loc), 'config', PresetListModel.MUTABLE_PRESET_PATH) qdir=QtCore.QDir(data_loc) @@ -39,7 +41,7 @@ class PresetListModel(QtCore.QAbstractListModel): end_index = self.createIndex(self.rowCount(),0) if save: self.AddPresetToInfo(preset) - self.emit(QtCore.SIGNAL("dataChanged"),model_index, end_index) + self.dataChanged.emit(model_index, end_index) return True return False @@ -52,7 +54,7 @@ class PresetListModel(QtCore.QAbstractListModel): self.removeRow(row, QtCore.QModelIndex()) model_index = self.createIndex(row,0) self.infoh_.RemovePreset(name) - self.emit(QtCore.SIGNAL("dataChanged"),model_index, model_index) + self.dataChanged.emit(model_index, model_index) return True return False @@ -113,7 +115,7 @@ class PresetListModel(QtCore.QAbstractListModel): new_name = value.toString() self.data_[row][0].SetName(str(new_name)) self.infoh_.RenamePreset(old_name,str(new_name)) - self.emit(QtCore.SIGNAL("dataChanged"),index, index) + self.dataChanged.emit(index, index) return True elif role == QtCore.Qt.DisplayRole: self.data_[row][0].SetName(value.toString()) @@ -144,4 +146,4 @@ class PresetListModel(QtCore.QAbstractListModel): - \ No newline at end of file + diff --git a/modules/gui/pymod/scene/preset_widget.py b/modules/gui/pymod/scene/preset_widget.py index 87e8ea7cc..aec2f2d29 100644 --- a/modules/gui/pymod/scene/preset_widget.py +++ b/modules/gui/pymod/scene/preset_widget.py @@ -22,83 +22,83 @@ from ost import gfx import ost import os from datetime import datetime -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui from scene_selection_helper import SelHelper from preset_list_model import PresetListModel from preset_editor_widget import PresetEditor from preset import Preset -class PresetWidget(QtGui.QWidget): +class PresetWidget(QtWidgets.QWidget): PRESET_XML_FILE = os.path.join(ost.GetSharedDataPath(), "scene", "presets.xml") ICONS_DIR = os.path.join(ost.GetSharedDataPath(), "gui", "icons/") def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.text_ = "Presets" #Create Ui elements - self.list_view_ = QtGui.QListView() + self.list_view_ = QtWidgets.QListView() #Create Model self.list_model_ = PresetListModel(self) self.list_view_.setModel(self.list_model_) - self.list_view_.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) + self.list_view_.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) - self.add_action = QtGui.QAction("+",self) + self.add_action = QtWidgets.QAction("+",self) self.add_action.setIcon(QtGui.QIcon(PresetWidget.ICONS_DIR+"add_icon.png")) - QtCore.QObject.connect(self.add_action, QtCore.SIGNAL("triggered()"), self.Add) + self.add_action.triggered.connect(self.Add) - self.add_button_ = QtGui.QToolButton(self) + self.add_button_ = QtWidgets.QToolButton(self) self.add_button_.setIconSize(QtCore.QSize(20,20)) self.add_button_.setDefaultAction(self.add_action) self.preset_editor_ = PresetEditor(self) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.setContentsMargins(0,5,0,0) grid.addWidget(self.list_view_,0,0,3,3) grid.addWidget(self.add_button_,3,0,1,1) self.setLayout(grid) self.list_view_.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) - QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("customContextMenuRequested(const QPoint)"), self.contextMenuEvent) + self.list_view_.customContextMenuRequested.connect(self.contextMenuEvent) self.CreateImmutableContextMenu() self.CreateContextMenu() - QtCore.QObject.connect(self.list_view_, QtCore.SIGNAL("doubleClicked(const QModelIndex)"), self.Load) + self.list_view_.doubleClicked.connect(self.Load) self.setMinimumSize(250,200) def CreateImmutableContextMenu(self): - self.immucontext_menu_ = QtGui.QMenu("Context menu", self) - self.load_ = QtGui.QAction("Load", self.list_view_) + self.immucontext_menu_ = QtWidgets.QMenu("Context menu", self) + self.load_ = QtWidgets.QAction("Load", self.list_view_) self.immucontext_menu_.addAction(self.load_) #Connect Signal with Slot - QtCore.QObject.connect(self.load_, QtCore.SIGNAL("triggered()"), self.LoadCurrentIndex) + self.load_.triggered.connect(self.LoadCurrentIndex) def CreateContextMenu(self): - self.context_menu_ = QtGui.QMenu("Context menu", self) - self.remove_ = QtGui.QAction("Remove", self.list_view_) - self.rename_ = QtGui.QAction("Rename", self.list_view_) - self.edit_ = QtGui.QAction("Edit", self.list_view_) + self.context_menu_ = QtWidgets.QMenu("Context menu", self) + self.remove_ = QtWidgets.QAction("Remove", self.list_view_) + self.rename_ = QtWidgets.QAction("Rename", self.list_view_) + self.edit_ = QtWidgets.QAction("Edit", self.list_view_) self.context_menu_.addAction(self.load_) self.context_menu_.addAction(self.remove_) self.context_menu_.addAction(self.rename_) self.context_menu_.addAction(self.edit_) #Connect Signals with Slots - QtCore.QObject.connect(self.remove_, QtCore.SIGNAL("triggered()"), self.Remove) - QtCore.QObject.connect(self.rename_, QtCore.SIGNAL("triggered()"), self.Rename) - QtCore.QObject.connect(self.edit_, QtCore.SIGNAL("triggered()"), self.Edit) + self.remove_.triggered.connect(self.Remove) + self.rename_.triggered.connect(self.Rename) + self.edit_.triggered.connect(self.Edit) def contextMenuEvent(self, pos): #ContextMenu index = self.list_view_.indexAt(pos) if index.isValid(): if self.list_model_.IsEditable(index.row()): - self.context_menu_.popup(QtGui.QCursor.pos()) + self.context_menu_.popup(QtWidgets.QCursor.pos()) else: - self.immucontext_menu_.popup(QtGui.QCursor.pos()) + self.immucontext_menu_.popup(QtWidgets.QCursor.pos()) def Add(self): row = self.list_model_.GetLastRow() @@ -112,10 +112,10 @@ class PresetWidget(QtGui.QWidget): def Remove(self): if(self.list_view_.currentIndex().isValid()): - ret = QtGui.QMessageBox.warning(self, "Delete Preset", + ret = QtWidgets.QMessageBox.warning(self, "Delete Preset", "Delete Preset?", - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) - if ret == QtGui.QMessageBox.Yes: + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) + if ret == QtWidgets.QMessageBox.Yes: self.list_model_.RemoveItem(self.list_view_.currentIndex().row()) def Edit(self): diff --git a/modules/gui/pymod/scene/query_editor.py b/modules/gui/pymod/scene/query_editor.py index fcdfc4339..6cebc3ea5 100644 --- a/modules/gui/pymod/scene/query_editor.py +++ b/modules/gui/pymod/scene/query_editor.py @@ -1,36 +1,36 @@ from ost import mol -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui -class QueryEditorWidget(QtGui.QWidget): +class QueryEditorWidget(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.default_font_=QtGui.QTextCharFormat() self.default_font_.setForeground(QtGui.QBrush(QtGui.QColor(0,0,0))) self.error_font_=QtGui.QTextCharFormat() self.error_font_.setForeground(QtGui.QBrush(QtGui.QColor(255,0,0))) - self.selection_edit_=QtGui.QTextEdit(self) + self.selection_edit_=QtWidgets.QTextEdit(self) self.selection_edit_.setFixedHeight(40) self.selection_edit_.updateGeometry() - self.status_=QtGui.QLabel(" ",self); + self.status_=QtWidgets.QLabel(" ",self); self.status_.setWordWrap(True) self.status_.setMargin(0) self.status_.setAlignment(QtCore.Qt.AlignRight) - self.status_.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, - QtGui.QSizePolicy.Expanding)) - vl=QtGui.QVBoxLayout() + self.status_.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, + QtWidgets.QSizePolicy.Expanding)) + vl=QtWidgets.QVBoxLayout() vl.addWidget(self.selection_edit_) - self.no_bonds_=QtGui.QRadioButton('none') - self.ex_bonds_=QtGui.QRadioButton('exclusive') - self.in_bonds_=QtGui.QRadioButton('inclusive') + self.no_bonds_=QtWidgets.QRadioButton('none') + self.ex_bonds_=QtWidgets.QRadioButton('exclusive') + self.in_bonds_=QtWidgets.QRadioButton('inclusive') self.in_bonds_.setChecked(True) - self.match_res_=QtGui.QCheckBox('match residues') + self.match_res_=QtWidgets.QCheckBox('match residues') - vl.setMargin(0) + vl.setContentsMargins(0,0,0,0) vl.setSpacing(0) self.setLayout(vl) vl.addWidget(self.status_) - hl=QtGui.QHBoxLayout() - l=QtGui.QLabel("bonds:") + hl=QtWidgets.QHBoxLayout() + l=QtWidgets.QLabel("bonds:") hl.addWidget(l) hl.addSpacing(5) @@ -42,11 +42,9 @@ class QueryEditorWidget(QtGui.QWidget): vl.addWidget(self.match_res_) self.changing_text_=False; - self.connect(self.selection_edit_,QtCore.SIGNAL("textChanged()"), - self._StartTimer) + self.selection_edit_.textChanged.connect(self._StartTimer) self.timer_=QtCore.QTimer() - QtCore.QObject.connect(self.timer_, QtCore.SIGNAL('timeout()'), - self._UpdateMessage) + self.timer_.timeout.connect(self._UpdateMessage) def GetQueryFlags(self): flags=0 @@ -103,25 +101,25 @@ class QueryEditorWidget(QtGui.QWidget): cursor.setCharFormat(self.error_font_) self.changing_text_=False -class QueryDialog(QtGui.QDialog): +class QueryDialog(QtWidgets.QDialog): def __init__(self, title, parent=None): - QtGui.QDialog.__init__(self, parent) - l=QtGui.QVBoxLayout(self) + QtWidgets.QDialog.__init__(self, parent) + l=QtWidgets.QVBoxLayout(self) self.setWindowTitle(title) self.editor=QueryEditorWidget(self) l.addWidget(self.editor) l.addSpacing(10) - l3=QtGui.QHBoxLayout() - ab=QtGui.QPushButton('OK') + l3=QtWidgets.QHBoxLayout() + ab=QtWidgets.QPushButton('OK') ab.setDefault(True) - cb=QtGui.QPushButton('Cancel') + cb=QtWidgets.QPushButton('Cancel') l3.addStretch(1) l3.addWidget(cb, 0) l3.addWidget(ab, 0) l.addLayout(l3) - QtCore.QObject.connect(cb, QtCore.SIGNAL('clicked()'), self.reject) - QtCore.QObject.connect(ab, QtCore.SIGNAL('clicked()'), self.accept) - self.connect(self.editor.selection_edit_,QtCore.SIGNAL("textChanged()"),self._CheckNewline) + cb.clicked.connect(self.reject) + ab.clicked.connect(self.accept) + self.editor.selection_edit_.textChanged.connect(self._CheckNewline) @property def query_flags(self): @@ -135,8 +133,8 @@ class QueryDialog(QtGui.QDialog): self.accept() return True else: - return QtGui.QDialog.event(self, e) + return QtWidgets.QDialog.event(self, e) def _CheckNewline(self): if self.editor.GetQueryText().endswith("\n"): - self.accept() \ No newline at end of file + self.accept() diff --git a/modules/gui/pymod/scene/remote.py b/modules/gui/pymod/scene/remote.py index 46a7553b4..cab9165a8 100644 --- a/modules/gui/pymod/scene/remote.py +++ b/modules/gui/pymod/scene/remote.py @@ -1,46 +1,41 @@ -from PyQt4.QtCore import * -from PyQt4.QtGui import * +from PyQt5 import QtCore, QtWidgets import threading from ost import LogError from ost import gui, gfx from ost.io.remote import RemoteLoad, REMOTE_REPOSITORIES import re -class RemoteLoader(QWidget): +class RemoteLoader(QtWidgets.QWidget): def __init__(self): - QWidget.__init__(self) - self._line = QLineEdit(self) - self._load = QToolButton(self) - self._load.setAttribute(Qt.WA_MacSmallSize) - QObject.connect(self._line, SIGNAL('returnPressed()'), - self._DoLoad) - QObject.connect(self._load, SIGNAL('clicked()'), - self._DoLoad) - hbox = QHBoxLayout(self) + QtWidgets.QWidget.__init__(self) + self._line = QtWidgets.QLineEdit(self) + self._load = QtWidgets.QToolButton(self) + self._line.returnPressed.connect(self._DoLoad) + self._load.clicked.connect(self._DoLoad) + hbox = QtWidgets.QHBoxLayout(self) hbox.addWidget(self._line,1) hbox.addWidget(self._load,0) self.setLayout(hbox) - hbox.setMargin(3) + hbox.setContentsMargins(3,3,3,3) hbox.setSpacing(3) self._menu = self._RemoteMenu() self._load.setMenu(self._menu) self._current_repo = 'pdb' self._UpdateLoadButton(self._current_repo) self.setFixedHeight(self._load.height()) - self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) + self.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) def _RemoteMenu(self): - menu = QMenu() - action_group = QActionGroup(menu) + menu = QtWidgets.QMenu() + action_group = QtWidgets.QActionGroup(menu) for k,v in REMOTE_REPOSITORIES.iteritems(): action = menu.addAction(v.name) action.setCheckable(True) if k == 'pdb': action.setChecked(True) - action.setData(QVariant(k)) + action.setData(QtCore.QVariant(k)) action_group.addAction(action) - QObject.connect(menu, SIGNAL('triggered(QAction*)'), - self._ToggleRepo) + menu.triggered.connect(self._ToggleRepo) return menu def _UpdateLoadButton(self, current): name = REMOTE_REPOSITORIES[current].name @@ -72,7 +67,7 @@ class RemoteLoader(QWidget): remote_loader=RemoteLoader() remote_loader_for_panel=gui.Widget(remote_loader) -remote_loader_for_panel.qobject.setSizePolicy(QSizePolicy.Expanding, - QSizePolicy.Fixed) +remote_loader_for_panel.qobject.setSizePolicy(QtWidgets.QSizePolicy.Expanding, + QtWidgets.QSizePolicy.Fixed) panels=gui.GostyApp.Instance().perspective.panels panels.AddWidgetToPool("Remote Loader",remote_loader_for_panel) diff --git a/modules/gui/pymod/scene/render_mode_widget.py b/modules/gui/pymod/scene/render_mode_widget.py index 038e0950e..31b33ddd7 100644 --- a/modules/gui/pymod/scene/render_mode_widget.py +++ b/modules/gui/pymod/scene/render_mode_widget.py @@ -20,13 +20,13 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets #Tube Render Options -class RenderModeWidget(QtGui.QWidget): +class RenderModeWidget(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.options_ = None self.entities_ = set() @@ -64,13 +64,13 @@ class RenderModeWidget(QtGui.QWidget): entity = self.entities_.pop() self.options_=entity.GetOptions(self.GetRenderMode()) self.UpdateGui(self.options_) - QtGui.QWidget.setEnabled(self,True) + QtWidgets.QWidget.setEnabled(self,True) else: - QtGui.QWidget.setEnabled(self,False) + QtWidgets.QWidget.setEnabled(self,False) def ApplyOptions(self): for entity in self.entities_: entity.ApplyOptions(self.GetRenderMode(), self.GetOptions()) def GetOptions(self): - return self.options_ \ No newline at end of file + return self.options_ diff --git a/modules/gui/pymod/scene/render_op.py b/modules/gui/pymod/scene/render_op.py index cdbb7e036..ea2b54263 100644 --- a/modules/gui/pymod/scene/render_op.py +++ b/modules/gui/pymod/scene/render_op.py @@ -20,7 +20,6 @@ from ost import info from ost import gfx -from PyQt4 import QtGui class RenderOp: RENDERMODE_ATTRIBUTE_NAME = "RenderMode" diff --git a/modules/gui/pymod/scene/render_options_widget.py b/modules/gui/pymod/scene/render_options_widget.py index f1d9929ee..90cc213e8 100644 --- a/modules/gui/pymod/scene/render_options_widget.py +++ b/modules/gui/pymod/scene/render_options_widget.py @@ -28,7 +28,7 @@ try: except ImportError: _img_present=False pass -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from scene_selection_helper import SelHelper from combo_options_widget import ComboOptionsWidget from custom_widget import CustomWidget @@ -47,11 +47,11 @@ class RenderOptionsWidget(ComboOptionsWidget): #Title self.text_ = "Render Options" - self.keep_action_ = QtGui.QAction("K",self) + self.keep_action_ = QtWidgets.QAction("K",self) self.keep_action_.setCheckable(True); self.keep_action_.setChecked(False) self.keep_action_.setToolTip("Keep rendermodes and add current") - self.keep_button_ = QtGui.QToolButton(self) + self.keep_button_ = QtWidgets.QToolButton(self) self.keep_button_.setDefaultAction(self.keep_action_) self.grid_layout_.addWidget(self.keep_button_, 0, 1, 1, 1) @@ -157,19 +157,19 @@ class RenderOptionsWidget(ComboOptionsWidget): def GetText(self): return self.text_ -class EmptyMode(QtGui.QWidget): +class EmptyMode(QtWidgets.QWidget): def __init__(self, text="", render_mode=None, parent=None): - QtGui.QLabel.__init__(self, parent) + QtWidgets.QLabel.__init__(self, parent) self.setMinimumSize(250,30) self.text = text self.render_mode = render_mode if(render_mode): - text_label = QtGui.QLabel(text) + text_label = QtWidgets.QLabel(text) font = text_label.font() font.setBold(True) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(text_label,0,0,1,1) - grid.addWidget(QtGui.QLabel("No Settings available"), 1, 0, 1, 3) + grid.addWidget(QtWidgets.QLabel("No Settings available"), 1, 0, 1, 3) grid.setRowStretch(2,1) self.setLayout(grid) self.setMinimumSize(250,60) diff --git a/modules/gui/pymod/scene/simple_widget.py b/modules/gui/pymod/scene/simple_widget.py index 1c9c337e9..53e172afd 100644 --- a/modules/gui/pymod/scene/simple_widget.py +++ b/modules/gui/pymod/scene/simple_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Simple Render Options @@ -41,30 +41,30 @@ class SimpleWidget(RenderModeWidget): self.mode_ = gfx.RenderMode.SIMPLE #Create Ui elements - self.aa_rendering_cb_ = QtGui.QCheckBox() + self.aa_rendering_cb_ = QtWidgets.QCheckBox() - self.radius_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_spinbox_.setRange(min_line_width, max_line_width) self.radius_spinbox_.setDecimals(2) self.radius_spinbox_.setSingleStep(0.1) - self.bo_rendering_cb_ = QtGui.QCheckBox() + self.bo_rendering_cb_ = QtWidgets.QCheckBox() - self.bo_distance_spinbox_ = QtGui.QDoubleSpinBox() + self.bo_distance_spinbox_ = QtWidgets.QDoubleSpinBox() self.bo_distance_spinbox_.setRange(min_bo_dist, max_bo_dist) self.bo_distance_spinbox_.setDecimals(2) self.bo_distance_spinbox_.setSingleStep(0.01) - simple_label = QtGui.QLabel("Fast Bonds Simple Settings") + simple_label = QtWidgets.QLabel("Fast Bonds Simple Settings") font = simple_label.font() font.setBold(True) - radius_label = QtGui.QLabel("Line Width") - aa_label = QtGui.QLabel("AA-Lines") - bo_label = QtGui.QLabel("Show Bond Order") - bo_distance = QtGui.QLabel("Bond Order Distance") + radius_label = QtWidgets.QLabel("Line Width") + aa_label = QtWidgets.QLabel("AA-Lines") + bo_label = QtWidgets.QLabel("Show Bond Order") + bo_distance = QtWidgets.QLabel("Bond Order Distance") - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(simple_label,0,0,1,3) grid.addWidget(aa_label, 1, 0, 1, 3) grid.addWidget(self.aa_rendering_cb_, 1, 2, 1, 1) @@ -77,10 +77,10 @@ class SimpleWidget(RenderModeWidget): grid.setRowStretch(5,1) self.setLayout(grid) - QtCore.QObject.connect(self.radius_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLineWidth) - QtCore.QObject.connect(self.aa_rendering_cb_, QtCore.SIGNAL("stateChanged(int)"), self.UpdateAA) - QtCore.QObject.connect(self.bo_distance_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateBODistance) - QtCore.QObject.connect(self.bo_rendering_cb_, QtCore.SIGNAL("stateChanged(int)"), self.UpdateBO) + self.radius_spinbox_.valueChanged.connect(self.UpdateLineWidth) + self.aa_rendering_cb_.stateChanged.connect(self.UpdateAA) + self.bo_distance_spinbox_.valueChanged.connect(self.UpdateBODistance) + self.bo_rendering_cb_.stateChanged.connect(self.UpdateBO) self.setMinimumSize(250,140) self.setMinimumSize(250,140) @@ -111,4 +111,4 @@ class SimpleWidget(RenderModeWidget): return self.text_ def GetRenderMode(self): - return self.mode_ \ No newline at end of file + return self.mode_ diff --git a/modules/gui/pymod/scene/sline_widget.py b/modules/gui/pymod/scene/sline_widget.py index 063a81e33..c42f2f98f 100644 --- a/modules/gui/pymod/scene/sline_widget.py +++ b/modules/gui/pymod/scene/sline_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Simple Render Options @@ -42,25 +42,25 @@ class SlineWidget(RenderModeWidget): max_line_width = 20 #Create Ui elements - self.detail_spinbox_ = QtGui.QSpinBox() + self.detail_spinbox_ = QtWidgets.QSpinBox() self.detail_spinbox_.setRange(min_detail, max_detail) self.detail_spinbox_.setSingleStep(1) - self.aa_rendering_cb_ = QtGui.QCheckBox() + self.aa_rendering_cb_ = QtWidgets.QCheckBox() - self.radius_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_spinbox_.setRange(min_line_width, max_line_width) self.radius_spinbox_.setDecimals(2) self.radius_spinbox_.setSingleStep(0.1) - sline_label = QtGui.QLabel("Spline Settings") + sline_label = QtWidgets.QLabel("Spline Settings") font = sline_label.font() font.setBold(True) - detail_label = QtGui.QLabel("Spline Detail") - aa_label = QtGui.QLabel("AA-Lines") - radius_label = QtGui.QLabel("Line Width") - grid = QtGui.QGridLayout() + detail_label = QtWidgets.QLabel("Spline Detail") + aa_label = QtWidgets.QLabel("AA-Lines") + radius_label = QtWidgets.QLabel("Line Width") + grid = QtWidgets.QGridLayout() grid.addWidget(sline_label, 0, 0, 1, 1) grid.addWidget(detail_label, 1, 0, 1, 3) grid.addWidget(self.detail_spinbox_, 1, 2, 1, 1) @@ -71,9 +71,9 @@ class SlineWidget(RenderModeWidget): grid.setRowStretch(4,1) self.setLayout(grid) - QtCore.QObject.connect(self.detail_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateDetail) - QtCore.QObject.connect(self.aa_rendering_cb_, QtCore.SIGNAL("stateChanged(int)"), self.UpdateAA) - QtCore.QObject.connect(self.radius_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLineWidth) + self.detail_spinbox_.valueChanged.connect(self.UpdateDetail) + self.aa_rendering_cb_.stateChanged.connect(self.UpdateAA) + self.radius_spinbox_.valueChanged.connect(self.UpdateLineWidth) self.setMinimumSize(250,120) diff --git a/modules/gui/pymod/scene/toolbar_options_widget.py b/modules/gui/pymod/scene/toolbar_options_widget.py index fc4720493..55e45b046 100644 --- a/modules/gui/pymod/scene/toolbar_options_widget.py +++ b/modules/gui/pymod/scene/toolbar_options_widget.py @@ -21,36 +21,35 @@ import sys from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui -class ToolBarOptionsWidget(QtGui.QWidget): +class ToolBarOptionsWidget(QtWidgets.QWidget): """QWidget with a ToolBar and a show area. This abstract QWidget has a toolbar and a show area. Whenever a button of the tool bar is pressed, the Widget corresponding to the button's value is shown in the show area. """ def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Setup ui_ self.parent_=parent self.resize(400, 300) self.setMinimumSize(QtCore.QSize(250, 200)) - self.gridLayout = QtGui.QGridLayout(self) + self.gridLayout = QtWidgets.QGridLayout(self) self.gridLayout.setHorizontalSpacing(0) self.gridLayout.setVerticalSpacing(0) self.gridLayout.setContentsMargins(0,0,0,0) - self.gridLayout.setMargin(0) self.gridLayout.setSpacing(0) - self.tool_bar_ = QtGui.QToolBar(self) + self.tool_bar_ = QtWidgets.QToolBar(self) self.tool_bar_.setIconSize(QtCore.QSize(16, 16)) self.gridLayout.addWidget(self.tool_bar_, 0, 0, 1, 1) - self.stackedWidget = QtGui.QStackedWidget(self) + self.stackedWidget = QtWidgets.QStackedWidget(self) self.gridLayout.addWidget(self.stackedWidget, 1, 0, 1, 1) self.current_action_ = None self.actions_ = list() - QtCore.QObject.connect(self.tool_bar_, QtCore.SIGNAL("actionTriggered(QAction*)"), self.ChangeSelectedItem) + self.tool_bar_.actionTriggered.connect(self.ChangeSelectedItem) self.setEnabled(False) @@ -74,13 +73,13 @@ class ToolBarOptionsWidget(QtGui.QWidget): the old widget will be removed and the new widget gets the identifier. Returns True, if widget is added. Otherwise it returns False """ - if isinstance(widget, QtGui.QWidget) and ident is not None: + if isinstance(widget, QtWidgets.QWidget) and ident is not None: if text is not None: - string = QtCore.QString(text) + string = text elif hasattr(widget, "GetText"): - string = QtCore.QString(widget.GetText()) + string = widget.GetText() else: - string = QtCore.QString(ident) + string = ident self.stackedWidget.addWidget(widget) action = self.tool_bar_.addAction(ident) @@ -124,7 +123,7 @@ class ToolBarOptionsWidget(QtGui.QWidget): self.current_action_.setChecked(False) else: self.current_action_ = action - widget = action.data().toPyObject()[1] + widget = action.data()[1] self.stackedWidget.setCurrentWidget(widget) if hasattr(widget, "Update"): widget.Update() @@ -139,5 +138,5 @@ class ToolBarOptionsWidget(QtGui.QWidget): #Overwritten Methods def setEnabled(self, bool): - QtGui.QWidget.setEnabled(self, bool) + QtWidgets.QWidget.setEnabled(self, bool) diff --git a/modules/gui/pymod/scene/trace_widget.py b/modules/gui/pymod/scene/trace_widget.py index 7dcb0342a..8705d18d8 100644 --- a/modules/gui/pymod/scene/trace_widget.py +++ b/modules/gui/pymod/scene/trace_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Trace Render Options @@ -44,25 +44,25 @@ class TraceWidget(RenderModeWidget): #########UI########## #Arc Label - arc_label = QtGui.QLabel("Arc Detail") + arc_label = QtWidgets.QLabel("Arc Detail") - self.arc_spinbox_ = QtGui.QSpinBox() + self.arc_spinbox_ = QtWidgets.QSpinBox() self.arc_spinbox_.setRange(min_arc_detail, max_arc_detail) #Tube Radius - radius_tube_label = QtGui.QLabel("Radius") + radius_tube_label = QtWidgets.QLabel("Radius") - self.width_tube_spinbox_ = QtGui.QDoubleSpinBox() + self.width_tube_spinbox_ = QtWidgets.QDoubleSpinBox() self.width_tube_spinbox_.setRange(min_width, max_tube_width) self.width_tube_spinbox_.setDecimals(1) self.width_tube_spinbox_.setSingleStep(0.1) - self.width_tube_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.width_tube_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.width_tube_slider_.setRange(min_width*10.0, max_tube_width*10.0) - self.width_tube_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.width_tube_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.width_tube_slider_.setTickInterval(1) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(arc_label,3,0,1,3) grid.addWidget(self.arc_spinbox_,3,4,1,1) @@ -73,15 +73,9 @@ class TraceWidget(RenderModeWidget): grid.setRowStretch(15,1) self.setLayout(grid) - QtCore.QObject.connect(self.arc_spinbox_, QtCore.SIGNAL("valueChanged(int)"), - self.UpdateArcDetail) - - QtCore.QObject.connect(self.width_tube_spinbox_, - QtCore.SIGNAL("valueChanged(double)"), - self.UpdateTubeRadius) - QtCore.QObject.connect(self.width_tube_slider_, - QtCore.SIGNAL("valueChanged(int)"), - self.UpdateSliderTubeRadius) + self.arc_spinbox_.valueChanged.connect(self.UpdateArcDetail) + self.width_tube_spinbox_.valueChanged.connect(self.UpdateTubeRadius) + self.width_tube_slider_.valueChanged.connect(self.UpdateSliderTubeRadius) self.setMinimumSize(250,60) #2*30 ########/UI######## diff --git a/modules/gui/pymod/scene/tube_widget.py b/modules/gui/pymod/scene/tube_widget.py index 561728800..682fd0b05 100644 --- a/modules/gui/pymod/scene/tube_widget.py +++ b/modules/gui/pymod/scene/tube_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets from render_mode_widget import RenderModeWidget #Tube Render Options @@ -48,57 +48,57 @@ class TubeWidget(RenderModeWidget): max_ratio = 4 #UI - tube_label = QtGui.QLabel("Tube Settings") + tube_label = QtWidgets.QLabel("Tube Settings") font = tube_label.font() font.setBold(True) #Poly Mode - poly_mode_label = QtGui.QLabel("Poly Mode") + poly_mode_label = QtWidgets.QLabel("Poly Mode") - self.poly_mode_cb_ = QtGui.QComboBox() + self.poly_mode_cb_ = QtWidgets.QComboBox() self.poly_mode_cb_.addItem("Points") self.poly_mode_cb_.addItem("Wireframe") self.poly_mode_cb_.addItem("Surface") #Sphere Label - spline_label = QtGui.QLabel("Spline Detail") + spline_label = QtWidgets.QLabel("Spline Detail") - self.spline_spinbox_ = QtGui.QSpinBox() + self.spline_spinbox_ = QtWidgets.QSpinBox() self.spline_spinbox_.setRange(min_spline_detail, max_spline_detail) #Arc Label - arc_label = QtGui.QLabel("Arc Detail") + arc_label = QtWidgets.QLabel("Arc Detail") - self.arc_spinbox_ = QtGui.QSpinBox() + self.arc_spinbox_ = QtWidgets.QSpinBox() self.arc_spinbox_.setRange(min_arc_detail, max_arc_detail) #Radius - radius_label = QtGui.QLabel("Tube radius") + radius_label = QtWidgets.QLabel("Tube radius") - self.radius_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_spinbox_.setRange(min_radius, max_radius) self.radius_spinbox_.setDecimals(1) self.radius_spinbox_.setSingleStep(0.1) - self.radius_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.radius_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.radius_slider_.setRange(min_radius*10.0, max_radius*10.0) - self.radius_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.radius_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.radius_slider_.setTickInterval(1) #Ratio - ratio_label = QtGui.QLabel("Tube ratio") + ratio_label = QtWidgets.QLabel("Tube ratio") - self.ratio_spinbox_ = QtGui.QDoubleSpinBox() + self.ratio_spinbox_ = QtWidgets.QDoubleSpinBox() self.ratio_spinbox_.setRange(min_ratio, max_ratio) self.ratio_spinbox_.setDecimals(1) self.ratio_spinbox_.setSingleStep(0.1) - self.ratio_slider_ = QtGui.QSlider(QtCore.Qt.Horizontal, self) + self.ratio_slider_ = QtWidgets.QSlider(QtCore.Qt.Horizontal, self) self.ratio_slider_.setRange(min_ratio*10.0, max_ratio*10.0) - self.ratio_slider_.setTickPosition(QtGui.QSlider.NoTicks) + self.ratio_slider_.setTickPosition(QtWidgets.QSlider.NoTicks) self.ratio_slider_.setTickInterval(2) - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(tube_label,0,0,1,3) grid.addWidget(poly_mode_label,1,0,1,3) grid.addWidget(self.poly_mode_cb_,1,3,1,2) @@ -115,13 +115,13 @@ class TubeWidget(RenderModeWidget): grid.setRowStretch(6,1) self.setLayout(grid) - QtCore.QObject.connect(self.spline_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSplineDetail) - QtCore.QObject.connect(self.arc_spinbox_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateArcDetail) - QtCore.QObject.connect(self.poly_mode_cb_, QtCore.SIGNAL("currentIndexChanged(int)"), self.UpdatePolyMode) - QtCore.QObject.connect(self.radius_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateRadius) - QtCore.QObject.connect(self.radius_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderRadius) - QtCore.QObject.connect(self.ratio_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateRatio) - QtCore.QObject.connect(self.ratio_slider_, QtCore.SIGNAL("valueChanged(int)"), self.UpdateSliderRatio) + self.spline_spinbox_.valueChanged.connect(self.UpdateSplineDetail) + self.arc_spinbox_.valueChanged.connect(self.UpdateArcDetail) + self.poly_mode_cb_.currentIndexChanged.connect(self.UpdatePolyMode) + self.radius_spinbox_.valueChanged.connect(self.UpdateRadius) + self.radius_slider_.valueChanged.connect(self.UpdateSliderRadius) + self.ratio_spinbox_.valueChanged.connect(self.UpdateRatio) + self.ratio_slider_.valueChanged.connect(self.UpdateSliderRatio) self.setMinimumSize(250,200) diff --git a/modules/gui/pymod/scene/uniform_color_widget.py b/modules/gui/pymod/scene/uniform_color_widget.py index 66461dcff..2459cbc4c 100644 --- a/modules/gui/pymod/scene/uniform_color_widget.py +++ b/modules/gui/pymod/scene/uniform_color_widget.py @@ -27,27 +27,27 @@ try: except ImportError: _img_present=False pass -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets, QtGui from color_select_widget import ColorSelectWidget #Uniform Color Widget -class UniformColorWidget(QtGui.QWidget): +class UniformColorWidget(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) self.parent_ = parent self.text_ = "Uniform Color" #Create Ui elements - uniform_label = QtGui.QLabel(self.text_) + uniform_label = QtWidgets.QLabel(self.text_) font = uniform_label.font() font.setBold(True) self.color_select_widget_ = ColorSelectWidget(1,1,QtGui.QColor("White")) - top_layout = QtGui.QVBoxLayout() + top_layout = QtWidgets.QVBoxLayout() - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(self.color_select_widget_, 2, 1, 1, 1) grid.setRowStretch(1, 1) grid.setRowStretch(3, 1) @@ -58,7 +58,7 @@ class UniformColorWidget(QtGui.QWidget): top_layout.addLayout(grid) self.setLayout(top_layout) - QtCore.QObject.connect(self.color_select_widget_, QtCore.SIGNAL("colorChanged"), self.ChangeColors) + self.color_select_widget_.colorChanged.connect(self.ChangeColors) self.setMinimumSize(250,150) diff --git a/modules/gui/pymod/scene/visibility_op.py b/modules/gui/pymod/scene/visibility_op.py index 9e7402dc1..4b5fc7fb8 100644 --- a/modules/gui/pymod/scene/visibility_op.py +++ b/modules/gui/pymod/scene/visibility_op.py @@ -20,7 +20,6 @@ from ost import info from ost import gfx -from PyQt4 import QtGui class VisibilityOp: VISIBLE_ATTRIBUTE_NAME = "Visible" diff --git a/modules/gui/pymod/scene/wireframe_widget.py b/modules/gui/pymod/scene/wireframe_widget.py index 35175222a..458a8f09b 100644 --- a/modules/gui/pymod/scene/wireframe_widget.py +++ b/modules/gui/pymod/scene/wireframe_widget.py @@ -20,7 +20,7 @@ from ost import gui from ost import gfx -from PyQt4 import QtCore, QtGui +from PyQt5 import QtCore, QtWidgets try: from ost import img _img_present=True @@ -30,9 +30,9 @@ except ImportError: from scene_selection_helper import SelHelper #Wireframe Options -class WireframeWidget(QtGui.QWidget): +class WireframeWidget(QtWidgets.QWidget): def __init__(self, parent=None): - QtGui.QWidget.__init__(self, parent) + QtWidgets.QWidget.__init__(self, parent) #Title self.text_ = "Wireframe" @@ -45,21 +45,21 @@ class WireframeWidget(QtGui.QWidget): self.mode_ = gfx.RenderMode.SIMPLE #Create Ui elements - self.aa_rendering_cb_ = QtGui.QCheckBox() + self.aa_rendering_cb_ = QtWidgets.QCheckBox() - self.radius_spinbox_ = QtGui.QDoubleSpinBox() + self.radius_spinbox_ = QtWidgets.QDoubleSpinBox() self.radius_spinbox_.setRange(min_line_width, max_line_width) self.radius_spinbox_.setDecimals(2) self.radius_spinbox_.setSingleStep(0.1) - simple_label = QtGui.QLabel("Wireframe Settings") + simple_label = QtWidgets.QLabel("Wireframe Settings") font = simple_label.font() font.setBold(True) - radius_label = QtGui.QLabel("Line Width") - aa_label = QtGui.QLabel("AA-Lines") + radius_label = QtWidgets.QLabel("Line Width") + aa_label = QtWidgets.QLabel("AA-Lines") - grid = QtGui.QGridLayout() + grid = QtWidgets.QGridLayout() grid.addWidget(simple_label,0,0,1,3) grid.addWidget(aa_label, 1, 0, 1, 3) grid.addWidget(self.aa_rendering_cb_, 1, 2, 1, 1) @@ -68,8 +68,8 @@ class WireframeWidget(QtGui.QWidget): grid.setRowStretch(5,1) self.setLayout(grid) - QtCore.QObject.connect(self.radius_spinbox_, QtCore.SIGNAL("valueChanged(double)"), self.UpdateLineWidth) - QtCore.QObject.connect(self.aa_rendering_cb_, QtCore.SIGNAL("stateChanged(int)"), self.UpdateAA) + self.radius_spinbox_.valueChanged.connect(self.UpdateLineWidth) + self.aa_rendering_cb_.stateChanged.connect(self.UpdateAA) self.setMinimumSize(250,100) @@ -100,4 +100,4 @@ class WireframeWidget(QtGui.QWidget): return self.text_ def GetRenderMode(self): - return self.mode_ \ No newline at end of file + return self.mode_ diff --git a/modules/gui/pymod/sip_handler.hh b/modules/gui/pymod/sip_handler.hh index bdc43461f..a244bdf82 100644 --- a/modules/gui/pymod/sip_handler.hh +++ b/modules/gui/pymod/sip_handler.hh @@ -38,10 +38,10 @@ template <class O> object get_py_qobject(O* cpp_object) { if (cpp_object != NULL){ static object sip_module=import("sip"); - static object pyqt4_module=import("PyQt4.QtCore"); + static object pyqt5_module=import("PyQt5.QtCore"); QObject* qobject = qobject_cast<QObject*>(cpp_object); unsigned long addr = reinterpret_cast<unsigned long>(qobject); - object py_qobject = pyqt4_module.attr("QObject"); + object py_qobject = pyqt5_module.attr("QObject"); object object = sip_module.attr("wrapinstance")(addr, py_qobject); return object; } diff --git a/modules/gui/pymod/table.py b/modules/gui/pymod/table.py index 94f1c6418..d45b5d74e 100644 --- a/modules/gui/pymod/table.py +++ b/modules/gui/pymod/table.py @@ -1,5 +1,5 @@ -from PyQt4.QtGui import * -from PyQt4.QtCore import * +from PyQt5.QtGui import * +from PyQt5.QtCore import * from ost import table __all__=('Table', ) diff --git a/modules/gui/pymod/trajectory_viewer.py b/modules/gui/pymod/trajectory_viewer.py index 0741f98fb..6a5189233 100644 --- a/modules/gui/pymod/trajectory_viewer.py +++ b/modules/gui/pymod/trajectory_viewer.py @@ -23,16 +23,13 @@ __all__=('TrajWidget','SetTimeUnit','AddTrajectory','RemoveTrajectory','SetSpeed # along with this library; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #------------------------------------------------------------------------------- -#from PyQt4.QtCore import * -#from PyQt4.QtGui import * -import PyQt4 as _PyQt4 -from PyQt4.QtCore import Qt as _Qt -from PyQt4.QtCore import QObject as _QObject -from PyQt4.QtGui import QWidget as _QWidget -from PyQt4.QtGui import QLabel as _QLabel -from PyQt4.QtGui import QPushButton as _QPushButton -from PyQt4.QtCore import SIGNAL as _SIGNAL -from PyQt4.QtCore import QString as _QString +#from PyQt5.QtCore import * +#from PyQt5.QtGui import * +import PyQt5 as _PyQt5 +from PyQt5.QtCore import Qt as _Qt +from PyQt5.QtWidgets import QWidget as _QWidget +from PyQt5.QtWidgets import QLabel as _QLabel +from PyQt5.QtWidgets import QPushButton as _QPushButton import ost as _ost import math as _math @@ -50,22 +47,22 @@ class TrajWidget(_QWidget): self.modifiers=None for i,go in enumerate(self.golist_): self.index_dict[go.name]=i - vb=_PyQt4.QtGui.QVBoxLayout() - hb=_PyQt4.QtGui.QHBoxLayout() - hb1=_PyQt4.QtGui.QHBoxLayout() - hb2=_PyQt4.QtGui.QHBoxLayout() - hb3=_PyQt4.QtGui.QHBoxLayout() - hb4=_PyQt4.QtGui.QHBoxLayout() + vb=_PyQt5.QtGui.QVBoxLayout() + hb=_PyQt5.QtGui.QHBoxLayout() + hb1=_PyQt5.QtGui.QHBoxLayout() + hb2=_PyQt5.QtGui.QHBoxLayout() + hb3=_PyQt5.QtGui.QHBoxLayout() + hb4=_PyQt5.QtGui.QHBoxLayout() self.callback=None - self._slider=_PyQt4.QtGui.QSlider(self) + self._slider=_PyQt5.QtGui.QSlider(self) self._slider.setOrientation(_Qt.Horizontal) - self._speed_slider=_PyQt4.QtGui.QSlider(self) + self._speed_slider=_PyQt5.QtGui.QSlider(self) self._speed_slider.setOrientation(_Qt.Horizontal) self._speedLabel=_QLabel(self) self._speedLabel.setText('Speed:') self._speedLabel.setAlignment(_Qt.AlignLeft) - self._play=_PyQt4.QtGui.QToolButton(self) - self._repeat=_PyQt4.QtGui.QCheckBox(self) + self._play=_PyQt5.QtGui.QToolButton(self) + self._repeat=_PyQt5.QtGui.QCheckBox(self) self._frame=_QLabel(self) self._frameNo=_QLabel(self) self._frameEnd=_QLabel(self) @@ -96,11 +93,11 @@ class TrajWidget(_QWidget): self._left_arrow=_QPushButton("<") self._left_arrow2=_QPushButton("<<") self._left_end=_QPushButton("|<") - self._align_selection=_PyQt4.QtGui.QLineEdit() + self._align_selection=_PyQt5.QtGui.QLineEdit() self._align=_QPushButton("Align") self._align_label=_QLabel(self) self._align_label.setText('Selection:') - self._ref_entity_selection=_PyQt4.QtGui.QComboBox() + self._ref_entity_selection=_PyQt5.QtGui.QComboBox() for go in self.golist_:self._ref_entity_selection.addItem(go.name) self._ref_entity_selection_label=_QLabel(self) self._ref_entity_selection_label.setText('Ref. Entity:') @@ -134,19 +131,17 @@ class TrajWidget(_QWidget): vb.addLayout(hb3) vb.addLayout(hb4) self._SetSpeedSliderPos(self._speed_slider_min+0.5*(self._speed_slider_max-self._speed_slider_min)) - _QObject.connect(self._play, _SIGNAL('toggled(bool)'), - self._TogglePlay) - _QObject.connect(self._slider, _SIGNAL('valueChanged(int)'), - self._SliderValueChanged) - _QObject.connect(self._speed_slider,_SIGNAL('valueChanged(int)'),self._SpeedSliderValChanged) - _QObject.connect(self._right_end,_SIGNAL('clicked()'),self._RightEndClicked) - _QObject.connect(self._right_arrow2,_SIGNAL('clicked()'),self._Right2Clicked) - _QObject.connect(self._right_arrow,_SIGNAL('clicked()'),self._RightClicked) - _QObject.connect(self._left_arrow2,_SIGNAL('clicked()'),self._Left2Clicked) - _QObject.connect(self._left_arrow,_SIGNAL('clicked()'),self._LeftClicked) - _QObject.connect(self._left_end,_SIGNAL('clicked()'),self._LeftEndClicked) - _QObject.connect(self._align, _SIGNAL('clicked()'), self._AlignClicked) - _QObject.connect(self._ref_entity_selection, _SIGNAL('currentIndexChanged(int)'), self._EntitySelected) + self._play.toggled.connect(self._TogglePlay) + self._slider.valueChanged.connect(self._SliderValueChanged) + self._speed_slider.valueChanged.connect(self._SpeedSliderValChanged) + self._right_end.clicked.connect(self._RightEndClicked) + self._right_arrow2.clicked.connect(self._Right2Clicked) + self._right_arrow.clicked.connect(self._RightClicked) + self._left_arrow2.clicked.connect(self._Left2Clicked) + self._left_arrow.clicked.connect(self._LeftClicked) + self._left_end.clicked.connect(self._LeftEndClicked) + self._align.clicked.connect(self._AlignClicked) + self._ref_entity_selection.currentIndexChanged.connect(self._EntitySelected) self._slider.setMinimum(0) self.frame_number_=self.traj_.GetFrameCount()-1 self.timestep_=self.traj_.GetDelta() diff --git a/modules/gui/pymod/transfer_ownership.hh b/modules/gui/pymod/transfer_ownership.hh index 5146c065b..63da0b4c7 100644 --- a/modules/gui/pymod/transfer_ownership.hh +++ b/modules/gui/pymod/transfer_ownership.hh @@ -13,7 +13,7 @@ namespace ost { namespace gui { inline void TransferOwnership(QWidget* obj) { boost::python::object main_module=boost::python::import("__main__"); - boost::python::object qt_gui=boost::python::import("PyQt4.QtGui"); + boost::python::object qt_gui=boost::python::import("PyQt5.QtGui"); boost::python::object pobj(reinterpret_cast<unsigned long>(obj)); boost::python::object sip=main_module.attr("sip"); boost::python::object type=qt_gui.attr("QWidget"); diff --git a/modules/gui/src/CMakeLists.txt b/modules/gui/src/CMakeLists.txt index 858a64fec..5a6e33049 100644 --- a/modules/gui/src/CMakeLists.txt +++ b/modules/gui/src/CMakeLists.txt @@ -443,8 +443,8 @@ if (APPLE) endif() set(QT_USE_QTOPENGL 1) set(QT_USE_QTNETWORK 1) -include(${QT_USE_FILE}) -qt4_wrap_cpp(OST_GUI_MOCS "${HEADERS_TO_BE_MOCCED}" + +qt5_wrap_cpp(OST_GUI_MOCS "${HEADERS_TO_BE_MOCCED}" OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) module(NAME gui SOURCES ${OST_GUI_MOCS} ${OST_GUI_SOURCES} @@ -458,24 +458,28 @@ module(NAME gui SOURCES ${OST_GUI_MOCS} ${OST_GUI_SOURCES} ${OST_GUI_DATA_VIEWER_HEADERS} ${OST_GUI_HEADERS} DEPENDS_ON ost_gfx ost_io ost_mol_alg ost_seq_alg - LINK ${QT_LIBRARIES} ${PYTHON_LIBRARIES} ${BOOST_PYTHON_LIBRARIES} + LINK Qt5::Core Qt5::Gui Qt5::Widgets Qt5::OpenGL Qt5::PrintSupport Qt5::Core Qt5::Gui Qt5::Widgets Qt5::OpenGL Qt5::PrintSupport + ${PYTHON_LIBRARIES} + ${BOOST_PYTHON_LIBRARIES} ${SPNAV_LIBRARIES} NO_STATIC) - + + + if (ADDITIONAL_LIBRARIES) target_link_libraries(ost_gui "${ADDITIONAL_LIBRARIES}") endif() include_directories(${PYTHON_INCLUDE_PATH}) -qt4_add_resources(OST_QT_RESOURCE dngr.qrc) -qt4_wrap_cpp(OST_GOSTY_MOC "gosty.hh" +qt5_add_resources(OST_QT_RESOURCE dngr.qrc) +qt5_wrap_cpp(OST_GOSTY_MOC "gosty.hh" OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED -DBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -set(LINK LINK ${BOOST_PROGRAM_OPTIONS_LIBRARIES}) +set(LINK LINK Qt5::Core Qt5::Gui Qt5::Widgets Qt5::OpenGL Qt5::PrintSupport Qt5::Core Qt5::Gui Qt5::Widgets Qt5::OpenGL Qt5::PrintSupport ${BOOST_PROGRAM_OPTIONS_LIBRARIES}) -executable_libexec(NAME gosty SOURCES gosty.cc ${OST_GOSTY_MOC} ${OST_QT_RESOURCE} - DEPENDS_ON ost_gui ${LINK}) +executable_libexec(NAME gosty SOURCES gosty.cc ${OST_GOSTY_MOC} + ${OST_QT_RESOURCE} DEPENDS_ON ost_gui ${LINK}) file(GLOB MOC_CXX_FILES moc_*.cxx) diff --git a/modules/gui/src/file_viewer.cc b/modules/gui/src/file_viewer.cc index a5c5d7271..3d64433a9 100644 --- a/modules/gui/src/file_viewer.cc +++ b/modules/gui/src/file_viewer.cc @@ -24,7 +24,7 @@ #include <QMainWindow> #include <QSyntaxHighlighter> #include <QTextEdit> -#include <QtGui> +#include <QVBoxLayout> namespace ost { namespace gui { diff --git a/modules/gui/src/gl_canvas.cc b/modules/gui/src/gl_canvas.cc index 9e39789b9..83dd63ccc 100644 --- a/modules/gui/src/gl_canvas.cc +++ b/modules/gui/src/gl_canvas.cc @@ -52,8 +52,8 @@ namespace ost { namespace gui { using gfx::Scene; -GLCanvas::GLCanvas(GLWin* gl_win, QWidget* parent, const QGLFormat& f): - QGLWidget(f,parent), +GLCanvas::GLCanvas(GLWin* gl_win, QWidget* parent, const QSurfaceFormat& f): + QOpenGLWidget(parent), glwin_(gl_win), mouse_key_mask_(), refresh_(true), @@ -64,12 +64,13 @@ GLCanvas::GLCanvas(GLWin* gl_win, QWidget* parent, const QGLFormat& f): show_beacon_(false), angular_speed_(0.0) { - if(!isValid()) return; + this->setFormat(f); master_timer_.start(10,this); setFocusPolicy(Qt::StrongFocus); setMouseTracking(true); scene_menu_=new SceneMenu(); this->setContextMenuPolicy(Qt::CustomContextMenu); + this->setAutoFillBackground(false); connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(RequestContextMenu(const QPoint&))); #if QT_VERSION >= 0x040600 @@ -84,7 +85,7 @@ bool GLCanvas::event(QEvent* event) return this->GestureEvent(static_cast<QGestureEvent*>(event)); } #endif - return QGLWidget::event(event); + return QOpenGLWidget::event(event); } @@ -176,7 +177,7 @@ void GLCanvas::wheelEvent(QWheelEvent* event) } bool GLCanvas::IsToolEvent(QInputEvent* event) const { - return event->modifiers() & Qt::ControlModifier; + return (event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier; } MouseEvent::Buttons GLCanvas::TranslateButtons(Qt::MouseButtons buttons) const @@ -464,7 +465,7 @@ void GLCanvas::keyReleaseEvent(QKeyEvent* event) emit ReleaseFocus(); return; } - QGLWidget::keyReleaseEvent(event); + QOpenGLWidget::keyReleaseEvent(event); } #ifndef _MSC_VER @@ -500,7 +501,7 @@ void GLCanvas::timerEvent(QTimerEvent * event) if(refresh_ || bench_flag_) { refresh_=false; master_timer_.stop(); - this->updateGL(); + this->update(); master_timer_.start(10,this); } diff --git a/modules/gui/src/gl_canvas.hh b/modules/gui/src/gl_canvas.hh index dbc879e91..152f18fc3 100644 --- a/modules/gui/src/gl_canvas.hh +++ b/modules/gui/src/gl_canvas.hh @@ -29,30 +29,37 @@ // Qt includes must come last -#include <QGLWidget> +#include <QOpenGLWidget> +#include <QOpenGLContext> +#include <QOpenGLFunctions> +#include <QSurfaceFormat> #include <QBasicTimer> class QMenu; class QMouseEvent; +#if QT_VERSION >= 0x040600 +class QGestureEvent; +#endif + namespace ost { namespace gui { class GLCanvas; class GLWin; -class DLLEXPORT_OST_GUI GLCanvas : public QGLWidget, public gfx::GLWinBase +class DLLEXPORT_OST_GUI GLCanvas : public QOpenGLWidget, public gfx::GLWinBase { Q_OBJECT; public: GLCanvas(GLWin *gl_win, QWidget* parent, - const QGLFormat& f = QGLFormat::defaultFormat()); + const QSurfaceFormat& f = QSurfaceFormat::defaultFormat()); // gfx::GLWinBase interface virtual void MakeActive(); virtual void DoRefresh(); virtual void StatusMessage(const String& m); virtual bool HasStereo() const {return format().stereo();}; - virtual bool HasMultisample() const {return format().sampleBuffers();} + virtual bool HasMultisample() const {return format().samples() > 1;} // central point for sending input to the gfx layer void OnTransform(gfx::InputCommand, int indx, diff --git a/modules/gui/src/gl_win.cc b/modules/gui/src/gl_win.cc index fc584da9b..aa4925897 100644 --- a/modules/gui/src/gl_win.cc +++ b/modules/gui/src/gl_win.cc @@ -58,59 +58,33 @@ gl_canvas_(NULL) if(try_stereo) { LOG_VERBOSE("GLCanvas: trying stereo visuals first"); - for(int format_id=4;format_id>=0;--format_id) { - QGLFormat format=GLWin::CreateFormat(format_id); - if (try_stereo) { - format.setStereo(true); - } - gl_canvas_=new GLCanvas(this, main, format); - if(gl_canvas_->isValid() && gl_canvas_->format().stereo()) { - break; // format is fine - } else { - delete gl_canvas_; // delete this canvas and try a less sophisticated format - gl_canvas_=0; - } - } + QSurfaceFormat format=QSurfaceFormat::defaultFormat(); + format.setStereo(true); + gl_canvas_=new GLCanvas(this, main, format); } if(!gl_canvas_) { if(try_stereo) { LOG_VERBOSE("GLCanvas: no stereo visual found, trying normal ones"); - } - for(int format_id=4;format_id>=0;--format_id) { - QGLFormat format=GLWin::CreateFormat(format_id); - gl_canvas_=new GLCanvas(this, main, format); - if(gl_canvas_->isValid()) { - break; // format is fine - } else { - delete gl_canvas_; // delete this canvas and try a less sophisticated format - gl_canvas_=0; - } - } - } - - if(!gl_canvas_ || !gl_canvas_->isValid()) { - LOG_ERROR("GLCanvas: no valid GL context found, this is pretty fatal"); - return; + } + gl_canvas_=new GLCanvas(this, main); } this->SetInternalWidget(main); gfx::Scene::Instance().AttachObserver(this); - QGLFormat format = gl_canvas_->format(); - + QSurfaceFormat format = gl_canvas_->format(); LOG_VERBOSE("GLCanvas: using " << format.redBufferSize() << "." << format.greenBufferSize() << "." << format.blueBufferSize() << "." << format.alphaBufferSize() << " RGBA bits, " << format.depthBufferSize() << " depth bits, " - << format.accumBufferSize() << " accum bits, and " << format.stencilBufferSize() << " stencil bits") if(gl_canvas_->format().stereo()) { LOG_VERBOSE("GLCanvas: using stereo visual"); } else { LOG_VERBOSE("GLCanvas: no stereo visual found"); } - if(format.sampleBuffers()) { + if(format.samples() > 1) { LOG_VERBOSE("GLCanvas: using multisampling with " << format.samples() << " samples per pixel"); } else { LOG_VERBOSE("GLCanvas: no multisampling"); @@ -126,6 +100,11 @@ gl_canvas_(NULL) #if OST_IMG_ENABLED ToolManager::Instance().AddTool(new MapTool); #endif + + if(!gl_canvas_ || !gl_canvas_->isValid()) { + LOG_ERROR("GLCanvas: no valid GL context found, this is pretty fatal"); + return; + } } void GLWin::ActiveToolChanged(Tool* t) @@ -133,53 +112,6 @@ void GLWin::ActiveToolChanged(Tool* t) gfx::Scene::Instance().RequestRedraw(); } -QGLFormat GLWin::CreateFormat(int fid) -{ - QGLFormat format = QGLFormat::defaultFormat(); - if(fid==4) { - format.setDepthBufferSize(24); - format.setRedBufferSize(8); - format.setGreenBufferSize(8); - format.setBlueBufferSize(8); - format.setAlpha(true); - format.setAlphaBufferSize(8); - format.setAccum(true); - format.setStencil(true); - format.setSampleBuffers(true); - } else if(fid==3) { - format.setDepthBufferSize(24); - format.setRedBufferSize(8); - format.setGreenBufferSize(8); - format.setBlueBufferSize(8); - format.setAlpha(true); - format.setAlphaBufferSize(8); - format.setAccum(true); - format.setSampleBuffers(true); - } else if(fid==2) { - format.setDepthBufferSize(12); - format.setRedBufferSize(8); - format.setGreenBufferSize(8); - format.setBlueBufferSize(8); - format.setAlpha(true); - format.setAlphaBufferSize(8); - format.setAccum(true); - format.setSampleBuffers(true); - } else if(fid==1) { - format.setDepthBufferSize(12); - format.setRedBufferSize(8); - format.setGreenBufferSize(8); - format.setBlueBufferSize(8); - format.setAlpha(true); - format.setAlphaBufferSize(8); - } else { - format.setDepthBufferSize(6); - format.setRedBufferSize(4); - format.setGreenBufferSize(4); - format.setBlueBufferSize(4); - } - return format; -} - GLWin::~GLWin() { gfx::Scene::Instance().DetachObserver(this); diff --git a/modules/gui/src/gl_win.hh b/modules/gui/src/gl_win.hh index 3e32df5c2..8b2ccda0f 100644 --- a/modules/gui/src/gl_win.hh +++ b/modules/gui/src/gl_win.hh @@ -25,7 +25,6 @@ #include <ost/gui/module_config.hh> #include <ost/gui/widget.hh> -#include <QGLFormat> #include <QActionGroup> class QStatusBar; @@ -60,7 +59,6 @@ public slots: void StatusMessage(const String& m); void ActiveToolChanged(Tool* t); private: - static QGLFormat CreateFormat(int fid); GLCanvas* gl_canvas_; QAction* edit_rigid_action_; diff --git a/modules/gui/src/main.cc b/modules/gui/src/main.cc index f3b1c6f6e..e68f5fcf8 100644 --- a/modules/gui/src/main.cc +++ b/modules/gui/src/main.cc @@ -50,6 +50,7 @@ #include <QFile> #include <QDragEnterEvent> #include <QDropEvent> +#include <QMimeData> namespace ost { namespace gui { diff --git a/modules/gui/src/panels/event_button.cc b/modules/gui/src/panels/event_button.cc index f541dcc87..3c7896440 100644 --- a/modules/gui/src/panels/event_button.cc +++ b/modules/gui/src/panels/event_button.cc @@ -18,7 +18,8 @@ //------------------------------------------------------------------------------ #include "event_button.hh" - +#include <QMimeData> +#include <QDrag> namespace ost { namespace gui { diff --git a/modules/gui/src/panels/panel_bar_widget_holder.cc b/modules/gui/src/panels/panel_bar_widget_holder.cc index 358f86eef..0d979e822 100644 --- a/modules/gui/src/panels/panel_bar_widget_holder.cc +++ b/modules/gui/src/panels/panel_bar_widget_holder.cc @@ -42,6 +42,9 @@ #include <QAction> #include <QComboBox> #include <QDebug> +#include <QMimeData> +#include <QDrag> + /* Author: Marco Biasini, Stefan Scheuber */ diff --git a/modules/gui/src/panels/tabbed_panel_bar.cc b/modules/gui/src/panels/tabbed_panel_bar.cc index aacb5cb3d..b02550762 100644 --- a/modules/gui/src/panels/tabbed_panel_bar.cc +++ b/modules/gui/src/panels/tabbed_panel_bar.cc @@ -27,6 +27,8 @@ #include <QApplication> #include <QSettings> #include <QDir> +#include <QMimeData> +#include <QDrag> namespace ost { namespace gui { diff --git a/modules/gui/src/python_shell/python_namespace_tree_model.hh b/modules/gui/src/python_shell/python_namespace_tree_model.hh index da21a394f..21b283e6b 100644 --- a/modules/gui/src/python_shell/python_namespace_tree_model.hh +++ b/modules/gui/src/python_shell/python_namespace_tree_model.hh @@ -50,7 +50,8 @@ public: int columnCount(const QModelIndex&parent=QModelIndex()) const; QModelIndex index(int row, int column, const QModelIndex& parent=QModelIndex()) const; QModelIndex parent(const QModelIndex &index) const; - void Reset() { this->reset(); } + void Reset() {this->beginResetModel(); + this->endResetModel(); } public slots: void NamespaceChanged(); diff --git a/modules/gui/src/python_shell/python_shell_widget.cc b/modules/gui/src/python_shell/python_shell_widget.cc index 9c816f5dc..93d3f3896 100644 --- a/modules/gui/src/python_shell/python_shell_widget.cc +++ b/modules/gui/src/python_shell/python_shell_widget.cc @@ -42,6 +42,7 @@ #include <QDirModel> #include <QStringList> #include <QDebug> +#include <QMimeData> /* Authors: Marco Biasini, Andreas Schenk diff --git a/modules/gui/src/scene_win/scene_win_model.cc b/modules/gui/src/scene_win/scene_win_model.cc index 2acc15eb3..c9cf6d681 100644 --- a/modules/gui/src/scene_win/scene_win_model.cc +++ b/modules/gui/src/scene_win/scene_win_model.cc @@ -36,6 +36,7 @@ #include <QSize> #include <QFont> #include <QDebug> +#include <QDataStream> namespace ost { namespace gui { diff --git a/modules/gui/src/sequence_viewer/alignment_view_object.cc b/modules/gui/src/sequence_viewer/alignment_view_object.cc index a12a2e54b..9084ee7fa 100644 --- a/modules/gui/src/sequence_viewer/alignment_view_object.cc +++ b/modules/gui/src/sequence_viewer/alignment_view_object.cc @@ -143,19 +143,19 @@ QVariant AlignmentViewObject::GetData(int row, int column, int role) if(column -1 < conservation_1_.size()){ return QVariant(conservation_1_[column-1]); } - return QVariant(Qt::transparent); + return QVariant(QColor(Qt::transparent)); } if(role == Qt::ForegroundRole){ if(column -1 < conservation_1_.size()){ if(conservation_1_[column-1].red()>128){ - return QVariant(Qt::black); + return QVariant(QColor(Qt::black)); } else{ - return QVariant(Qt::white); + return QVariant(QColor(Qt::white)); } } - return QVariant(Qt::transparent); + return QVariant(QColor(Qt::transparent)); } } else if(this->GetCurrentDisplayMode() == conservation_mode_2){ @@ -163,13 +163,13 @@ QVariant AlignmentViewObject::GetData(int row, int column, int role) if(column -1 < conservation_2_.size()){ return QVariant(conservation_2_[column-1]); } - return QVariant(Qt::transparent); + return QVariant(QColor(Qt::transparent)); } if(role == Qt::ForegroundRole){ if(column -1 < conservation_2_.size()){ - return QVariant(Qt::black); + return QVariant(QColor(Qt::black)); } - return QVariant(Qt::transparent); + return QVariant(QColor(Qt::transparent)); } } } diff --git a/modules/img/alg/src/CMakeLists.txt b/modules/img/alg/src/CMakeLists.txt index 5df3fd558..692f96f5c 100644 --- a/modules/img/alg/src/CMakeLists.txt +++ b/modules/img/alg/src/CMakeLists.txt @@ -92,9 +92,6 @@ line_average.hh rscrosscorr.hh ) -if(ENABLE_INFO) -include(${QT_USE_FILE}) -endif() module(NAME img_alg SOURCES "${OST_IMG_ALG_SOURCES}" HEADERS "${OST_IMG_ALG_HEADERS}" HEADER_OUTPUT_DIR ost/img/alg diff --git a/modules/info/src/CMakeLists.txt b/modules/info/src/CMakeLists.txt index 31d6db3b4..6b976ecd7 100644 --- a/modules/info/src/CMakeLists.txt +++ b/modules/info/src/CMakeLists.txt @@ -27,10 +27,9 @@ item_type.hh geom_info_conversion.hh item_type_cast.hh) -set(QT_DONT_USE_QTGUI 1) set(QT_USE_QTXML 1) -include(${QT_USE_FILE}) + module(NAME info SOURCES ${OST_INFO_SOURCES} HEADERS ${OST_INFO_HEADERS} - DEPENDS_ON ost_base LINK ${BOOST_REGEX_LIBRARIES} ${QT_LIBRARIES}) + DEPENDS_ON ost_base LINK ${BOOST_REGEX_LIBRARIES} ${QT_LIBRARIES} Qt5::Xml) diff --git a/modules/info/src/info_impl.cc b/modules/info/src/info_impl.cc index 0f6415504..4c0eadc65 100644 --- a/modules/info/src/info_impl.cc +++ b/modules/info/src/info_impl.cc @@ -31,8 +31,7 @@ #include <boost/filesystem/operations.hpp> -#include <QFile> -#include <QtCore> +#include <QtCore/QFile> #include "info_error.hh" #include "info_impl.hh" diff --git a/modules/info/src/info_impl.hh b/modules/info/src/info_impl.hh index fd84d96ed..4b3c46be3 100644 --- a/modules/info/src/info_impl.hh +++ b/modules/info/src/info_impl.hh @@ -32,10 +32,10 @@ #include <vector> #include <iostream> -#include <QDomElement> -#include <QDomDocument> -#include <QDomAttr> -#include <QDomText> +#include <QtXml/QDomElement> +#include <QtXml/QDomDocument> +#include <QtXml/QDomAttr> +#include <QtXml/QDomText> #include <ost/base.hh> #include <ost/geom/geom.hh> -- GitLab