FilePickerWidget::FilePickerWidget(QWidget *parent)
    : QWidget(parent), _ui(new Ui::FilePickerWidget)
{
    _ui->setupUi(this);
    _ui->optionsContainer->hide();

    _model.setRootPath(QDir::rootPath());
    //    _model.setNameFilterDisables(false);
    _ui->treeView->setModel(&_model);
    _ui->treeView->installEventFilter(this);
    QSettings settings;
    setCurrentPath(
        settings.value("app/file_browse_last", QDir::homePath()).toString());
    _completer.setModel(&_model);
    _completer.setCompletionMode(QCompleter::InlineCompletion);
    _completer.setCaseSensitivity(Qt::CaseSensitive);
    _ui->filterLineEdit->setCompleter(&_completer);
    _ui->treeView->setColumnWidth(0, 250);
    _ui->filterLineEdit->setFocus();

    connect(&_model, &CustomFileSystemModel::dataChanged,
            [&](const QModelIndex &topLeft, const QModelIndex &bottomRight,
                const QVector<int> &roles) {
                Q_UNUSED(topLeft);
                Q_UNUSED(bottomRight);
                if(!roles.isEmpty() && (roles.first() == Qt::CheckStateRole))
                    emit selectionChanged();
            });
    connect(_ui->filterLineEdit, &QLineEdit::textEdited, this,
            &FilePickerWidget::updateFilter);
    connect(_ui->showHiddenCheckBox, &QCheckBox::toggled, [&](const bool toggled) {
        if(toggled)
            _model.setFilter(_model.filter() | QDir::Hidden);
        else
            _model.setFilter(_model.filter() & ~QDir::Hidden);
    });
    connect(_ui->showSystemCheckBox, &QCheckBox::toggled, [&](const bool toggled) {
        if(toggled)
            _model.setFilter(_model.filter() | QDir::System);
        else
            _model.setFilter(_model.filter() & ~QDir::System);
    });
    connect(_ui->hideLinksCheckBox, &QCheckBox::toggled, [&](const bool toggled) {
        if(toggled)
            _model.setFilter(_model.filter() | QDir::NoSymLinks);
        else
            _model.setFilter(_model.filter() & ~QDir::NoSymLinks);
    });
    connect(_ui->showOptionsButton, &QPushButton::clicked, [&]() {
        _ui->optionsContainer->setVisible(!_ui->optionsContainer->isVisible());
    });
    connect(_ui->filterLineEdit, &QLineEdit::returnPressed, [&]() {
        if(_completer.currentCompletion().isEmpty())
            _ui->treeView->setFocus();
    });
    connect(_ui->homeButton, &QPushButton::clicked,
            [&]() { setCurrentPath(QDir::homePath()); });
}
Beispiel #2
0
void GuiBehind::changeDestinationFolder()
{
    // Show system dialog for folder selection
    QString dirname = QFileDialog::getExistingDirectory(mView, "Change folder", ".",
                      QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
    if (dirname == "") return;

#ifdef SYMBIAN
    // Disable saving on C:
    if (dirname.toUpper().startsWith("C:")) {

        setMessagePageTitle("Destination");
        setMessagePageText("Receiving data on C: is disabled for security reasons. Please select another destination folder.");
        setMessagePageBackState("settings");
        emit gotoMessagePage();
        return;
    }
#endif

    // Set the new folder as current
    QDir::setCurrent(dirname);

    // Save the new setting
    setCurrentPath(dirname);
}
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QFont f("unexistent");
    f.setStyleHint(QFont::Monospace);
    ui->ui_inputPlainTextEdit->setFont(f);
    ui->ui_outputPlainTextEdit->setFont(f);

    setCurrentPath(QString());
    setModified(false);

    connect(ui->ui_sourceEditTableWidget, SIGNAL(cursorPositionChanged(int,int)), this, SLOT(cursorPositionChanged(int,int)));
    connect(ui->ui_sourceEditTableWidget, SIGNAL(textChanged()), this, SLOT(textChanged()));
    connect(ui->ui_newFileAction, SIGNAL(triggered()), this, SLOT(newFile()));
    connect(ui->ui_openFileAction, SIGNAL(triggered()), this, SLOT(openFile()));
    connect(ui->ui_saveFileAction, SIGNAL(triggered()), this, SLOT(saveFile()));
    connect(ui->ui_saveAsAction, SIGNAL(triggered()), this, SLOT(saveFileAs()));
    connect(ui->ui_quitAction, SIGNAL(triggered()), this, SLOT(close()));

    connect(ui->ui_setInterpreterAction, SIGNAL(triggered()), this, SLOT(setInterpreter()));
    connect(ui->ui_runInterpreterAction, SIGNAL(triggered()), this, SLOT(runInterpreter()));
}
void MainWindow::openFile()
{
    if(saveChanges())
    {
        QFileDialog openDialog(this);
        openDialog.setWindowTitle("Open File");
        openDialog.setFileMode(QFileDialog::ExistingFile);
        openDialog.setNameFilters(QStringList() << "Rail Files (*.rail)" << "Text Files (*.txt)" << "All Files (*.*)");

        if(openDialog.exec() && !openDialog.selectedFiles().isEmpty())
        {
            QString filePath = openDialog.selectedFiles().first();
            QFile file(filePath);
            if(file.open(QIODevice::ReadOnly | QIODevice::Text))
            {
                setCurrentPath(filePath);
                ui->ui_sourceEditTableWidget->clear();
                ui->ui_inputPlainTextEdit->clear();
                ui->ui_outputPlainTextEdit->clear();
                ui->ui_sourceEditTableWidget->setPlainText(file.readAll());
                setModified(false);
            }
            file.close();
        }
    }
}
Beispiel #5
0
bool MainWindow::savePath(const QString &path)
{
	if (!controller)
		return false;
	
	if (path.isEmpty())
		return showSaveAsDialog();
	
	const FileFormat *format = FileFormats.findFormatForFilename(path);
	if (format->isExportLossy())
	{
		QString message = tr("This map is being saved as a \"%1\" file. Information may be lost.\n\nPress Yes to save in this format.\nPress No to choose a different format.").arg(format->description());
		int result = QMessageBox::warning(this, tr("Warning"), message, QMessageBox::Yes, QMessageBox::No);
		if (result != QMessageBox::Yes)
			return showSaveAsDialog();
	}
	
	if (!controller->save(path))
		return false;
	
	setMostRecentlyUsedFile(path);
	
	setHasAutosaveConflict(false);
	removeAutosaveFile();
	
	if (path != currentPath())
	{
		setCurrentPath(path);
		removeAutosaveFile();
	}
	
	setHasUnsavedChanges(false);
	
	return true;
}
void FilePickerWidget::reset()
{
    _model.reset();
    _ui->treeView->reset();
    QSettings settings;
    setCurrentPath(
        settings.value("app/file_browse_last", QDir::homePath()).toString());
}
Beispiel #7
0
void EnemyObject::setFixPath(vector<int>& p)
{
	resetPath(fixPath);
	for (unsigned int i = 0; i < p.size(); i++)
	{
		fixPath.push_back(p[i]);
	}
	setCurrentPath(fixPath);
}
	//--------------------------------------------------------------------------
	void BaseFileDialog::readConfig()
	{
		Real defaultSplitterPosition = StrConv::fromString<Real>(
			mSplitterH->getUserString("DefaultPosition"));

		if(!getConfigSection().empty())
		{
			UISettings& ui = UISettings::getSingleton();
			setCurrentPath( ui.getSetting<String>("CurrentPath", getConfigSection(), mDefaultPath));
			setCurrentFilter( ui.getSetting<size_t>("CurrentFilter", getConfigSection(), mDefaultFilter));
			setSplitterHPosition( ui.getSetting<float>("SplitterPosition", getConfigSection(), defaultSplitterPosition));
		}
		else
		{
			setSplitterHPosition( defaultSplitterPosition );
			setCurrentPath( mDefaultPath );
			setCurrentFilter( mDefaultFilter );
		}
	}
void MainWindow::newFile()
{
    if(saveChanges())
    {
        ui->ui_sourceEditTableWidget->clear();
        ui->ui_inputPlainTextEdit->clear();
        ui->ui_outputPlainTextEdit->clear();
        setModified(false);
        setCurrentPath(QString());
    }
}
Beispiel #10
0
imageShape_testApp::imageShape_testApp() {
	setCurrentPath(applicationGetResourceDirectory());
	setWindowMouseMoveEnabled(false);

	addModifier(new poCamera2D());

	poImageShape *shp = new poImageShape("test.png");
	shp->addEvent(PO_MOUSE_DOWN_INSIDE_EVENT, this);
	shp->setAlignment(PO_ALIGN_CENTER_CENTER);
	shp->position = getWindowCenter();
	addChild(shp);
}
void MainWindow::save(QString filePath)
{
    QFile file(filePath);
    if (!file.open(QFile::WriteOnly | QFile::Text))
    {
        return;
    }
    QTextStream out(&file);
    out << ui->ui_sourceEditTableWidget->toPlainText();
    file.close();
    setModified(false);
    setCurrentPath(filePath);
}
	//--------------------------------------------------------------------------	
	void BaseFileDialog::notifyTreeControlNodeSelected(TreeControl* _sender, TreeControl::Node* _node)
	{
		if(_node)
		{
			String newPath = *(_node->getData<String>());
			setCurrentPath(newPath);
			if(mCurrentPath != newPath)
			{
				mCurrentPath = newPath;
				setNeedUpdateCurrentPath();
				setNeedUpdateFilesInFolder();
			}
		}
	}
	//--------------------------------------------------------------------------	
	void BaseFileDialog::setCurrentFilename(const String& _filename)
	{
		String path, basename;
		size_t pos = _filename.find_first_of("\\/");
		if(pos != String::npos)
		{
			path = _filename.substr(0, pos + 1);
			basename = _filename.substr(pos + 1);
		}
		else
		{
			path = StringUtil::BLANK;
			basename = _filename;
		}
		setCurrentPath(path);
		setCurrentBasename(basename);
	}
Beispiel #14
0
void QHexEdit::loadFromFile(const QString &path)
{
    QFileInfo fileInf(path);
    if (fileInf.size() > MAX_BINARY_FILE_SIZE)
    {
        QMessageBox::warning(this, ERROR_TOO_LARGE_BINARY_FILE_TITLE,
                             ERROR_TOO_LARGE_BINARY_FILE_MSG.arg(
                                 QString::number(fileInf.size())),
                             QMessageBox::Ok);
        return;
    }
    if (fileInf.size() > SCROLLED_BINARY_FILE_MAX_SIZE)
    {
        QMessageBox::warning(this, WARNING_LARGE_BINARY_FILE_TITLE,
                             WARNING_LARGE_BINARY_FILE_TEXT);
    }
    //Check if the file has already been opened
    //or it is not file at all
    if (getCurrentPath() == fileInf.filePath()
            || !fileInf.isFile())
    {
        return;
    }

    FileLoader *fLoader = new FileLoader();

    fLoader->openFile(fileInf.filePath());

    QByteArray arr;
    fLoader->loadToByteArray(arr);
    setCursorPosition(0);
    clearSelection();
    setData(arr);
    setCurrentPath(fileInf.filePath());
    fLoader->deleteLater();
}
Beispiel #15
0
void MainWindow::setController(MainWindowController* new_controller)
{
	setController(new_controller, false);
	setCurrentPath({});
}
Beispiel #16
0
void MainWindow::setController(MainWindowController* new_controller, const QString& path)
{
	setController(new_controller, true);
	setCurrentPath(path);
}
Beispiel #17
0
GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
                           const QSharedPointer<GerritServer> &s,
                           const QString &repository,
                           QWidget *parent)
    : QDialog(parent)
    , m_parameters(p)
    , m_server(s)
    , m_filterModel(new QSortFilterProxyModel(this))
    , m_ui(new Ui::GerritDialog)
    , m_model(new GerritModel(p, this))
    , m_queryModel(new QStringListModel(this))
{
    setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);

    m_ui->setupUi(this);
    m_ui->remoteComboBox->setParameters(m_parameters);
    m_ui->remoteComboBox->setFallbackEnabled(true);
    m_queryModel->setStringList(m_parameters->savedQueries);
    QCompleter *completer = new QCompleter(this);
    completer->setModel(m_queryModel);
    m_ui->queryLineEdit->setSpecialCompleter(completer);
    m_ui->queryLineEdit->setOkColor(Utils::creatorTheme()->color(Utils::Theme::TextColorNormal));
    m_ui->queryLineEdit->setErrorColor(Utils::creatorTheme()->color(Utils::Theme::TextColorError));
    m_ui->queryLineEdit->setValidationFunction([this](Utils::FancyLineEdit *, QString *) {
                                               return m_model->state() != GerritModel::Error;
                                           });
    m_ui->filterLineEdit->setFiltering(true);
    connect(m_ui->filterLineEdit, &Utils::FancyLineEdit::filterChanged,
            m_filterModel, &QSortFilterProxyModel::setFilterFixedString);
    connect(m_ui->queryLineEdit, &QLineEdit::returnPressed, this, &GerritDialog::refresh);
    connect(m_model, &GerritModel::stateChanged, m_ui->queryLineEdit, &Utils::FancyLineEdit::validate);
    connect(m_ui->remoteComboBox, &GerritRemoteChooser::remoteChanged,
            this, &GerritDialog::remoteChanged);
    m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
    m_filterModel->setSourceModel(m_model);
    m_filterModel->setFilterRole(GerritModel::FilterRole);
    m_filterModel->setSortRole(GerritModel::SortRole);
    m_ui->treeView->setModel(m_filterModel);
    m_ui->treeView->setActivationMode(Utils::DoubleClickActivation);

    connect(&m_progressIndicatorTimer, &QTimer::timeout,
            [this]() { setProgressIndicatorVisible(true); });
    m_progressIndicatorTimer.setSingleShot(true);
    m_progressIndicatorTimer.setInterval(50); // don't show progress for < 50ms tasks

    m_progressIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicatorSize::Large,
                                                       m_ui->treeView);
    m_progressIndicator->attachToWidget(m_ui->treeView->viewport());
    m_progressIndicator->hide();

    connect(m_model, &GerritModel::stateChanged, this, &GerritDialog::manageProgressIndicator);

    QItemSelectionModel *selectionModel = m_ui->treeView->selectionModel();
    connect(selectionModel, &QItemSelectionModel::currentChanged,
            this, &GerritDialog::slotCurrentChanged);
    connect(m_ui->treeView, &QAbstractItemView::activated,
            this, &GerritDialog::slotActivated);

    m_displayButton = addActionButton(tr("&Show"), [this]() { slotFetchDisplay(); });
    m_cherryPickButton = addActionButton(tr("Cherry &Pick"), [this]() { slotFetchCherryPick(); });
    m_checkoutButton = addActionButton(tr("C&heckout"), [this]() { slotFetchCheckout(); });
    m_refreshButton = addActionButton(tr("&Refresh"), [this]() { refresh(); });

    connect(m_model, &GerritModel::refreshStateChanged,
            m_refreshButton, &QWidget::setDisabled);
    connect(m_model, &GerritModel::refreshStateChanged,
            this, &GerritDialog::slotRefreshStateChanged);
    connect(m_model, &GerritModel::errorText,
            this, [this](const QString &text) {
        if (text.contains("returned error: 401"))
            updateRemotes(true);
    }, Qt::QueuedConnection);

    setCurrentPath(repository);
    slotCurrentChanged();

    m_ui->treeView->setFocus();
    m_refreshButton->setDefault(true);
}