X-Git-Url: https://jfr.im/git/irc/weechat/qweechat.git/blobdiff_plain/8335009daefb48e45f83a3ab839479c33b719211..1f27a20e9ec4818476a1ad0f4bf2dc711a2eb485:/qweechat/qweechat.py diff --git a/qweechat/qweechat.py b/qweechat/qweechat.py index 49e6b91..33e210a 100644 --- a/qweechat/qweechat.py +++ b/qweechat/qweechat.py @@ -36,7 +36,7 @@ It requires requires WeeChat 0.3.7 or newer, running on local or remote host. import sys import traceback from pkg_resources import resource_filename -import qt_compat +# import qt_compat import config import weechat.protocol as protocol from network import Network @@ -46,8 +46,14 @@ from debug import DebugDialog from about import AboutDialog from version import qweechat_version -QtCore = qt_compat.import_module('QtCore') -QtGui = qt_compat.import_module('QtGui') +from PySide6.QtWidgets import ( + QApplication, QLabel, QPushButton, QVBoxLayout, QWidget) +from PySide6.QtCore import Qt, Slot +from PySide6 import QtGui, QtWidgets, QtCore + + +# QtCore = qt_compat.import_module('QtCore') +# QtGui = qt_compat.import_module('QtGui') NAME = 'QWeeChat' AUTHOR = 'Sébastien Helleu' @@ -58,11 +64,11 @@ WEECHAT_SITE = 'https://weechat.org/' DEBUG_NUM_LINES = 50 -class MainWindow(QtGui.QMainWindow): +class MainWindow(QtWidgets.QMainWindow): """Main window.""" def __init__(self, *args): - QtGui.QMainWindow.__init__(*(self,) + args) + super().__init__() self.config = config.read() @@ -87,11 +93,11 @@ class MainWindow(QtGui.QMainWindow): # default buffer self.buffers = [Buffer()] - self.stacked_buffers = QtGui.QStackedWidget() + self.stacked_buffers = QtWidgets.QStackedWidget() self.stacked_buffers.addWidget(self.buffers[0].widget) # splitter with buffers + chat/input - splitter = QtGui.QSplitter() + splitter = QtWidgets.QSplitter() splitter.addWidget(self.list_buffers) splitter.addWidget(self.stacked_buffers) @@ -146,7 +152,7 @@ class MainWindow(QtGui.QMainWindow): menu_window.addAction(self.actions['debug']) menu_help = self.menu.addMenu('&Help') menu_help.addAction(self.actions['about']) - self.network_status = QtGui.QLabel() + self.network_status = QtWidgets.QLabel() self.network_status.setFixedHeight(20) self.network_status.setFixedWidth(200) self.network_status.setContentsMargins(0, 0, 10, 0) @@ -312,24 +318,24 @@ class MainWindow(QtGui.QMainWindow): def _network_weechat_msg(self, message): """Called when a message is received from WeeChat.""" - self.debug_display(0, '==>', - 'message (%d bytes):\n%s' - % (len(message), - protocol.hex_and_ascii(message, 20)), - forcecolor='#008800') + # self.debug_display(0, '==>', + # 'message (%d bytes):\n%s' + # % (len(message), + # protocol.hex_and_ascii(message, 20)), + # forcecolor='#008800') try: proto = protocol.Protocol() - message = proto.decode(str(message)) + message = proto.decode(message.data()) if message.uncompressed: self.debug_display( 0, '==>', 'message uncompressed (%d bytes):\n%s' % (message.size_uncompressed, protocol.hex_and_ascii(message.uncompressed, 20)), - forcecolor='#008800') + forcecolor='#008800') self.debug_display(0, '', 'Message: %s' % message) self.parse_message(message) - except: # noqa: E722 + except Exception: # noqa: E722 print('Error while decoding message from WeeChat:\n%s' % traceback.format_exc()) self.network.disconnect_weechat() @@ -339,6 +345,7 @@ class MainWindow(QtGui.QMainWindow): for obj in message.objects: if obj.objtype != 'hda' or obj.value['path'][-1] != 'buffer': continue + print('listbuffers object', obj.objtype, obj.value['path']) self.list_buffers.clear() while self.stacked_buffers.count() > 0: buf = self.stacked_buffers.widget(0) @@ -346,6 +353,7 @@ class MainWindow(QtGui.QMainWindow): self.buffers = [] for item in obj.value['items']: buf = self.create_buffer(item) + print(f'Creating buffer for {item}') self.insert_buffer(len(self.buffers), buf) self.list_buffers.setCurrentRow(0) self.buffers[0].widget.input.setFocus() @@ -477,6 +485,7 @@ class MainWindow(QtGui.QMainWindow): def parse_message(self, message): """Parse a WeeChat message.""" + print(f'message.msgid = {message.msgid}') if message.msgid.startswith('debug'): self.debug_display(0, '', '(debug message, ignored)') elif message.msgid == 'listbuffers': @@ -495,6 +504,8 @@ class MainWindow(QtGui.QMainWindow): self.network.desync_weechat() elif message.msgid == '_upgrade_ended': self.network.sync_weechat() + else: + print(f"Unknown message with id {message.msgid}") def create_buffer(self, item): """Create a new buffer.""" @@ -511,7 +522,7 @@ class MainWindow(QtGui.QMainWindow): self.buffers.insert(index, buf) self.list_buffers.insertItem(index, '%d. %s' % (buf.data['number'], - buf.data['full_name'].decode('utf-8'))) + buf.data['full_name'])) self.stacked_buffers.insertWidget(index, buf.widget) def remove_buffer(self, index): @@ -544,12 +555,13 @@ class MainWindow(QtGui.QMainWindow): if self.debug_dialog: self.debug_dialog.close() config.write(self.config) - QtGui.QMainWindow.closeEvent(self, event) + QtWidgets.QMainWindow.closeEvent(self, event) -app = QtGui.QApplication(sys.argv) -app.setStyle(QtGui.QStyleFactory.create('Cleanlooks')) +app = QApplication(sys.argv) +app.setStyle(QtWidgets.QStyleFactory.create('Cleanlooks')) app.setWindowIcon(QtGui.QIcon( - resource_filename(__name__, 'data/icons/weechat.png'))) + resource_filename(__name__, 'data/icons/weechat.png'))) main = MainWindow() +main.show() sys.exit(app.exec_())