Source code for qtpyvcp.widgets.dialogs.open_file_dialog

from qtpy.QtCore import QUrl, QFileInfo
from qtpy.QtWidgets import QFileDialog

from qtpyvcp.plugins import getPlugin
from qtpyvcp.utilities.logger import getLogger
from qtpyvcp.widgets import VCPPrimitiveWidget

LOG = getLogger(__name__)

from qtpyvcp.utilities.info import Info
INFO = Info()

from qtpyvcp.actions.program_actions import load as loadProgram


[docs]class OpenFileDialog(QFileDialog, VCPPrimitiveWidget): """NGC file chooser dialog.""" def __init__(self, parent=None): super(OpenFileDialog, self).__init__(parent) self.dm = getPlugin('persistent_data_manager') nc_file_dir = INFO.getProgramPrefix() nc_file_types = INFO.getQtFilefilter() self.setDirectory(nc_file_dir) self.setNameFilters(nc_file_types.split(';;')) self.setOption(self.DontUseNativeDialog) self.setModal(True) urls = self.sidebarUrls() urls.append(QUrl.fromLocalFile(nc_file_dir)) self.setSidebarUrls(urls)
[docs] def accept(self): path = self.selectedFiles()[0] stats = QFileInfo(path) if stats.isDir(): self.setDirectory(path) return if not stats.exists(): return loadProgram(path) self.hide()
def sidbarUrlsToStringList(self): return [qurl.toString() for qurl in self.sidebarUrls()] def setSidebarUrlsFromStringList(self, urls): if urls is not None: self.setSidebarUrls([QUrl(url) for url in urls])
[docs] def initialize(self): self.setViewMode(self.dm.getData('app.openFileDialog.viewMode', OpenFileDialog.Detail)) urls = self.dm.getData('app.openFileDialog.sidebarUrls') self.setSidebarUrlsFromStringList(urls)
[docs] def terminate(self): self.dm.setData('app.openFileDialog.viewMode', self.viewMode()) self.dm.setData('app.openFileDialog.sidebarUrls', self.sidbarUrlsToStringList())