mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-10-10 08:18:15 +03:00
Modernize Xray asset viewer actions
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
This commit is contained in:
@@ -85,20 +85,7 @@ class XrayAssetListWidget(Mixins.ThemeAware, AppQListView):
|
||||
|
||||
logger.info(f'Xray-core asset dir is \'{XRAY_ASSET_DIR}\'')
|
||||
|
||||
contextMenuActions = [
|
||||
AppQAction(
|
||||
_('Delete'),
|
||||
callback=lambda: self.deleteSelectedItem(),
|
||||
),
|
||||
]
|
||||
|
||||
self.contextMenu = AppQMenu(*contextMenuActions)
|
||||
|
||||
# Add actions to self in order to activate shortcuts
|
||||
self.addActions(self.contextMenu.actions())
|
||||
|
||||
self.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
self.customContextMenuRequested.connect(self.handleCustomContextMenuRequested)
|
||||
self.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.NoContextMenu)
|
||||
|
||||
def showEvent(self, event):
|
||||
"""Recalculate item geometry after the view receives its display style."""
|
||||
@@ -106,11 +93,6 @@ class XrayAssetListWidget(Mixins.ThemeAware, AppQListView):
|
||||
|
||||
self.scheduleDelayedItemsLayout()
|
||||
|
||||
@QtCore.Slot(QtCore.QPoint)
|
||||
def handleCustomContextMenuRequested(self, point):
|
||||
"""Handle custom context menu requested."""
|
||||
self.contextMenu.exec(self.viewport().mapToGlobal(point))
|
||||
|
||||
def flushItemByTheme(self, theme: str):
|
||||
"""Refresh item by theme."""
|
||||
self.assetModel.clear()
|
||||
@@ -135,7 +117,7 @@ class XrayAssetListWidget(Mixins.ThemeAware, AppQListView):
|
||||
'%Y-%m-%d %H:%M:%S'
|
||||
)
|
||||
|
||||
item = QStandardItem(f'{filename:{maxlen + 6}}{mdate}')
|
||||
item = QStandardItem(f'{filename:{maxlen + 5}}{mdate}')
|
||||
item.setData(filename, QtCore.Qt.ItemDataRole.UserRole)
|
||||
item.setFont(QFont(AppFontName()))
|
||||
|
||||
|
||||
@@ -45,8 +45,9 @@ class XrayAssetWindow(AppQMainWindow):
|
||||
|
||||
self.setWindowTitle(_('Xray-core Asset File'))
|
||||
|
||||
self.xrayAssetViewerWidget = XrayAssetListWidget(parent=self)
|
||||
self.setCentralWidget(self.xrayAssetViewerWidget)
|
||||
centralWidget = QWidget(parent=self)
|
||||
|
||||
self.xrayAssetViewerWidget = XrayAssetListWidget(parent=centralWidget)
|
||||
|
||||
if versionToValue(PYSIDE6_VERSION) <= versionToValue('6.1.3'):
|
||||
openAssetDirectoryActions = []
|
||||
@@ -55,22 +56,16 @@ class XrayAssetWindow(AppQMainWindow):
|
||||
openAssetDirectoryActions = [
|
||||
AppQAction(
|
||||
_('Open Asset Directory'),
|
||||
icon=bootstrapIcon('folder2-open.svg'),
|
||||
callback=lambda: self.openAssetDirectory(),
|
||||
shortcut=QtCore.QKeyCombination(
|
||||
QtCore.Qt.KeyboardModifier.ControlModifier,
|
||||
QtCore.Qt.Key.Key_O,
|
||||
),
|
||||
),
|
||||
AppQSeparator(),
|
||||
]
|
||||
|
||||
self.fileMenu = AppQMenu(
|
||||
AppQAction(
|
||||
_('Refresh'),
|
||||
callback=lambda: self.flushItem(),
|
||||
shortcut=QtCore.QKeyCombination(
|
||||
QtCore.Qt.KeyboardModifier.ControlModifier,
|
||||
QtCore.Qt.Key.Key_R,
|
||||
),
|
||||
),
|
||||
AppQSeparator(),
|
||||
*openAssetDirectoryActions,
|
||||
@@ -78,25 +73,56 @@ class XrayAssetWindow(AppQMainWindow):
|
||||
_('Import From File...'),
|
||||
callback=lambda: self.appendNewItem(),
|
||||
),
|
||||
AppQSeparator(),
|
||||
AppQAction(
|
||||
_('Exit'),
|
||||
callback=lambda: self.close(),
|
||||
),
|
||||
title=_('File'),
|
||||
parent=self.menuBar(),
|
||||
parent=self,
|
||||
)
|
||||
|
||||
self.menuBar().addMenu(self.fileMenu)
|
||||
self.fileButton = AppQMenuPushButton(
|
||||
_('File'),
|
||||
icon=bootstrapIcon('file-earmark.svg'),
|
||||
popupMenu=self.fileMenu,
|
||||
)
|
||||
|
||||
self.deleteButton = AppQPushButton(
|
||||
_('Delete'),
|
||||
icon=bootstrapIcon('trash.svg'),
|
||||
)
|
||||
self.deleteButton.clicked.connect(self.deleteSelectedItem)
|
||||
|
||||
self.closeWindowButton = AppQPushButton(
|
||||
_('Close Window'),
|
||||
icon=bootstrapIcon('window-x.svg'),
|
||||
)
|
||||
self.closeWindowButton.clicked.connect(self.close)
|
||||
|
||||
actionLayout = QHBoxLayout()
|
||||
actionLayout.setContentsMargins(0, 0, 0, 0)
|
||||
actionLayout.setSpacing(8)
|
||||
actionLayout.addWidget(self.fileButton)
|
||||
actionLayout.addWidget(self.deleteButton)
|
||||
actionLayout.addStretch(1)
|
||||
actionLayout.addWidget(self.closeWindowButton)
|
||||
|
||||
contentLayout = QVBoxLayout(centralWidget)
|
||||
contentLayout.setContentsMargins(10, 10, 10, 8)
|
||||
contentLayout.setSpacing(10)
|
||||
contentLayout.addLayout(actionLayout)
|
||||
contentLayout.addWidget(self.xrayAssetViewerWidget, 1)
|
||||
|
||||
self.setCentralWidget(centralWidget)
|
||||
self.menuBar().hide()
|
||||
|
||||
def setWidthAndHeight(self):
|
||||
"""Apply the default size for the Xray asset viewer window."""
|
||||
self.resize(360, 360 * GOLDEN_RATIO)
|
||||
self.resize(380, 380 * GOLDEN_RATIO)
|
||||
|
||||
def flushItem(self):
|
||||
"""Refresh item."""
|
||||
self.xrayAssetViewerWidget.flushItem()
|
||||
|
||||
def deleteSelectedItem(self):
|
||||
self.xrayAssetViewerWidget.deleteSelectedItem()
|
||||
|
||||
@staticmethod
|
||||
def openAssetDirectory():
|
||||
"""Open asset directory."""
|
||||
|
||||
Reference in New Issue
Block a user