void KLFDisplayLabel::display_state(DisplayState state) { KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; pDisplayState = state; if (state == Clear) { setPixmap(QPixmap()); setText(QString()); set_error(false); } QPixmap pix = calc_display_pixmap(); if (state == Error) { set_error(true); setToolTip(pDisplayError); _bigPreviewText = pDisplayError; } if (state == Ok) { QPixmap labelpix = calc_display_pixmap(); setPixmap(labelpix); // un-set any error set_error(false); if (mToolTipFile) { delete mToolTipFile; mToolTipFile = 0; } // no big preview by default _bigPreviewText = ""; // but if one is given then prepare it (prepare it even if "enableToolTipPreview" is false, // because we will need it for the "showBigPreview" button) if ( ! pDisplayTooltip.isNull() ) { QString tempdir = QDir::tempPath(); mToolTipFile = new QTemporaryFile(tempdir+"/klf_tooltip_XXXXXX.png", this); if ( ! mToolTipFile->open() ) { qWarning("WARNING: Failed open for ToolTip Temp Image!\n%s\n", qPrintable(mToolTipFile->fileTemplate())); delete mToolTipFile; mToolTipFile = 0; } else { mToolTipFile->setAutoRemove(true); bool res = pDisplayTooltip.save(mToolTipFile, "PNG"); if ( ! res ) { QMessageBox::critical(this, tr("Error"), tr("Failed write to ToolTip Temp Image file %1!") .arg(mToolTipFile->fileName())); qWarning("WARNING: Failed write to Tooltip temp image to temporary file `%s' !\n", qPrintable(mToolTipFile->fileTemplate())); delete mToolTipFile; mToolTipFile = 0; } else { _bigPreviewText = QString("<img src=\"%1\">").arg(mToolTipFile->fileName()); } } } if (pEnableToolTipPreview) { setToolTip(QString("<p style=\"padding: 8px 8px 8px 8px;\">%1</p>").arg(_bigPreviewText)); } else { setToolTip(QString("")); } } }
bool KLFFilterProcess::run(const QByteArray& indata, const QMap<QString, QByteArray*> outdatalist) { KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; KLFBlockProcess proc; d->exitCode = 0; d->exitStatus = 0; KLF_ASSERT_CONDITION(d->argv.size() > 0, "argv array is empty! No program is given!", return false; ) ;
void KLFDisplayLabel::display(QImage displayimg, QImage tooltipimage, bool labelenabled) { KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; pDisplayImage = displayimg; pDisplayTooltip = tooltipimage; display_state(Ok); // setEnabled(labelenabled); setLabelEnabled(labelenabled); }
void SysTrayIconPlugin::restore() { KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; if (!isMinimized() || !_config->readValue("systrayon").toBool()) return; klfDbg("debug... restoring.") ; klfRestoreWindows(); _mainwin->raise(); _mainwin->activateWindow(); qApp->alert(_mainwin); }
void KLFDisplayLabel::set_error(bool error_on) { KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; setProperty("realTimeLatexError", QVariant(error_on)); QPalette *p; if (error_on) { p = &pErrorPalette; } else { p = &pDefaultPalette; } setAutoFillBackground(true); setStyleSheet(styleSheet()); // force style sheet refresh setPalette(*p); }
SkinConfigWidget::SkinConfigWidget(QWidget *parent, KLFPluginConfigAccess *conf) : QWidget(parent), config(conf), _modified(false) { KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; setupUi(this); if (klfVersionCompare(qVersion(), "4.5.0") >= 0) lblNoteQtVersion->hide(); connect(cbxSkin, SIGNAL(activated(int)), this, SLOT(skinSelected(int))); connect(btnRefresh, SIGNAL(clicked()), this, SLOT(refreshSkin())); // connect(btnInstallSkin, SIGNAL(clicked()), this, SLOT(installSkin())); }
// static Skin SkinConfigWidget::loadSkin(KLFPluginConfigAccess * config, const QString& fn, bool getstylesheet) { Q_UNUSED(getstylesheet) ; KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ; klfDbg("loading skin "<<fn<<", get style sheet="<<getstylesheet) ; Skin skin; skin.fn = fn; QFile f(fn); if ( ! f.open(QIODevice::ReadOnly) ) { qWarning()<<KLF_FUNC_NAME<<": Can't read skin "<<fn<<"!"; return skin; } QDomDocument doc("klf-skin"); QString errMsg; int errLine, errCol; bool r = doc.setContent(&f, false, &errMsg, &errLine, &errCol); if (!r) { qWarning()<<KLF_FUNC_NAME<<": Error parsing file "<<fn<<": "<<errMsg<<" at line "<<errLine<<", col "<<errCol; return skin; } f.close(); QDomElement root = doc.documentElement(); if (root.nodeName() != "klf-skin") { qWarning("%s: Error parsing XML for skin `%s': Bad root node `%s'.\n", KLF_FUNC_NAME, qPrintable(fn), qPrintable(root.nodeName())); return skin; } QMap<QString,QString> defines; QStringList stylesheetpath = QStringList() << QLatin1String(":/plugindata/skin/stylesheets") << config->homeConfigPluginDataDir() + "/stylesheets"; // read XML file QDomNode n; for (n = root.firstChild(); ! n.isNull(); n = n.nextSibling()) { QDomElement e = n.toElement(); // try to convert the node to an element. if ( e.isNull() || n.nodeType() != QDomNode::ElementNode ) continue; if ( e.nodeName() == "name" ) { skin.name = qApp->translate("xmltr_pluginskins", e.text().toUtf8().constData(), "[[tag: <name>]]", QCoreApplication::UnicodeUTF8); continue; } else if ( e.nodeName() == "author" ) { skin.author = e.text(); continue; } else if ( e.nodeName() == "def" ) { QString key = e.attribute("name"); QString value = e.text(); if (QRegExp("^[A-Za-z][A-Za-z0-9_]*$").exactMatch(key)) defines[key] = value; else qWarning()<<KLF_FUNC_NAME<<": file "<<fn<<": Illegal <def> name: "<<key; } else if ( e.nodeName() == "description" ) { skin.description = qApp->translate("xmltr_pluginskins", e.text().toUtf8().constData(), "[[tag: <description>]]", QCoreApplication::UnicodeUTF8); continue; } else if ( e.nodeName() == "stylesheet" ) { QString fnqssbase = e.text().trimmed(); QString fnqss = klfSearchPath(fnqssbase, stylesheetpath); QFile fqss(fnqss); if (fnqss.isEmpty() || !fqss.exists() || !fqss.open(QIODevice::ReadOnly)) { qWarning()<<KLF_FUNC_NAME<<"Can't open qss-stylesheet file "<<fnqssbase <<" while reading skin "<<fn<<"."; continue; } QString ss = QString::fromUtf8(fqss.readAll()); if (!defines.isEmpty()) { // we need to process <def>ines ... QRegExp alldefines_rx = QRegExp("\\b("+QStringList(defines.keys()).join("|")+")\\b"); int k = 0; while ( (k = alldefines_rx.indexIn(ss, k+1)) != -1) { QString key = alldefines_rx.cap(1); KLF_ASSERT_CONDITION( defines.contains(key), "Error: key "<<key<<" found, but not in defines=" <<defines<<"?!?", ++k; continue; ) ; QString value = defines[key]; klfDbg("Substituting def. "<<key<<" by "<<value<<" in style sheet "<<fnqss<<" for "<<fn) ; ss.replace(k, alldefines_rx.matchedLength(), value); k += value.length(); } klfDbg("def-Replaced style sheet is \n"<<ss) ; }