src/eric7/WebBrowser/Session/SessionManager.py

branch
eric7
changeset 9413
80c06d472826
parent 9286
f6f950e4c8f0
child 9473
3f23dbf37dbe
equal deleted inserted replaced
9412:45e7bb09c120 9413:80c06d472826
35 QLabel, 35 QLabel,
36 QComboBox, 36 QComboBox,
37 QVBoxLayout, 37 QVBoxLayout,
38 ) 38 )
39 39
40 from EricWidgets import EricMessageBox 40 from eric7.EricWidgets import EricMessageBox
41 from EricGui.EricOverrideCursor import EricOverrideCursor 41 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor
42 42
43 import Utilities 43 from eric7 import Preferences, Utilities
44 import Preferences
45 44
46 45
47 class SessionMetaData: 46 class SessionMetaData:
48 """ 47 """
49 Class implementing a data structure to store meta data for a session. 48 Class implementing a data structure to store meta data for a session.
190 Private slot to save the current session state. 189 Private slot to save the current session state.
191 190
192 @param startTimer flag indicating to restart the timer 191 @param startTimer flag indicating to restart the timer
193 @type bool 192 @type bool
194 """ 193 """
195 from WebBrowser.WebBrowserWindow import WebBrowserWindow 194 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
196 195
197 if not WebBrowserWindow.isPrivate(): 196 if not WebBrowserWindow.isPrivate():
198 Preferences.setWebBrowser("SessionLastActivePath", self.__lastActiveSession) 197 Preferences.setWebBrowser("SessionLastActivePath", self.__lastActiveSession)
199 self.writeCurrentSession(self.__lastActiveSession) 198 self.writeCurrentSession(self.__lastActiveSession)
200 199
206 Public method to write the current session to the given file name. 205 Public method to write the current session to the given file name.
207 206
208 @param sessionFileName file name of the session 207 @param sessionFileName file name of the session
209 @type str 208 @type str
210 """ 209 """
211 from WebBrowser.WebBrowserWindow import WebBrowserWindow 210 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
212 211
213 sessionData = {"Windows": []} 212 sessionData = {"Windows": []}
214 213
215 activeWindow = WebBrowserWindow.getWindow() 214 activeWindow = WebBrowserWindow.getWindow()
216 for window in WebBrowserWindow.mainWindows(): 215 for window in WebBrowserWindow.mainWindows():
412 411
413 sessionData = self.readSessionFromFile(sessionFilePath) 412 sessionData = self.readSessionFromFile(sessionFilePath)
414 if not sessionData or not sessionData["Windows"]: 413 if not sessionData or not sessionData["Windows"]:
415 return 414 return
416 415
417 from WebBrowser.WebBrowserWindow import WebBrowserWindow 416 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
418 417
419 window = WebBrowserWindow.mainWindow() 418 window = WebBrowserWindow.mainWindow()
420 419
421 if (flags & SessionManager.SwitchSession) == SessionManager.SwitchSession: 420 if (flags & SessionManager.SwitchSession) == SessionManager.SwitchSession:
422 # save the current session 421 # save the current session
443 442
444 @param window reference to main window to restore to 443 @param window reference to main window to restore to
445 @type WebBrowserWindow 444 @type WebBrowserWindow
446 @param sessionData dictionary containing the session data 445 @param sessionData dictionary containing the session data
447 """ 446 """
448 from WebBrowser.WebBrowserWindow import WebBrowserWindow 447 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
449 448
450 if window is None: 449 if window is None:
451 window = WebBrowserWindow.mainWindow() 450 window = WebBrowserWindow.mainWindow()
452 451
453 with EricOverrideCursor(): 452 with EricOverrideCursor():
483 @param sessionFilePath name of the session file 482 @param sessionFilePath name of the session file
484 @type str 483 @type str
485 @param flags flags determining a rename or clone operation 484 @param flags flags determining a rename or clone operation
486 @type int 485 @type int
487 """ 486 """
488 from WebBrowser.WebBrowserWindow import WebBrowserWindow 487 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
489 488
490 suggestedName = pathlib.Path(sessionFilePath).stem 489 suggestedName = pathlib.Path(sessionFilePath).stem
491 if flags & SessionManager.CloneSession: 490 if flags & SessionManager.CloneSession:
492 suggestedName += "_cloned" 491 suggestedName += "_cloned"
493 title = self.tr("Clone Session") 492 title = self.tr("Clone Session")
549 548
550 def saveSession(self): 549 def saveSession(self):
551 """ 550 """
552 Public method to save the current session. 551 Public method to save the current session.
553 """ 552 """
554 from WebBrowser.WebBrowserWindow import WebBrowserWindow 553 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
555 554
556 newName, ok = QInputDialog.getText( 555 newName, ok = QInputDialog.getText(
557 WebBrowserWindow.getWindow(), 556 WebBrowserWindow.getWindow(),
558 self.tr("Save Session"), 557 self.tr("Save Session"),
559 self.tr("Please enter a name for the session:"), 558 self.tr("Please enter a name for the session:"),
591 @param sessionFilePath file name of the session file to replace with 590 @param sessionFilePath file name of the session file to replace with
592 @type str 591 @type str
593 @return flag indicating success 592 @return flag indicating success
594 @rtype bool 593 @rtype bool
595 """ 594 """
596 from WebBrowser.WebBrowserWindow import WebBrowserWindow 595 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
597 596
598 res = EricMessageBox.yesNo( 597 res = EricMessageBox.yesNo(
599 WebBrowserWindow.getWindow(), 598 WebBrowserWindow.getWindow(),
600 self.tr("Restore Backup"), 599 self.tr("Restore Backup"),
601 self.tr("""Are you sure you want to replace the current""" """ session?"""), 600 self.tr("""Are you sure you want to replace the current""" """ session?"""),
632 Public method to delete a session. 631 Public method to delete a session.
633 632
634 @param sessionFilePath file name of the session file to be deleted 633 @param sessionFilePath file name of the session file to be deleted
635 @type str 634 @type str
636 """ 635 """
637 from WebBrowser.WebBrowserWindow import WebBrowserWindow 636 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
638 637
639 sfp = pathlib.Path(sessionFilePath) 638 sfp = pathlib.Path(sessionFilePath)
640 res = EricMessageBox.yesNo( 639 res = EricMessageBox.yesNo(
641 WebBrowserWindow.getWindow(), 640 WebBrowserWindow.getWindow(),
642 self.tr("Delete Session"), 641 self.tr("Delete Session"),
649 648
650 def newSession(self): 649 def newSession(self):
651 """ 650 """
652 Public method to start a new session. 651 Public method to start a new session.
653 """ 652 """
654 from WebBrowser.WebBrowserWindow import WebBrowserWindow 653 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
655 654
656 newName, ok = QInputDialog.getText( 655 newName, ok = QInputDialog.getText(
657 WebBrowserWindow.getWindow(), 656 WebBrowserWindow.getWindow(),
658 self.tr("New Session"), 657 self.tr("New Session"),
659 self.tr("Please enter a name for the new session:"), 658 self.tr("Please enter a name for the new session:"),
695 694
696 def showSessionManagerDialog(self): 695 def showSessionManagerDialog(self):
697 """ 696 """
698 Public method to show the session manager dialog. 697 Public method to show the session manager dialog.
699 """ 698 """
700 from WebBrowser.WebBrowserWindow import WebBrowserWindow 699 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
701 from .SessionManagerDialog import SessionManagerDialog 700 from .SessionManagerDialog import SessionManagerDialog
702 701
703 dlg = SessionManagerDialog(WebBrowserWindow.getWindow()) 702 dlg = SessionManagerDialog(WebBrowserWindow.getWindow())
704 dlg.open() 703 dlg.open()
705 704
708 Public method to select a session to be restored. 707 Public method to select a session to be restored.
709 708
710 @return name of the session file to be restored 709 @return name of the session file to be restored
711 @rtype str 710 @rtype str
712 """ 711 """
713 from WebBrowser.WebBrowserWindow import WebBrowserWindow 712 from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow
714 713
715 self.__fillMetaDataList() 714 self.__fillMetaDataList()
716 715
717 if self.__sessionMetaData: 716 if self.__sessionMetaData:
718 # skip, if no session file available 717 # skip, if no session file available

eric ide

mercurial