//////////////////////////////////////////////////////////////////////////
///kai.yan modify 
///flag:等待时显示的文本信息标志 
///0:Receiving router response information
///1:Rebooting router
///2:Upgrading firmware 
//////////////////////////////////////////////////////////////////////////
void QGenieTimelineLocker::startTimer(int duration, QObject *obj, const char *slot, int flag)
{
//    mPi=pi;
//    if(pi)
//    {
//        pi->startAnimation();
//    }
    Q_ASSERT((duration/1000>qMax(NOTIFY_SSID_TIME,RECONNECT_TIME)) || !(mFlags&TF_NEED_RECONNECT));
    QGenieRCWirelessObject *rcwo=QGenieRCWirelessObject::GetSingletonPtr();
    Q_ASSERT(rcwo && rcwo->mWirelessW);
    if(!mLockerUi)
    {
        QUiLoader loader;
        bool btemp;
        QFile f(GENIE2_RES("ui/rccountdown.ui"));
        btemp=f.open(QFile::ReadOnly);
        Q_ASSERT(btemp);

        mLockerUi=loader.load(&f,rcwo->mWirelessW->parentWidget());
        QRect geo=rcwo->mWirelessW->geometry();
        mLockerUi->move(geo.center()-QPoint(mLockerUi->width(),mLockerUi->height())/2);

        QFile fqss(GENIE2_RES("ui/framelessframe.qss"));
        btemp=fqss.open(QIODevice::ReadOnly);
        Q_ASSERT(btemp);
        QString stemp=fqss.readAll();
        mLockerUi->setStyleSheet(stemp);
//        GENIE2_SET_FRAMELESSSTYLE(mLockerUi);
        fqss.close();

        Q_ASSERT(mLockerUi);
        mLabel=mLockerUi->findChild<QLabel *>("lab_content");
        Q_ASSERT(mLabel);
        mLabel->setStyleSheet("color:red;");

        mPi=new QPiObject(mLockerUi,"pi");
        mPi->startAnimation();

        mLockerUi->raise();
        mLockerUi->show();
    }
    mTimeLine.setDuration(duration);
    mTimeLine.setStartFrame(0);
    mTimeLine.setDirection(QTimeLine::Forward);
    mTimeLine.start();
	if(flag==0)
	{
		mMode=GENIE2_GET_TEXT(L_RTCT_MSG_COMMITWAIT);
	}else if(flag==1)
	{
		mMode=GENIE2_GET_TEXT(L_OHTERS_MSG_COMMITWAIT);
	}else if(flag ==2)
	{
		mMode=GENIE2_GET_TEXT(L_UPDATELAB_FIRMWARE_NEEDFEWTIME);
	}
	else
	{
		mMode=GENIE2_GET_TEXT(L_RTCT_MSG_COMMITWAIT);
	}
    sRCFlags |=RCF_TIMELINELOCKER_WORKING;
    if(sRCFlags &RCF_REMOTE)
    {
        sRCFlags |=RCF_IN_REMOTE_REFRESHING;
    }
    else
    {
        sRCFlags |=RCF_IN_LOCAL_REFRESHING;
    }

    mEndObj=obj;
    mEndSLOT=slot;
    setNeedReconnect();


}
Exemple #2
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) ;
      }