WIP: user/rcu: new aport #469

Draft
ayakael wants to merge 3 commits from rcu/initial into edge
2 changed files with 697 additions and 6 deletions
Showing only changes of commit d53aaedf3e - Show all commits

View file

@ -1,14 +1,13 @@
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=rcu
pkgver=2024.14
_gittag="d2024.001(n)"
pkgver=2023.3
_gittag="d2023.001(c)"
pkgrel=0
pkgdesc="RCU is a desktop client for all-in-one offline management of reMarkable e-paper tablet"
url="http://www.davisr.me/projects/rcu/"
license="AGPL-3.0-only"
arch="all"
# missing: py3-pyside2
depends="
py3-paramiko
py3-protobuf
@ -17,10 +16,14 @@ depends="
py3-pillow
py3-certifi
py3-pikepdf
py3-pyside6
"
makedepends="py3-setuptools py3-gpep517 py3-wheel"
source="https://lab.ilot.io/mirrors/rcu/-/archive/$_gittag/rcu-$_gittag.tar.gz"
builddir="$srcdir"/$pkgname-$_gittag/src
source="
https://lab.ilot.io/mirrors/rcu/-/archive/$_gittag/rcu-$_gittag.tar.gz
rcu-pyside6.patch
"
builddir="$srcdir"/$pkgname-$_gittag
options="!check"
build() {
@ -35,5 +38,6 @@ package() {
}
sha512sums="
8c72dbcdee33a78e7ffc85817961e99a3555584d8243c5b99eba0cbefd934936716e339cb18cdf84210976a5bb30092d6694d88699f982ced5b41e6e366ead93 rcu-d2024.001(n).tar.gz
60ad594b9140125225b8d8500d9efad1c8f48a61b9bdda9967154e3efe4d9d66d0df2d8d1c4f6cf9c839bc4a4031906a87dd4bfc674cbf18ac05dc4dda48b44e rcu-d2023.001(c).tar.gz
6a43037545ea1d1e0d4e0921f0fbd7f85802030a70eb42e7de4d9988adfcd267d6b94e2f9acf13b265c5006b5e330ce45f7d03b905b7299da380a60f2fa3a96b rcu-pyside6.patch
"

687
user/rcu/rcu-pyside6.patch Normal file
View file

@ -0,0 +1,687 @@
diff --git a/src/controllers/ConnectionDialogController.py b/src/controllers/ConnectionDialogController.py
index ad7ed727a..01c695510 100644
--- a/src/controllers/ConnectionDialogController.py
+++ b/src/controllers/ConnectionDialogController.py
@@ -4,7 +4,7 @@ The connection dialog allows a user to edit device connection
information and initiate a connection.
RCU is a management client for the reMarkable Tablet.
-Copyright (C) 2020-21 Davis Remmel
+Copyright (C) 2020-23 Davis Remmel
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
@@ -26,11 +26,11 @@ import sys
import pathlib
import controllers
import log
-from PySide2.QtCore import Qt, QSettings, QObject, QEvent, QPoint, \
+from PySide6.QtCore import Qt, QSettings, QObject, QEvent, QPoint, \
QCoreApplication
-from PySide2.QtWidgets import QMenu, QShortcut, QApplication, QAction, \
+from PySide6.QtWidgets import QMenu, QApplication, \
QInputDialog, QLineEdit, QMessageBox
-from PySide2.QtGui import QKeySequence
+from PySide6.QtGui import QKeySequence, QShortcut, QAction
class OptionButtonEventFilter(QObject):
def eventFilter(self, obj, event):
diff --git a/src/controllers/ConnectionUtilityController.py b/src/controllers/ConnectionUtilityController.py
index 0cce532e9..8a9589dbe 100644
--- a/src/controllers/ConnectionUtilityController.py
+++ b/src/controllers/ConnectionUtilityController.py
@@ -3,7 +3,7 @@ ConnectionUtilityController.py
This is the main window of the application.
RCU is a management client for the reMarkable Tablet.
-Copyright (C) 2020-22 Davis Remmel
+Copyright (C) 2020-23 Davis Remmel
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
@@ -19,10 +19,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QObject, QEvent, QCoreApplication, \
+from PySide6.QtCore import Qt, QObject, QEvent, QCoreApplication, \
QSettings, QTimer
-from PySide2.QtWidgets import QListWidgetItem, QShortcut, QApplication
-from PySide2.QtGui import QKeySequence, QPalette, QPixmap
+from PySide6.QtWidgets import QListWidgetItem, QApplication
+from PySide6.QtGui import QKeySequence, QPalette, QPixmap, QShortcut
from controllers import UIController
from panes import paneslist, IncompatiblePane
from pathlib import Path
diff --git a/src/controllers/RecoveryOSController.py b/src/controllers/RecoveryOSController.py
index ef177b26e..c645eee9d 100644
--- a/src/controllers/RecoveryOSController.py
+++ b/src/controllers/RecoveryOSController.py
@@ -23,7 +23,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
from . import UIController
from pathlib import Path
import log
-from PySide2.QtCore import QTimer
+from PySide6.QtCore import QTimer
class RecoveryOSController(UIController):
adir = Path(__file__).parent.parent
diff --git a/src/controllers/UIController.py b/src/controllers/UIController.py
index c71a76d69..c9b639735 100644
--- a/src/controllers/UIController.py
+++ b/src/controllers/UIController.py
@@ -21,8 +21,8 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
import pathlib
import sys
-from PySide2.QtCore import QFile, QCoreApplication
-from PySide2.QtUiTools import QUiLoader
+from PySide6.QtCore import QFile, QCoreApplication
+from PySide6.QtUiTools import QUiLoader
import log
import re
diff --git a/src/docrender/document_renderer.py b/src/docrender/document_renderer.py
index 8f51ed4da..752fc4556 100644
--- a/src/docrender/document_renderer.py
+++ b/src/docrender/document_renderer.py
@@ -25,11 +25,11 @@ from model.template import Template
from model.pens.textures import PencilTextures
from .document_renderer_page import DocumentPage
-from PySide2.QtGui import QPainter, QImage, QPen, QPixmap, \
+from PySide6.QtGui import QPainter, QImage, QPen, QPixmap, \
QPageSize, QColor, QBrush, QPainterPath, QTransform
-from PySide2.QtCore import Qt, QByteArray, QIODevice, QBuffer, QSizeF, \
+from PySide6.QtCore import Qt, QByteArray, QIODevice, QBuffer, QSizeF, \
QSettings, QRectF, QPointF, QCoreApplication
-from PySide2.QtPrintSupport import QPrinter
+from PySide6.QtPrintSupport import QPrinter
from pathlib import Path
import json
diff --git a/src/docrender/document_renderer_page.py b/src/docrender/document_renderer_page.py
index 1e5b1cd5d..08cff3f8e 100644
--- a/src/docrender/document_renderer_page.py
+++ b/src/docrender/document_renderer_page.py
@@ -24,11 +24,11 @@ from model.template import Template
from model import lines
from model.pens.textures import PencilTextures
-from PySide2.QtGui import QPainter, QImage, QPen, QPixmap, \
+from PySide6.QtGui import QPainter, QImage, QPen, QPixmap, \
QPageSize, QColor, QBrush, QPainterPath, QTransform
-from PySide2.QtCore import Qt, QByteArray, QIODevice, QBuffer, QSizeF, \
+from PySide6.QtCore import Qt, QByteArray, QIODevice, QBuffer, QSizeF, \
QSettings, QRectF, QPointF
-from PySide2.QtPrintSupport import QPrinter
+from PySide6.QtPrintSupport import QPrinter
from pathlib import Path
import json
@@ -833,7 +833,7 @@ class DocumentPageLayer:
devpx = width * height
bytepp = 4 # ARGB32
# This is the primary image buffer. It needs to be pre-allocated
- # to prevent memory access errors in PySide2. See:
+ # to prevent memory access errors in PySide6. See:
# https://github.com/matplotlib/matplotlib/issues/4283#issuecomment-95950441
image_ref = QByteArray()
image_ref.fill('\0', devpx * bytepp)
diff --git a/src/main.py b/src/main.py
index 03cbbb45c..f94dd1274 100644
--- a/src/main.py
+++ b/src/main.py
@@ -70,9 +70,9 @@ from docrender import DocRenderPrefs
from pathlib import Path
import sys
-from PySide2.QtWidgets import QApplication, QStyleFactory
-from PySide2.QtCore import QCoreApplication, Qt, QThreadPool, QSettings
-from PySide2.QtGui import QFont, QPalette, QColor, QIcon, QPixmap
+from PySide6.QtWidgets import QApplication, QStyleFactory
+from PySide6.QtCore import QCoreApplication, Qt, QThreadPool, QSettings
+from PySide6.QtGui import QFont, QPalette, QColor, QIcon, QPixmap
# Handle Ctrl-C
@@ -137,10 +137,10 @@ if args.cli:
# Start main application
if __name__ == '__main__':
- QCoreApplication.setAttribute(Qt.AA_DisableWindowContextHelpButton)
+ # QCoreApplication.setAttribute(Qt.AA_DisableWindowContextHelpButton)
QCoreApplication.setAttribute(Qt.AA_ShareOpenGLContexts)
- QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
- QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
+ # QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
+ # QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
QCoreApplication.setOrganizationName('davisr')
QCoreApplication.setOrganizationDomain('davisr.me')
QCoreApplication.setApplicationName('rcu')
diff --git a/src/model/display.py b/src/model/display.py
index e400e39dc..f91983ddb 100644
--- a/src/model/display.py
+++ b/src/model/display.py
@@ -45,8 +45,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
'''
import log
-from PySide2.QtCore import QByteArray, QBuffer, QIODevice
-from PySide2.QtGui import QImage, QMatrix
+from PySide6.QtCore import QByteArray, QBuffer, QIODevice
+from PySide6.QtGui import QImage, QMatrix3x3
import math
import gc
import ctypes
@@ -139,7 +139,7 @@ class DisplayRM1(DisplayRM):
QImage.Format_Grayscale8)
center = qimage.rect().center()
- matrix = QMatrix()
+ matrix = QMatrix3x3()
matrix.translate(center.x(), center.y())
matrix.rotate(90)
qimage_rot = qimage.transformed(matrix)
@@ -255,7 +255,7 @@ class DisplayRM2(DisplayRM):
# Rotate -90 deg.
center = qimage.rect().center()
- matrix = QMatrix()
+ matrix = QMatrix3x3()
matrix.translate(center.x(), center.y())
matrix.rotate(-90)
diff --git a/src/model/document.py b/src/model/document.py
index 465b2b70b..a6d6975c8 100644
--- a/src/model/document.py
+++ b/src/model/document.py
@@ -34,12 +34,12 @@ import re
import pikepdf
import urllib.request
-#from PySide2.QtWidgets import QGraphicsScene
-from PySide2.QtGui import QPainter, QImage, QPen, QPixmap, \
+#from PySide6.QtWidgets import QGraphicsScene
+from PySide6.QtGui import QPainter, QImage, QPen, QPixmap, \
QPageSize, QColor, QBrush, QPainterPath, QTransform
-from PySide2.QtCore import Qt, QByteArray, QIODevice, QBuffer, QSizeF, \
+from PySide6.QtCore import Qt, QByteArray, QIODevice, QBuffer, QSizeF, \
QSettings, QRectF, QPointF
-from PySide2.QtPrintSupport import QPrinter
+from PySide6.QtPrintSupport import QPrinter
import svgtools
diff --git a/src/model/pens/ballpoint.py b/src/model/pens/ballpoint.py
index e391c6334..c58bc0543 100644
--- a/src/model/pens/ballpoint.py
+++ b/src/model/pens/ballpoint.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen
class BallpointPen(QPen):
def __init__(self, *args, **kwargs):
diff --git a/src/model/pens/calligraphy.py b/src/model/pens/calligraphy.py
index 7981b5b53..c6927c196 100644
--- a/src/model/pens/calligraphy.py
+++ b/src/model/pens/calligraphy.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen
class CalligraphyPen(QPen):
def __init__(self, *args, **kwargs):
diff --git a/src/model/pens/erasearea.py b/src/model/pens/erasearea.py
index dd0ebf3d8..353541fe3 100644
--- a/src/model/pens/erasearea.py
+++ b/src/model/pens/erasearea.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt
-from PySide2.QtGui import QPen
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QPen
class EraseAreaPen(QPen):
def __init__(self, *args, **kwargs):
diff --git a/src/model/pens/eraser.py b/src/model/pens/eraser.py
index e0c1624ff..0e84542c0 100644
--- a/src/model/pens/eraser.py
+++ b/src/model/pens/eraser.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen, QPainter
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen, QPainter
class EraserPen(QPen):
# A PDF graphics state to be used during renders.
diff --git a/src/model/pens/fineliner.py b/src/model/pens/fineliner.py
index 547db3aff..0112a1b32 100644
--- a/src/model/pens/fineliner.py
+++ b/src/model/pens/fineliner.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen
class FinelinerPen(QPen):
def __init__(self, *args, **kwargs):
diff --git a/src/model/pens/generic.py b/src/model/pens/generic.py
index c0efd9a1f..1dfc9d01d 100644
--- a/src/model/pens/generic.py
+++ b/src/model/pens/generic.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen
class GenericPen(QPen):
def __init__(self, *args, **kwargs):
diff --git a/src/model/pens/highlighter.py b/src/model/pens/highlighter.py
index 507132e63..9e2c8d6fe 100644
--- a/src/model/pens/highlighter.py
+++ b/src/model/pens/highlighter.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt
-from PySide2.QtGui import QPen, QColor, QPainterPath, QPainter, \
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QPen, QColor, QPainterPath, QPainter, \
QPainterPathStroker
class HighlighterPen(QPen):
diff --git a/src/model/pens/marker.py b/src/model/pens/marker.py
index 6adadb5dc..088310e35 100644
--- a/src/model/pens/marker.py
+++ b/src/model/pens/marker.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen
class MarkerPen(QPen):
def __init__(self, *args, **kwargs):
diff --git a/src/model/pens/mechanicalpencil.py b/src/model/pens/mechanicalpencil.py
index 24ea1753e..30fc6b3e6 100644
--- a/src/model/pens/mechanicalpencil.py
+++ b/src/model/pens/mechanicalpencil.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen, QBrush, QColor
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen, QBrush, QColor
from pathlib import Path
class MechanicalPencilPen(QPen):
diff --git a/src/model/pens/mechanicalpencil_1.py b/src/model/pens/mechanicalpencil_1.py
index 165bd8f2b..3466a6dce 100644
--- a/src/model/pens/mechanicalpencil_1.py
+++ b/src/model/pens/mechanicalpencil_1.py
@@ -20,8 +20,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen, QBrush, QColor
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen, QBrush, QColor
from pathlib import Path
class MechanicalPencilPen1(QPen):
diff --git a/src/model/pens/paintbrush.py b/src/model/pens/paintbrush.py
index 1e35f084d..6033e67bc 100644
--- a/src/model/pens/paintbrush.py
+++ b/src/model/pens/paintbrush.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen, QBrush, QColor, QTransform
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen, QBrush, QColor, QTransform
import math
diff --git a/src/model/pens/pencil.py b/src/model/pens/pencil.py
index e66416c4f..ec5a9fbd8 100644
--- a/src/model/pens/pencil.py
+++ b/src/model/pens/pencil.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QLineF
-from PySide2.QtGui import QPen, QBrush, QColor, QPainter, QPainterPath
+from PySide6.QtCore import Qt, QLineF
+from PySide6.QtGui import QPen, QBrush, QColor, QPainter, QPainterPath
import math
diff --git a/src/model/pens/textures.py b/src/model/pens/textures.py
index 16f0cdc9c..f5b85f3aa 100644
--- a/src/model/pens/textures.py
+++ b/src/model/pens/textures.py
@@ -19,8 +19,8 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt
-from PySide2.QtGui import QPen, QBrush, QImage, QBitmap
+from PySide6.QtCore import Qt
+from PySide6.QtGui import QPen, QBrush, QImage, QBitmap
from pathlib import Path
class PencilTextures:
diff --git a/src/model/rcu.py b/src/model/rcu.py
index c5e9efb60..47854660a 100644
--- a/src/model/rcu.py
+++ b/src/model/rcu.py
@@ -23,8 +23,8 @@ from .config import Config
import log
import urllib.request
-from PySide2.QtCore import QThreadPool, QSettings, QTimer
-from PySide2.QtGui import QImage
+from PySide6.QtCore import QThreadPool, QSettings, QTimer
+from PySide6.QtGui import QImage
from worker import Worker
import select
import base64
diff --git a/src/model/template.py b/src/model/template.py
index c29136c0d..d32b0c355 100644
--- a/src/model/template.py
+++ b/src/model/template.py
@@ -23,7 +23,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
from pathlib import Path
import log
import json
-from PySide2.QtCore import QByteArray
+from PySide6.QtCore import QByteArray
from worker import Worker
import tempfile
import uuid
diff --git a/src/optionals.txt b/src/optionals.txt
index 8da8651da..cc8a611e4 100644
--- a/src/optionals.txt
+++ b/src/optionals.txt
@@ -1,2 +1,2 @@
-pyside2>=5.14.2
+pyside6
pikepdf==7.2.0
diff --git a/src/panes/about/pane.py b/src/panes/about/pane.py
index c3bf59873..d08ac7165 100644
--- a/src/panes/about/pane.py
+++ b/src/panes/about/pane.py
@@ -26,9 +26,9 @@ import sys
from worker import Worker
-from PySide2.QtCore import QByteArray, QUrl, QSize, QCoreApplication
-from PySide2.QtGui import QIcon
-from PySide2.QtWidgets import QMessageBox
+from PySide6.QtCore import QByteArray, QUrl, QSize, QCoreApplication
+from PySide6.QtGui import QIcon
+from PySide6.QtWidgets import QMessageBox
import urllib.request
import hashlib
diff --git a/src/panes/deviceinfo/UploadFirmwareController.py b/src/panes/deviceinfo/UploadFirmwareController.py
index 4de61786f..84a2444b1 100644
--- a/src/panes/deviceinfo/UploadFirmwareController.py
+++ b/src/panes/deviceinfo/UploadFirmwareController.py
@@ -26,8 +26,8 @@ from pathlib import Path
from model.firmware import Firmware
-from PySide2.QtCore import QSettings
-from PySide2.QtWidgets import QFileDialog, QDialogButtonBox, QMessageBox
+from PySide6.QtCore import QSettings
+from PySide6.QtWidgets import QFileDialog, QDialogButtonBox, QMessageBox
from worker import Worker
diff --git a/src/panes/deviceinfo/backup/BackupController.py b/src/panes/deviceinfo/backup/BackupController.py
index 19f22d6dd..abe6da894 100644
--- a/src/panes/deviceinfo/backup/BackupController.py
+++ b/src/panes/deviceinfo/backup/BackupController.py
@@ -31,10 +31,10 @@ import platform
from .Backup import BackupFile
-from PySide2.QtWidgets import QTreeWidgetItem, QHeaderView, \
+from PySide6.QtWidgets import QTreeWidgetItem, QHeaderView, \
QMenu, QTreeWidget, QFrame, QAbstractItemView, QMessageBox, \
QSizePolicy
-from PySide2.QtCore import Qt, QRect
+from PySide6.QtCore import Qt, QRect
import hashlib
diff --git a/src/panes/deviceinfo/pane.py b/src/panes/deviceinfo/pane.py
index 7e767d8a9..226c92410 100644
--- a/src/panes/deviceinfo/pane.py
+++ b/src/panes/deviceinfo/pane.py
@@ -25,10 +25,10 @@ import controllers
import log
from worker import Worker
from . import backup
-from PySide2.QtWidgets import QInputDialog, QLineEdit, QMessageBox, \
+from PySide6.QtWidgets import QInputDialog, QLineEdit, QMessageBox, \
QMenu, QFileDialog
-from PySide2.QtGui import QIcon, QPixmap
-from PySide2.QtCore import Qt, QSize, QSettings, QCoreApplication
+from PySide6.QtGui import QIcon, QPixmap
+from PySide6.QtCore import Qt, QSize, QSettings, QCoreApplication
import time
import platform
from .BatteryInfoController import BatteryInfoController
diff --git a/src/panes/display/pane.py b/src/panes/display/pane.py
index 3ea5b261f..df35d068d 100644
--- a/src/panes/display/pane.py
+++ b/src/panes/display/pane.py
@@ -19,10 +19,10 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import Qt, QSize, QObject, QEvent, QSettings, \
+from PySide6.QtCore import Qt, QSize, QObject, QEvent, QSettings, \
QCoreApplication
-from PySide2.QtGui import QImage, QPixmap, QColor, QIcon
-from PySide2.QtWidgets import QFileDialog, QWidget
+from PySide6.QtGui import QImage, QPixmap, QColor, QIcon
+from PySide6.QtWidgets import QFileDialog, QWidget
from pathlib import Path
from datetime import datetime
from controllers import UIController
diff --git a/src/panes/incompatible/pane.py b/src/panes/incompatible/pane.py
index 3bc272d8a..0bc4476d5 100644
--- a/src/panes/incompatible/pane.py
+++ b/src/panes/incompatible/pane.py
@@ -23,7 +23,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
from pathlib import Path
from controllers import UIController
import log
-from PySide2.QtGui import QPixmap
+from PySide6.QtGui import QPixmap
class IncompatiblePane(UIController):
adir = Path(__file__).parent.parent
diff --git a/src/panes/notebooks/pane.py b/src/panes/notebooks/pane.py
index abbe0dbe2..d18d8f458 100644
--- a/src/panes/notebooks/pane.py
+++ b/src/panes/notebooks/pane.py
@@ -36,12 +36,13 @@ import traceback
import pikepdf
from docrender import DocRenderPrefs
-from PySide2.QtCore import Qt, QRect, QSize, QTimer, QSettings, \
+from PySide6.QtCore import Qt, QRect, QSize, QTimer, QSettings, \
QObject, QEvent, QCoreApplication
-from PySide2.QtWidgets import QTreeWidget, QTreeWidgetItem, QMenu, \
+from PySide6.QtWidgets import QTreeWidget, QTreeWidgetItem, QMenu, \
QFrame, QAbstractItemView, QHeaderView, QFileDialog, QSizePolicy, \
- QColorDialog, QShortcut, QInputDialog, QLineEdit
-from PySide2.QtGui import QIcon, QColor, QPixmap, QKeySequence
+ QColorDialog, QInputDialog, QLineEdit
+from PySide6.QtGui import QIcon, QColor, QPixmap, QKeySequence, \
+ QShortcut, QAction
def prettydate(then, abs=False):
if not then:
@@ -1703,7 +1704,6 @@ class CollectionTreeWidgetItem(QTreeWidgetItem):
return False
-from PySide2.QtWidgets import QMenu, QAction, QMessageBox
class DocumentTreeWidgetItem(QTreeWidgetItem):
def __init__(self, controller, *args, **kwargs):
super(type(self), self).__init__(*args, **kwargs)
diff --git a/src/panes/software/pane.py b/src/panes/software/pane.py
index aed99d523..633dd0347 100644
--- a/src/panes/software/pane.py
+++ b/src/panes/software/pane.py
@@ -22,9 +22,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
import log
from controllers import UIController
from pathlib import Path
-from PySide2.QtCore import Qt, QSize, QRect, QSettings
-from PySide2.QtGui import QIcon
-from PySide2.QtWidgets import QListWidget, QListWidgetItem, \
+from PySide6.QtCore import Qt, QSize, QRect, QSettings
+from PySide6.QtGui import QIcon
+from PySide6.QtWidgets import QListWidget, QListWidgetItem, \
QFileDialog, QMessageBox, QSizePolicy
class SoftwarePane(UIController):
diff --git a/src/panes/splash/pane.py b/src/panes/splash/pane.py
index 16535a18d..9ce1f3b20 100644
--- a/src/panes/splash/pane.py
+++ b/src/panes/splash/pane.py
@@ -19,9 +19,9 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import QSize, Qt, QObject, QEvent, QSettings
-from PySide2.QtGui import QPixmap, QImage, QIcon
-from PySide2.QtWidgets import QFileDialog
+from PySide6.QtCore import QSize, Qt, QObject, QEvent, QSettings
+from PySide6.QtGui import QPixmap, QImage, QIcon
+from PySide6.QtWidgets import QFileDialog
from pathlib import Path
from datetime import datetime
import log
diff --git a/src/panes/templates/importcontroller.py b/src/panes/templates/importcontroller.py
index 9faf0010d..9a05e523f 100644
--- a/src/panes/templates/importcontroller.py
+++ b/src/panes/templates/importcontroller.py
@@ -24,10 +24,10 @@ from controllers import UIController
from pathlib import Path
import log
-from PySide2.QtCore import QByteArray, QSize, Qt, QTimer, QBuffer, \
+from PySide6.QtCore import QByteArray, QSize, Qt, QTimer, QBuffer, \
QIODevice, QCoreApplication
-from PySide2.QtGui import QFontDatabase, QPixmap, QIcon, QImage, QMatrix
-from PySide2.QtWidgets import QListWidgetItem, QMessageBox
+from PySide6.QtGui import QFontDatabase, QPixmap, QIcon, QImage
+from PySide6.QtWidgets import QListWidgetItem, QMessageBox
from PIL import Image, ImageFont, ImageDraw, ImageOps
diff --git a/src/panes/templates/pane.py b/src/panes/templates/pane.py
index dfb8bd8e3..9ba1ab265 100644
--- a/src/panes/templates/pane.py
+++ b/src/panes/templates/pane.py
@@ -22,13 +22,13 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
from controllers import UIController
from pathlib import Path
import log
-from PySide2.QtWidgets import QTreeWidgetItem, QTreeWidget, QMenu, \
+from PySide6.QtWidgets import QTreeWidgetItem, QTreeWidget, QMenu, \
QFrame, QAbstractItemView, QMessageBox, QHeaderView, QFileDialog, \
QSizePolicy
-from PySide2.QtSvg import QSvgWidget
-from PySide2.QtCore import Qt, QRect, QByteArray, QSize, QObject, \
+from PySide6.QtSvgWidgets import QSvgWidget
+from PySide6.QtCore import Qt, QRect, QByteArray, QSize, QObject, \
QEvent, QSettings, QCoreApplication
-from PySide2.QtGui import QIcon
+from PySide6.QtGui import QIcon
from model.template import Template
import platform
import re
diff --git a/src/svgtools.py b/src/svgtools.py
index 5bf383293..68d705024 100644
--- a/src/svgtools.py
+++ b/src/svgtools.py
@@ -3,7 +3,7 @@ svgtools.py
This file provides functions for manipulating SVG and bitmap images.
RCU is a management client for the reMarkable Tablet.
-Copyright (C) 2020-22 Davis Remmel
+Copyright (C) 2020-23 Davis Remmel
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
@@ -19,9 +19,9 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2.QtCore import QByteArray, QIODevice, QBuffer
-from PySide2.QtGui import QImage, QPainter, QPixmap
-from PySide2.QtSvg import QSvgRenderer
+from PySide6.QtCore import QByteArray, QIODevice, QBuffer
+from PySide6.QtGui import QImage, QPainter, QPixmap
+from PySide6.QtSvg import QSvgRenderer
import log
diff --git a/src/worker.py b/src/worker.py
index 362ec5658..a4d4e55b9 100644
--- a/src/worker.py
+++ b/src/worker.py
@@ -41,7 +41,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
'''
-from PySide2 import QtCore
+from PySide6 import QtCore
import traceback
import sys