eric7/MultiProject/MultiProject.py

branch
eric7
changeset 9152
8a68afaf1ba2
parent 8943
23f9c7b9e18e
child 9187
e53e07c6f482
equal deleted inserted replaced
9151:8c5296fe3056 9152:8a68afaf1ba2
8 """ 8 """
9 9
10 import os 10 import os
11 import shutil 11 import shutil
12 import contextlib 12 import contextlib
13 import pathlib
13 14
14 from PyQt6.QtCore import ( 15 from PyQt6.QtCore import (
15 pyqtSignal, pyqtSlot, QFileInfo, QFile, QIODevice, QObject, QUuid 16 pyqtSignal, pyqtSlot, QFile, QIODevice, QObject, QUuid
16 ) 17 )
17 from PyQt6.QtWidgets import QMenu, QDialog, QToolBar 18 from PyQt6.QtWidgets import QMenu, QDialog, QToolBar
18 19
19 from Globals import recentNameMultiProject 20 from Globals import recentNameMultiProject
20 21
115 self.recent = [] 116 self.recent = []
116 Preferences.Prefs.rsettings.sync() 117 Preferences.Prefs.rsettings.sync()
117 rp = Preferences.Prefs.rsettings.value(recentNameMultiProject) 118 rp = Preferences.Prefs.rsettings.value(recentNameMultiProject)
118 if rp is not None: 119 if rp is not None:
119 for f in rp: 120 for f in rp:
120 if QFileInfo(f).exists(): 121 if pathlib.Path(f).exists():
121 self.recent.append(f) 122 self.recent.append(f)
122 123
123 def __saveRecent(self): 124 def __saveRecent(self):
124 """ 125 """
125 Private method to save the list of recently opened filenames. 126 Private method to save the list of recently opened filenames.
606 self.tr("Multi Project Files (*.emj)"), 607 self.tr("Multi Project Files (*.emj)"),
607 defaultFilter, 608 defaultFilter,
608 EricFileDialog.DontConfirmOverwrite) 609 EricFileDialog.DontConfirmOverwrite)
609 610
610 if fn: 611 if fn:
611 ext = QFileInfo(fn).suffix() 612 fpath = pathlib.Path(fn)
612 if not ext: 613 if not fpath.suffix:
613 ex = selectedFilter.split("(*")[1].split(")")[0] 614 ex = selectedFilter.split("(*")[1].split(")")[0]
614 if ex: 615 if ex:
615 fn += ex 616 fpath = fpath.with_suffix(ex)
616 if QFileInfo(fn).exists(): 617 if fpath.exists():
617 res = EricMessageBox.yesNo( 618 res = EricMessageBox.yesNo(
618 self.parent(), 619 self.parent(),
619 self.tr("Save File"), 620 self.tr("Save File"),
620 self.tr("<p>The file <b>{0}</b> already exists." 621 self.tr("<p>The file <b>{0}</b> already exists."
621 " Overwrite it?</p>").format(fn), 622 " Overwrite it?</p>").format(fn),
622 icon=EricMessageBox.Warning) 623 icon=EricMessageBox.Warning)
623 if not res: 624 if not res:
624 return False 625 return False
625 626
626 self.name = QFileInfo(fn).baseName() 627 self.name = fpath.stem()
627 self.__writeMultiProject(fn) 628 self.__writeMultiProject(str(fpath))
628 629
629 self.multiProjectClosed.emit() 630 self.multiProjectClosed.emit()
630 self.multiProjectOpened.emit() 631 self.multiProjectOpened.emit()
631 return True 632 return True
632 else: 633 else:
892 act = self.recentMenu.addAction( 893 act = self.recentMenu.addAction(
893 formatStr.format( 894 formatStr.format(
894 idx, 895 idx,
895 Utilities.compactPath(rp, self.ui.maxMenuFilePathLen))) 896 Utilities.compactPath(rp, self.ui.maxMenuFilePathLen)))
896 act.setData(rp) 897 act.setData(rp)
897 act.setEnabled(QFileInfo(rp).exists()) 898 act.setEnabled(pathlib.Path(rp).exists())
898 899
899 self.recentMenu.addSeparator() 900 self.recentMenu.addSeparator()
900 self.recentMenu.addAction(self.tr('&Clear'), self.clearRecent) 901 self.recentMenu.addAction(self.tr('&Clear'), self.clearRecent)
901 902
902 def __openRecent(self, act): 903 def __openRecent(self, act):

eric ide

mercurial