Example #1
0
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(""));
    }
  }
}
Example #2
0
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; ) ;
Example #3
0
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);
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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()));
}
Example #7
0
// 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) ;
      }