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