summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2014-04-30 14:45:52 +0800
committerIru Cai <mytbk920423@gmail.com>2014-04-30 14:45:52 +0800
commit2a87abfc15d8f9569ca64562c8e5bc8308c78b80 (patch)
tree21ba4e0e5e947ccc03402aef7f840df9ad8417b2
parenta1031553ef3136bbc074255a59495977490b50ee (diff)
downloadfqterm-2a87abfc15d8f9569ca64562c8e5bc8308c78b80.tar.xz
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
-rw-r--r--res/script/README3
-rw-r--r--res/script/downloadart.js10
-rw-r--r--src/common/fqterm_filedialog.cpp24
-rw-r--r--src/fqterm/fqterm_scriptengine.cpp14
-rw-r--r--src/fqterm/fqterm_scriptengine.h2
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; i<LastLine; ++i){
- fqterm.appendFile(saveFile, getAnsiLine(i));
+// fqterm.appendFile(saveFile, getAnsiLine(i));
+ content += getAnsiLine(i);
}
// then copy until article ends
@@ -34,7 +36,9 @@ while (1){
sleep(timeout);
}
}
- fqterm.appendFile(saveFile, cur);
+// fqterm.appendFile(saveFile, cur);
+ content += cur;
}
+fqterm.artDialog(content);
diff --git a/src/common/fqterm_filedialog.cpp b/src/common/fqterm_filedialog.cpp
index 958fff9..31829ac 100644
--- a/src/common/fqterm_filedialog.cpp
+++ b/src/common/fqterm_filedialog.cpp
@@ -58,7 +58,7 @@ QString FQTermFileDialog::getSaveName(const QString &fileToSave, const QString &
QString strPrevSave, saveName;
QFileDialog fileDialog(widget);
- if (config_->load(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 <QObject>
#include <QString>
#include <QStringList>
@@ -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();