From 2a87abfc15d8f9569ca64562c8e5bc8308c78b80 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Wed, 30 Apr 2014 14:45:52 +0800 Subject: Add artDialog in FQTerm script engine - Modify filedialog so that it'll work without config. - Use artDialog to show the result of the downloadart.js --- res/script/README | 3 ++- res/script/downloadart.js | 10 +++++++--- src/common/fqterm_filedialog.cpp | 24 ++++++++++++++---------- src/fqterm/fqterm_scriptengine.cpp | 14 ++++++++++++++ src/fqterm/fqterm_scriptengine.h | 2 ++ 5 files changed, 39 insertions(+), 14 deletions(-) diff --git a/res/script/README b/res/script/README index 8e273fc..5e11eb9 100644 --- a/res/script/README +++ b/res/script/README @@ -116,4 +116,5 @@ toUTF8(str, codec) decode from string in specified codec to utf8 return string - +artDialog(content) +open a dialog with content denoted in the argument diff --git a/res/script/downloadart.js b/res/script/downloadart.js index f0fd212..8438a52 100644 --- a/res/script/downloadart.js +++ b/res/script/downloadart.js @@ -1,6 +1,6 @@ fqterm.importFile("utils.js"); -var saveFile = "/tmp/save.txt"; +// var saveFile = "/tmp/save.txt"; var LastLine = 23; var timeout = 300; var retries = 5; @@ -8,6 +8,7 @@ var retries = 5; // there'll be a 'XX%' at the last line var r = new RegExp("%"); var esc = new RegExp('\x1b\x1b','g'); +var content = ""; getAnsiLine = function(i){ var line = fqterm.getAttrText(i).replace(esc, "\x1b["); @@ -16,7 +17,8 @@ getAnsiLine = function(i){ // first copy the previous lines for (var i=0; iload(userConfig)) { + if (config_!=NULL && config_->load(userConfig)) { strPrevSave = config_->getItemValue(strSection, strSave); } @@ -82,7 +82,7 @@ QString FQTermFileDialog::getSaveName(const QString &fileToSave, const QString & QFileInfo fi(saveName); - if (!saveName.isEmpty()) { + if (config_!=NULL && !saveName.isEmpty()) { config_->setItemValue(strSection, strSave, fi.absolutePath()); config_->save(userConfig); } @@ -95,13 +95,15 @@ QString FQTermFileDialog::getOpenName(const QString &title, const QString &hints QString openName; QFileDialog fileDialog(widget); - strPrevOpen = (config_->load(userConfig) ? config_->getItemValue(strSection, strOpen) : "./"); - + if (config_!=NULL){ + strPrevOpen = (config_->load(userConfig) ? config_->getItemValue(strSection, strOpen) : "./"); + } + QString realHints = (hints.isEmpty() ? "*" : hints); QString realTitle = (title.isEmpty() ? "Choose a file to open" : title); openName = fileDialog.getOpenFileName(widget, realTitle, strPrevOpen, realHints); - if (!openName.isEmpty()) { + if (config_!=NULL && !openName.isEmpty()) { config_->setItemValue(strSection, strOpen, QFileInfo(openName).absolutePath()); config_->save(userConfig); } @@ -114,13 +116,15 @@ QStringList FQTermFileDialog::getOpenNames(const QString &title, const QString & QStringList openNames; QFileDialog fileDialog(widget); - strPrevOpen = (config_->load(userConfig) ? config_->getItemValue(strSection, strOpen) : "./"); - + if (config_!=NULL){ + strPrevOpen = (config_->load(userConfig) ? config_->getItemValue(strSection, strOpen) : "./"); + } + QString realHints = (hints.isEmpty() ? "*" : hints); QString realTitle = (title.isEmpty() ? "Choose files to open" : title); openNames = fileDialog.getOpenFileNames(widget, realTitle, strPrevOpen, realHints); - if (!openNames.isEmpty() && !openNames.at(0).isEmpty()) { + if (config_!=NULL && !openNames.isEmpty() && !openNames.at(0).isEmpty()) { openDir = QFileInfo(openNames.at(0)).absolutePath(); config_->setItemValue(strSection, strOpen, openDir); config_->save(userConfig); @@ -134,7 +138,7 @@ QString FQTermFileDialog::getExistingDirectory(const QString &title, const QStri QString strPrevOpen; QFileDialog fileDialog(widget); - if (hints.isEmpty()) { + if (config_!=NULL && hints.isEmpty()) { strPrevOpen = (config_->load(userConfig) ? config_->getItemValue(strSection, strOpen) : "./"); } else { strPrevOpen = hints; @@ -146,7 +150,7 @@ QString FQTermFileDialog::getExistingDirectory(const QString &title, const QStri strPrevOpen, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - if (!dir.isEmpty()) { + if (config_!=NULL && !dir.isEmpty()) { config_->setItemValue(strSection, strOpen, QFileInfo(dir).absolutePath()); config_->save(userConfig); } diff --git a/src/fqterm/fqterm_scriptengine.cpp b/src/fqterm/fqterm_scriptengine.cpp index c49f44c..36c1ebe 100644 --- a/src/fqterm/fqterm_scriptengine.cpp +++ b/src/fqterm/fqterm_scriptengine.cpp @@ -496,6 +496,20 @@ bool FQTermScriptEngine::isAntiIdle() { bool FQTermScriptEngine::isAutoReply() { return session_->isAutoReply(); } + + void FQTermScriptEngine::artDialog(const QString &content) + { + articleDialog article(NULL, NULL, 0); + + article.resize(QSize(300, 500)); + article.move(20,20); + + article.articleText_ = content; + + article.ui_.textBrowser->setPlainText(article.articleText_); + article.exec(); + } + } // namespace FQTerm #include "fqterm_scriptengine.moc" diff --git a/src/fqterm/fqterm_scriptengine.h b/src/fqterm/fqterm_scriptengine.h index 25af6e1..48b937d 100644 --- a/src/fqterm/fqterm_scriptengine.h +++ b/src/fqterm/fqterm_scriptengine.h @@ -22,6 +22,7 @@ #define FQTERM_SCRIPTENGINE_H #include "fqterm.h" +#include "articledialog.h" #include #include #include @@ -113,6 +114,7 @@ public slots: //script apis void appendFile(const QString& filename, const QString& str); QString readFile(const QString& filename); QStringList readFolder(const QString& path); + void artDialog(const QString &content); QString platform(); bool makePath(const QString& path); QString newLine(); -- cgit v1.2.3