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); }
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 }
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; }
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; };
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())); }