def __deleteSession(self): """ Private slot to delete the selected session. """ itm = self.sessionsList.currentItem() if itm is None: return filePath = itm.data(0, SessionManagerDialog.SessionFileRole) if filePath: WebBrowserWindow.sessionManager().deleteSession(filePath)
def __refresh(self): """ Private slot to refresh the list of sessions. """ self.sessionsList.clear() sessions = WebBrowserWindow.sessionManager().sessionMetaData( includeBackups=True) for session in sessions: itm = QTreeWidgetItem() itm.setText(0, session.name) itm.setText( 1, QFileInfo(session.filePath).lastModified().toString( "yyyy-MM-dd hh:mm")) itm.setData(0, SessionManagerDialog.SessionFileRole, session.filePath) itm.setData(0, SessionManagerDialog.BackupSessionRole, session.isBackup) itm.setData(0, SessionManagerDialog.ActiveSessionRole, session.isActive) itm.setData(0, SessionManagerDialog.DefaultSessionRole, session.isDefault) self.__updateSessionItem(itm) self.sessionsList.addTopLevelItem(itm) self.__updateButtons()
def __switchToSession(self): """ Private slot to switch to the selected session. """ itm = self.sessionsList.currentItem() if itm is None: return filePath = itm.data(0, SessionManagerDialog.SessionFileRole) if filePath: if itm.data(0, SessionManagerDialog.BackupSessionRole): res = ( WebBrowserWindow.sessionManager().replaceSession(filePath)) else: res = (WebBrowserWindow.sessionManager().switchToSession( filePath)) if res: self.close()
def __init__(self, parent=None): """ Constructor @param parent reference to the parent widget @type QWidget """ super(SessionManagerDialog, self).__init__(parent) self.setupUi(self) self.setAttribute(Qt.WA_DeleteOnClose) self.newButton.clicked.connect(self.__newSession) self.renameButton.clicked.connect(self.__renameSession) self.cloneButton.clicked.connect(self.__cloneSession) self.deleteButton.clicked.connect(self.__deleteSession) self.switchButton.clicked.connect(self.__switchToSession) self.sessionsList.currentItemChanged.connect(self.__updateButtons) self.__refresh() WebBrowserWindow.sessionManager().sessionsMetaDataChanged.connect( self.__refresh)
def __newSession(self): """ Private slot to create a new session. """ WebBrowserWindow.sessionManager().newSession()