Ejemplo n.º 1
0
void SetStrPreference (const char *name, const char *value)
{
    char * key;
    FILE * prefs;

    fetchFile();

    if (home == NULL) return;

    prefs = fopen(home, "w+");
    if (prefs == NULL) return;

    if (file != NULL)
    {
        for (key = strtok(file, sep); key; key = strtok(NULL, sep))
        {
            if (strstr(key,name)==NULL)
            {
                fprintf(prefs,"%s\n",key);
            }
        }
        free(file);
        file = NULL;
    }

    fprintf(prefs,"%s=%s\n",name,value);

    fclose(prefs);
}
Ejemplo n.º 2
0
void Fetcher::fetchNextShader() {
#ifdef SHADERTOY_API_KEY
  while (!shadersToFetch.empty() && currentNetworkRequests <= 4) {
    QString nextShaderId = shadersToFetch.front();
    shadersToFetch.pop_front();
    QString shaderFile = CONFIG_DIR.absoluteFilePath("shadertoy/" + nextShaderId + ".json");
    QString shaderPreviewFile = CONFIG_DIR.absoluteFilePath("shadertoy/" + nextShaderId + ".jpg");
    if (QFile(shaderFile).exists() && QFile(shaderPreviewFile).exists()) {
      continue;
    }

    if (!QFile(shaderFile).exists()) {
      qDebug() << "Fetching shader " << nextShaderId;
      QUrl url(SHADERTOY_API_URL + QString().sprintf("/%s?key=%s", nextShaderId.toLocal8Bit().constData(), SHADERTOY_API_KEY));
      fetchUrl(url, [&, shaderFile](const QByteArray & replyBuffer) {
        QFile outputFile(shaderFile);
        outputFile.open(QIODevice::WriteOnly);
        outputFile.write(replyBuffer);
        outputFile.close();
      });
    }

    if (!QFile(shaderPreviewFile).exists()) {
      fetchFile(QUrl(SHADERTOY_MEDIA_URL + nextShaderId + ".jpg"), shaderPreviewFile);
    }
  }

  if (shadersToFetch.isEmpty()) {
    timer.stop();
    return;
  }
#endif
}
Ejemplo n.º 3
0
bool DkImageContainerT::loadImageThreaded(bool force) {

#ifdef WITH_QUAZIP
	//zip archives: get zip file fileInfo for checks
	if(isFromZip()) 
		setFilePath(getZipData()->getZipFilePath());
#endif
	
	// check file for updates
	QFileInfo fileInfo = filePath();
	QDateTime modifiedBefore = fileInfo.lastModified();
	fileInfo.refresh();

	if (force || fileInfo.lastModified() != modifiedBefore || getLoader()->isDirty()) {
		qDebug() << "updating image...";
		getThumb()->setImage(QImage());
		clear();
	}

	// null file?
	if (fileInfo.fileName().isEmpty() || !fileInfo.exists()) {

		QString msg = tr("Sorry, the file: %1 does not exist... ").arg(fileName());
		emit showInfoSignal(msg);
		mLoadState = exists_not;
		return false;
	}
	else if (!fileInfo.permission(QFile::ReadUser)) {

		QString msg = tr("Sorry, you are not allowed to read: %1").arg(fileName());
		emit showInfoSignal(msg);
		mLoadState = exists_not;
		return false;
	}

#ifdef WITH_QUAZIP
	//zip archives: use the image file info from now on
	if(isFromZip()) 
		setFilePath(getZipData()->getImageFileName());
#endif
	
	mLoadState = loading;
	fetchFile();
	return true;
}
Ejemplo n.º 4
0
void GetStrPreference (const char *name, char *out, const char *defaut, const int bufferSize)
{
    char * key, *copiedfile;
    int tmplen;

    if ((out==NULL) || (name==NULL)) return;

    if (defaut != NULL)
    {
        strncpy(out,defaut,bufferSize-1);
        out[bufferSize-1]=0;
    }
    else out[0]=0;

    if (file==NULL) fetchFile();
    if (file==NULL) return;

    char tmp[256];
    sprintf(tmp,"%s=",name);
    tmplen = strlen(tmp);

    copiedfile = strdup(file);

    for (key = strtok(copiedfile, sep); key; key = strtok(NULL, sep))
    {
        if (strncmp(key, tmp, tmplen) == 0)
        {
            strncpy(out, key+tmplen, bufferSize-1);
            out[bufferSize-1] = 0;
            free(copiedfile);
            return;
        }
    }
    free(copiedfile);

    return;
}
GofunURLComposer::GofunURLComposer()
{
	setCaption(tr("Url Composer"));
	
	QGridLayout* grid = new QGridLayout(this);
	QGridLayout* grid_url = new QGridLayout();
	
	QGroupBox* gb_advanced = new QGroupBox(tr("Advanced"),this);
	gb_advanced->setColumnLayout(0, Qt::Vertical );
	gb_advanced->layout()->setSpacing( 6 );
	gb_advanced->layout()->setMargin( 5 );
	
	QGridLayout* grid_advanced = new QGridLayout(gb_advanced->layout());
	
	scheme = new QComboBox(gb_advanced);
	scheme->insertItem("http");
	scheme->insertItem("shttp");
	scheme->insertItem("ftp");
	scheme->insertItem("file");
	scheme->insertItem(tr("Other"));
	other_scheme = new QLineEdit(gb_advanced);
	other_scheme->setEnabled(false);
	
	host = new QLineEdit(gb_advanced);
	port = new QLineEdit(gb_advanced);
	QIntValidator* port_validator = new QIntValidator(-1,65535,gb_advanced);
	port->setValidator(port_validator);
	path = new QLineEdit(gb_advanced);
	query = new QLineEdit(gb_advanced);
	
	connect(scheme,SIGNAL(textChanged(const QString&)),this,SLOT(schemeChanged(const QString&)));
	connect(scheme,SIGNAL(activated(const QString& )),this,SLOT(schemeChanged(const QString& )));
	connect(other_scheme,SIGNAL(textChanged(const QString&)),this,SLOT(otherSchemeChanged(const QString&)));
	connect(host,SIGNAL(textChanged(const QString&)),this,SLOT(hostChanged(const QString&)));
	connect(port,SIGNAL(textChanged(const QString&)),this,SLOT(portChanged(const QString&)));
	connect(path,SIGNAL(textChanged(const QString&)),this,SLOT(pathChanged(const QString&)));
	connect(query,SIGNAL(textChanged(const QString&)),this,SLOT(queryChanged(const QString&)));	
	
	grid_advanced->addWidget(new QLabel(tr("Scheme"),gb_advanced),0,0);
	grid_advanced->addWidget(scheme,0,1);
	grid_advanced->addWidget(other_scheme,0,2);
	grid_advanced->addWidget(new QLabel(tr("Host"),gb_advanced),1,0);
	grid_advanced->addMultiCellWidget(host,1,1,1,2);
	grid_advanced->addWidget(new QLabel(tr("Port"),gb_advanced),2,0);
	grid_advanced->addMultiCellWidget(port,2,2,1,2);
	grid_advanced->addWidget(new QLabel(tr("Path"),gb_advanced),3,0);
	grid_advanced->addMultiCellWidget(path,3,3,1,2);
	grid_advanced->addWidget(new QLabel(tr("Query"),gb_advanced),4,0);
	grid_advanced->addMultiCellWidget(query,4,4,1,2);
	
	QGroupBox* gb_fetch = new QGroupBox(tr("Fetch URL"),this);
	gb_fetch->setColumnLayout(3, Qt::Vertical );
	gb_fetch->layout()->setSpacing( 6 );
	gb_fetch->layout()->setMargin( 5 );
	
	QPushButton* fetch_file = new QPushButton(tr("File"),gb_fetch);
	QPushButton* fetch_directory = new QPushButton(tr("Directory"),gb_fetch);
	QPushButton* fetch_browser = new QPushButton(tr("Internet"),gb_fetch);
	
	connect(fetch_file,SIGNAL(clicked()),this,SLOT(fetchFile()));
	connect(fetch_directory,SIGNAL(clicked()),this,SLOT(fetchDirectory()));
	connect(fetch_browser,SIGNAL(clicked()),this,SLOT(fetchWithWebBrowser()));
	
	grid_url->addWidget(gb_fetch,0,0);
	grid_url->addWidget(gb_advanced,0,1);
	grid_url->addWidget(new QLabel(tr("URL"),this),1,0);
	
	QGroupBox* gb_url = new QGroupBox(tr("URL"),this);
	gb_url->setColumnLayout(1, Qt::Vertical );
	gb_url->layout()->setSpacing( 6 );
	gb_url->layout()->setMargin( 5 );

	composed_url = new GofunClipboardLineEdit(gb_url);
	
	connect(composed_url,SIGNAL(textChanged(const QString&)),this,SLOT(composedChanged(const QString&)));
	
	grid_url->addMultiCellWidget(gb_url,1,1,0,1);
	
	QPushButton* ok_button = new QPushButton(tr("Ok"),this);
	QPushButton* cancel_button = new QPushButton(tr("Cancel"),this);
	QPushButton* test_button = new QPushButton(tr("Test"),this);
	
	connect(ok_button,SIGNAL(clicked()),this,SLOT(accept()));
	connect(cancel_button,SIGNAL(clicked()),this,SLOT(reject()));
	connect(test_button,SIGNAL(clicked()),this,SLOT(test()));
	
	grid->addMultiCellLayout(grid_url,0,0,0,3);
	
	grid->addWidget(ok_button,1,0);
	grid->addWidget(cancel_button,1,1);
	QSpacerItem* spacer = new QSpacerItem(40,20,QSizePolicy::Expanding,QSizePolicy::Minimum);
	grid->addItem(spacer,1,2);
	grid->addWidget(test_button,1,3);
	
	link_item = 0;
};
Ejemplo n.º 6
0
MyWidget::MyWidget()
{
    QVBoxLayout * mainLayout;
    setLayout(mainLayout = new QVBoxLayout);
    QVBoxLayout * controlsLayout;
    mainLayout -> addLayout(controlsLayout = new QVBoxLayout);
    mainLayout -> addWidget(myGLWidget = new GLWidget);
    QHBoxLayout * BGLayout;
    controlsLayout -> addLayout(BGLayout = new QHBoxLayout);
    BGLayout -> addWidget(new QLabel("Background Color: "));
    BGLayout -> addWidget(new QLabel("Red"));
    BGLayout -> addWidget(brSlider = new QSlider(Qt::Horizontal));
    BGLayout -> addWidget(new QLabel("Green"));
    BGLayout -> addWidget(bgSlider = new QSlider(Qt::Horizontal));
    BGLayout -> addWidget(new QLabel("Blue"));
    BGLayout -> addWidget(bbSlider = new QSlider(Qt::Horizontal));
    brSlider -> setMinimum(0);
    brSlider -> setMaximum(256);
    brSlider -> setValue(256);
    bgSlider -> setMinimum(0);
    bgSlider -> setMaximum(256);
    bgSlider -> setValue(256);
    bbSlider -> setMinimum(0);
    bbSlider -> setMaximum(256);
    bbSlider -> setValue(256);
    connect(brSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setBGR(int)));
    connect(bgSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setBGG(int)));
    connect(bbSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setBGB(int)));
    QHBoxLayout * cubeDimensionLayout;
    controlsLayout -> addLayout(cubeDimensionLayout = new QHBoxLayout);
    cubeDimensionLayout -> addWidget(new QLabel("Cube Dimensions: "));
    cubeDimensionLayout -> addWidget(new QLabel("Length "));
    cubeDimensionLayout -> addWidget(dxSlider = new QSlider(Qt::Horizontal));
    cubeDimensionLayout -> addWidget(new QLabel("Width "));
    cubeDimensionLayout -> addWidget(dySlider = new QSlider(Qt::Horizontal));
    cubeDimensionLayout -> addWidget(new QLabel("Height "));
    cubeDimensionLayout -> addWidget(dzSlider = new QSlider(Qt::Horizontal));
    dxSlider -> setMinimum(5);
    dxSlider -> setMaximum(15);
    dySlider -> setMinimum(5);
    dySlider -> setMaximum(15);
    dzSlider -> setMinimum(5);
    dzSlider -> setMaximum(15);
    connect(dxSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setCubeX(int)));
    connect(dySlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setCubeY(int)));
    connect(dzSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setCubeZ(int)));
    QHBoxLayout * subdivisionLayout;
    controlsLayout -> addLayout(subdivisionLayout = new QHBoxLayout);
    subdivisionLayout -> addWidget(new QLabel("Subdivision Level"));
    subdivisionLayout -> addWidget(levelSlider = new QSlider(Qt::Horizontal));
    levelSlider -> setMinimum(0);
    levelSlider -> setMaximum(5);
    connect(levelSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setLevel(int)));
    QHBoxLayout * selectionLayout;
    controlsLayout -> addLayout(selectionLayout = new QHBoxLayout);
    QButtonGroup * isWireFrame = new QButtonGroup();
    QRadioButton * wireFrame_true;
    QRadioButton * wireFrame_false;
    isWireFrame -> addButton(wireFrame_false = new QRadioButton("Solid "));
    isWireFrame -> addButton(wireFrame_true = new QRadioButton("WireFrame "));
    selectionLayout -> addWidget(wireFrame_false);
    selectionLayout -> addWidget(wireFrame_true);
    wireFrame_false -> setChecked(true);
    connect(wireFrame_false, SIGNAL(clicked(bool)), myGLWidget, SLOT(setWireFrameFalse(bool)));
    connect(wireFrame_true, SIGNAL(clicked(bool)), myGLWidget, SLOT(setWireFrameTrue(bool)));
    QHBoxLayout * offsetLayout;
    controlsLayout -> addLayout(offsetLayout = new QHBoxLayout);
    QButtonGroup * withOffset = new QButtonGroup();
    QRadioButton * withOffset_true;
    QRadioButton * withOffset_false;
    withOffset -> addButton(withOffset_false = new QRadioButton("No Offset "));
    withOffset -> addButton(withOffset_true = new QRadioButton("Offset "));
    offsetLayout -> addWidget(withOffset_false);
    offsetLayout -> addWidget(withOffset_true);
    withOffset_false -> setChecked(true);
    offsetLayout -> addWidget(new QLabel("Offset Value: "));
    offsetLayout -> addWidget(offsetSlider = new QSlider(Qt::Horizontal));
    connect(withOffset_false, SIGNAL(clicked(bool)), myGLWidget, SLOT(setWithOffsetFalse(bool)));
    connect(withOffset_true, SIGNAL(clicked(bool)), myGLWidget, SLOT(setWithOffsetTrue(bool)));
    connect(offsetSlider, SIGNAL(valueChanged(int)), myGLWidget, SLOT(setOffset(int)));
    offsetSlider -> setMinimum(2);
    offsetSlider -> setMaximum(20);
    offsetSlider -> setValue(11);
    QHBoxLayout * fileLayout;
    controlsLayout -> addLayout(fileLayout = new QHBoxLayout);
    QPushButton * fileInput;
    fileLayout -> addWidget(fileInput = new QPushButton("Open SIF File"));
    connect(fileInput, SIGNAL(clicked()), myGLWidget, SLOT(fetchFile()));
}