void FSBrowser::entryOpenedHandler() { FSEntryWidget *entry = qobject_cast<FSEntryWidget*>(this->sender()); if (_browseMode == BrowseOpenFolder) { emit entryOpened(entry->path()); } else { if (entry->entryType() == FSEntry::Folder) _model->setPath(entry->path()); else emit entryOpened(entry->path()); } }
BackstageComputer::BackstageComputer(QWidget *parent) : BackstagePage(parent), ui(new Ui::BackstageComputer) { _hasFileName = false; ui->setupUi(this); _model = new FSBMRecentFolders(this); ui->browser->setBrowseMode(FSBrowser::BrowseOpenFolder); ui->browser->setViewType(FSBrowser::ListView); ui->browser->setFSModel(_model); installEventFilter(this); connect(ui->browser, SIGNAL(entryOpened(QString)), this, SLOT(selectionMade(QString))); connect(ui->browseButton, SIGNAL(clicked(bool)), this, SLOT(browseSelected())); }
OpenSaveWidget::OpenSaveWidget(QWidget *parent) : QWidget(parent) { _mode = FileEvent::FileOpen; _currentFileHasPath = false; _currentFileReadOnly = false; QGridLayout *layout = new QGridLayout(this); layout->setContentsMargins(0, 0, 0, 0); setLayout(layout); _tabWidget = new VerticalTabWidget(this); _tabWidget->setMaximumWidth(800); QWidget *webWidget = new QWidget(this); /*QGridLayout *webWidgetLayout = new QGridLayout(webWidget); webWidgetLayout->setMargin(36); QFrame *webFrame = new QFrame(webWidget); QGridLayout *webLayout = new QGridLayout(webFrame); webFrame->setLayout(webLayout); webLayout->setMargin(0); webFrame->setFrameShape(QFrame::Box); webFrame->setFrameStyle(QFrame::Panel); webFrame->setLineWidth(1); webFrame->setMinimumWidth(200); QWebView *webView = new QWebView(webFrame); webLayout->addWidget(webView); webWidgetLayout->addWidget(webFrame);*/ layout->addWidget(_tabWidget, 0, 0); layout->addWidget(webWidget, 0, 1); _fsmRecent = new FSBMRecent(this); _fsmExamples = new FSBMExamples(this); _bsRecent = new FSBrowser(_tabWidget); _bsRecent->setFSModel(_fsmRecent); _bsComputer = new BackstageComputer(_tabWidget); _bsOSF = new BackstageOSF(_tabWidget); _bsExamples = new FSBrowser(_tabWidget); _bsExamples->setFSModel(_fsmExamples); _tabWidget->addTab(_bsRecent, "Recent"); _tabWidget->addTab(_bsComputer, "Computer"); _tabWidget->addTab(_bsOSF, "OSF"); _tabWidget->addTab(_bsExamples, "Examples"); connect(_bsRecent, SIGNAL(entryOpened(QString)), this, SLOT(dataSetOpenRequestHandler(QString))); connect(_bsComputer, SIGNAL(dataSetIORequest(FileEvent *)), this, SLOT(dataSetIORequestHandler(FileEvent *))); connect(_bsOSF, SIGNAL(dataSetIORequest(FileEvent *)), this, SLOT(dataSetIORequestHandler(FileEvent *))); connect(_bsExamples, SIGNAL(entryOpened(QString)), this, SLOT(dataSetOpenExampleRequestHandler(QString))); VerticalTabWidget *osvw = tabWidget(); VerticalTabBar *vtb = osvw->tabBar(); connect(vtb, SIGNAL(currentChanged(int)), this, SLOT(tabWidgetChanged(int))); }
BackstageOSF::BackstageOSF(QWidget *parent) : BackstagePage(parent) { QGridLayout *layout = new QGridLayout(this); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); setLayout(layout); QWidget *topRow = new QWidget(this); layout->addWidget(topRow); QGridLayout *topRowLayout = new QGridLayout(); topRowLayout->setContentsMargins(0, 6, 12, 0); topRow->setLayout(topRowLayout); QLabel *label = new QLabel("Open Science Framework", topRow); QSizePolicy sp = label->sizePolicy(); sp.setHorizontalStretch(1); label->setSizePolicy(sp); label->setContentsMargins(12, 12, 12, 1); topRowLayout->addWidget(label, 0, 0); _nameButton = new QToolButton(topRow); _nameButton->hide(); topRowLayout->addWidget(_nameButton, 0, 1); connect(_nameButton, SIGNAL(clicked(bool)), this, SLOT(nameClicked())); QWidget *buttonsWidget = new QWidget(this); buttonsWidget->setContentsMargins(0, 0, 0, 0); layout->addWidget(buttonsWidget); QGridLayout *buttonsWidgetLayout = new QGridLayout(buttonsWidget); buttonsWidgetLayout->setContentsMargins(0, 0, 12, 0); buttonsWidget->setLayout(buttonsWidgetLayout); _breadCrumbs = new BreadCrumbs(buttonsWidget); buttonsWidgetLayout->addWidget(_breadCrumbs, 0, 0); _newFolderButton = new QToolButton(buttonsWidget); _newFolderButton->setText("New Folder"); _newFolderButton->hide(); buttonsWidgetLayout->addWidget(_newFolderButton, 0, 2); _fileNameContainer = new QWidget(this); _fileNameContainer->hide(); _fileNameContainer->setObjectName("browseContainer"); layout->addWidget(_fileNameContainer); QHBoxLayout *saveLayout = new QHBoxLayout(_fileNameContainer); _fileNameContainer->setLayout(saveLayout); _fileNameTextBox = new QLineEdit(_fileNameContainer); QSizePolicy policy = _fileNameTextBox->sizePolicy(); policy.setHorizontalStretch(1); _fileNameTextBox->setSizePolicy(policy); _fileNameTextBox->setEnabled(false); saveLayout->addWidget(_fileNameTextBox); _saveButton = new QPushButton(_fileNameContainer); _saveButton->setText("Save"); _saveButton->setEnabled(false); saveLayout->addWidget(_saveButton, 0, Qt::AlignRight); QWidget *line; line = new QWidget(this); line->setFixedHeight(1); line->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); line->setStyleSheet("QWidget { background-color: #A3A4A5 ; }"); layout->addWidget(line); _model = new FSBMOSF(); connect(_model, SIGNAL(authenticationSuccess()), this, SLOT(updateUserDetails())); connect(_model, SIGNAL(authenticationClear()), this, SLOT(updateUserDetails())); _fsBrowser = new FSBrowser(this); _fsBrowser->setViewType(FSBrowser::ListView); _fsBrowser->setFSModel(_model); layout->addWidget(_fsBrowser); _breadCrumbs->setModel(_model); _breadCrumbs->setEnabled(false); connect(_fsBrowser, SIGNAL(entryOpened(QString)), this, SLOT(notifyDataSetOpened(QString))); connect(_fsBrowser, SIGNAL(entrySelected(QString)), this, SLOT(notifyDataSetSelected(QString))); connect(_saveButton, SIGNAL(clicked()), this, SLOT(saveClicked())); connect(_newFolderButton, SIGNAL(clicked(bool)), this, SLOT(newFolderClicked())); line = new QWidget(this); line->setFixedWidth(1); line->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); line->setStyleSheet("QWidget { background-color: #A3A4A5 ; }"); layout->addWidget(line, 0, 1, 6, 1); QWidget *about = new QWidget(this); about->setObjectName("aboutOSF"); about->setStyleSheet("#aboutOSF { border-top: 1px solid #A3A4A5 ; }"); layout->addWidget(about); QHBoxLayout *aboutLayout = new QHBoxLayout(about); aboutLayout->setSpacing(12); about->setLayout(aboutLayout); HyperlinkLabel *aboutOSF = new HyperlinkLabel(about); aboutOSF->setText("<a href='https://osf.io/getting-started/'>About the OSF</a>"); HyperlinkLabel *registerOSF = new HyperlinkLabel(about); registerOSF->setText("<a href='https://osf.io/'>Register</a>"); aboutLayout->addWidget(aboutOSF); aboutLayout->addWidget(registerOSF); aboutLayout->addStretch(1); }