9 |
9 |
10 from PyQt6.QtCore import pyqtSlot, pyqtSignal, QPoint, QFileInfo, QUrl, QThread |
10 from PyQt6.QtCore import pyqtSlot, pyqtSignal, QPoint, QFileInfo, QUrl, QThread |
11 from PyQt6.QtGui import QDesktopServices |
11 from PyQt6.QtGui import QDesktopServices |
12 from PyQt6.QtWidgets import QWidget, QApplication, QMenu |
12 from PyQt6.QtWidgets import QWidget, QApplication, QMenu |
13 |
13 |
14 from E5Gui import E5MessageBox, E5FileDialog |
14 from E5Gui import EricMessageBox, EricFileDialog |
15 |
15 |
16 from .Ui_IrcNetworkWidget import Ui_IrcNetworkWidget |
16 from .Ui_IrcNetworkWidget import Ui_IrcNetworkWidget |
17 |
17 |
18 from .IrcUtilities import ircFilter, ircTimestamp |
18 from .IrcUtilities import ircFilter, ircTimestamp |
19 |
19 |
414 if hasText: |
414 if hasText: |
415 if Utilities.isWindowsPlatform(): |
415 if Utilities.isWindowsPlatform(): |
416 htmlExtension = "htm" |
416 htmlExtension = "htm" |
417 else: |
417 else: |
418 htmlExtension = "html" |
418 htmlExtension = "html" |
419 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
419 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter( |
420 self, |
420 self, |
421 self.tr("Save Messages"), |
421 self.tr("Save Messages"), |
422 "", |
422 "", |
423 self.tr( |
423 self.tr( |
424 "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)") |
424 "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)") |
425 .format(htmlExtension), |
425 .format(htmlExtension), |
426 None, |
426 None, |
427 E5FileDialog.DontConfirmOverwrite) |
427 EricFileDialog.DontConfirmOverwrite) |
428 if fname: |
428 if fname: |
429 ext = QFileInfo(fname).suffix() |
429 ext = QFileInfo(fname).suffix() |
430 if not ext: |
430 if not ext: |
431 ex = selectedFilter.split("(*")[1].split(")")[0] |
431 ex = selectedFilter.split("(*")[1].split(")")[0] |
432 if ex: |
432 if ex: |
433 fname += ex |
433 fname += ex |
434 ext = QFileInfo(fname).suffix() |
434 ext = QFileInfo(fname).suffix() |
435 if QFileInfo(fname).exists(): |
435 if QFileInfo(fname).exists(): |
436 res = E5MessageBox.yesNo( |
436 res = EricMessageBox.yesNo( |
437 self, |
437 self, |
438 self.tr("Save Messages"), |
438 self.tr("Save Messages"), |
439 self.tr("<p>The file <b>{0}</b> already exists." |
439 self.tr("<p>The file <b>{0}</b> already exists." |
440 " Overwrite it?</p>").format(fname), |
440 " Overwrite it?</p>").format(fname), |
441 icon=E5MessageBox.Warning) |
441 icon=EricMessageBox.Warning) |
442 if not res: |
442 if not res: |
443 return |
443 return |
444 fname = Utilities.toNativeSeparators(fname) |
444 fname = Utilities.toNativeSeparators(fname) |
445 |
445 |
446 try: |
446 try: |
450 self.messages.toPlainText() |
450 self.messages.toPlainText() |
451 ) |
451 ) |
452 with open(fname, "w", encoding="utf-8") as f: |
452 with open(fname, "w", encoding="utf-8") as f: |
453 f.write(txt) |
453 f.write(txt) |
454 except OSError as err: |
454 except OSError as err: |
455 E5MessageBox.critical( |
455 EricMessageBox.critical( |
456 self, |
456 self, |
457 self.tr("Error saving Messages"), |
457 self.tr("Error saving Messages"), |
458 self.tr( |
458 self.tr( |
459 """<p>The messages contents could not be written""" |
459 """<p>The messages contents could not be written""" |
460 """ to <b>{0}</b></p><p>Reason: {1}</p>""") |
460 """ to <b>{0}</b></p><p>Reason: {1}</p>""") |