src/eric7/IconEditor/IconEditorWindow.py

branch
server
changeset 10631
00f5aae565a3
parent 10439
21c28b0f9e41
child 10633
dda7e43934dc
equal deleted inserted replaced
10630:552a790fd9bc 10631:00f5aae565a3
9 9
10 import contextlib 10 import contextlib
11 import os 11 import os
12 import pathlib 12 import pathlib
13 13
14 from PyQt6.QtCore import QEvent, QSignalMapper, QSize, Qt, pyqtSignal 14 from PyQt6.QtCore import QBuffer, QByteArray, QEvent, QSignalMapper, QSize, Qt, pyqtSignal
15 from PyQt6.QtGui import QImage, QImageReader, QImageWriter, QKeySequence, QPalette 15 from PyQt6.QtGui import QImage, QImageReader, QImageWriter, QKeySequence, QPalette
16 from PyQt6.QtWidgets import QDockWidget, QLabel, QScrollArea, QWhatsThis 16 from PyQt6.QtWidgets import QDockWidget, QLabel, QScrollArea, QWhatsThis
17 17
18 from eric7 import Preferences 18 from eric7 import Preferences
19 from eric7.EricGui import EricPixmapCache 19 from eric7.EricGui import EricPixmapCache
20 from eric7.EricGui.EricAction import EricAction, createActionGroup 20 from eric7.EricGui.EricAction import EricAction, createActionGroup
21 from eric7.EricWidgets import EricFileDialog, EricMessageBox 21 from eric7.EricWidgets import EricFileDialog, EricMessageBox
22 from eric7.EricWidgets.EricApplication import ericApp
22 from eric7.EricWidgets.EricMainWindow import EricMainWindow 23 from eric7.EricWidgets.EricMainWindow import EricMainWindow
23 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget 24 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget
25 from eric7.SystemUtilities import FileSystemUtilities
24 26
25 from .IconEditorGrid import IconEditorGrid, IconEditorTool 27 from .IconEditorGrid import IconEditorGrid, IconEditorTool
26 28
27 29
28 class IconEditorWindow(EricMainWindow): 30 class IconEditorWindow(EricMainWindow):
1280 Private method to load an icon file. 1282 Private method to load an icon file.
1281 1283
1282 @param fileName name of the icon file to load 1284 @param fileName name of the icon file to load
1283 @type str 1285 @type str
1284 """ 1286 """
1285 img = QImage(fileName) 1287 img = QImage()
1288 if self.fromEric and FileSystemUtilities.isRemoteFileName(fileName):
1289 try:
1290 data = (
1291 ericApp()
1292 .getObject("EricServer")
1293 .getServiceInterface("FileSystem")
1294 .readFile(fileName)
1295 )
1296 img.loadFromData(data)
1297 except OSError as err:
1298 EricMessageBox.warning(
1299 self,
1300 self.tr("eric Icon Editor"),
1301 self.tr(
1302 """<p>The file <b>{0}</b> cannot be loaded.</p>"""
1303 """<p>Reason: {1}</p>"""
1304 ).format(fileName, str(err)),
1305 )
1306 return
1307 else:
1308 img.load(fileName)
1286 if img.isNull(): 1309 if img.isNull():
1287 EricMessageBox.warning( 1310 EricMessageBox.warning(
1288 self, 1311 self,
1289 self.tr("eric Icon Editor"), 1312 self.tr("eric Icon Editor"),
1290 self.tr("Cannot read file '{0}'.").format(fileName), 1313 self.tr("Cannot read file '{0}'.").format(fileName),
1301 @type str 1324 @type str
1302 @return flag indicating success 1325 @return flag indicating success
1303 @rtype bool 1326 @rtype bool
1304 """ 1327 """
1305 img = self.__editor.iconImage() 1328 img = self.__editor.iconImage()
1306 res = img.save(fileName) 1329 if self.fromEric and FileSystemUtilities.isRemoteFileName(fileName):
1330 fsInterface = (
1331 ericApp().getObject("EricServer").getServiceInterface("FileSystem")
1332 )
1333 imageFormat = fsInterface.splitext(fileName)[1][1:].upper()
1334 data = QByteArray()
1335 buffer = QBuffer(data)
1336 res = img.save(buffer, imageFormat)
1337 if res:
1338 try:
1339 fsInterface.writeFile(fileName, data)
1340 except OSError as err:
1341 EricMessageBox.warning(
1342 self,
1343 self.tr("eric Icon Editor"),
1344 self.tr(
1345 """<p>The file <b>{0}</b> cannot be written.</p>"""
1346 """<p>Reason: {1}</p>"""
1347 ).format(fileName, str(err)),
1348 )
1349 self.__checkActions()
1350 return False
1351 else:
1352 res = img.save(fileName)
1307 1353
1308 if not res: 1354 if not res:
1309 EricMessageBox.warning( 1355 EricMessageBox.warning(
1310 self, 1356 self,
1311 self.tr("eric Icon Editor"), 1357 self.tr("eric Icon Editor"),
1312 self.tr("Cannot write file '{0}'.").format(fileName), 1358 self.tr("Cannot write file '{0}'.").format(fileName),
1313 ) 1359 )
1314
1315 self.__checkActions() 1360 self.__checkActions()
1316
1317 return False 1361 return False
1318 1362
1319 self.__editor.setDirty(False, setCleanState=True) 1363 self.__editor.setDirty(False, setCleanState=True)
1320 1364
1321 self.__setCurrentFile(fileName) 1365 self.__setCurrentFile(fileName)

eric ide

mercurial