[Chinese-commits] [fqterm] 12/76: Add artDialog in FQTerm script engine

Boyuan Yang hosiet-guest at moszumanska.debian.org
Thu Oct 27 03:16:57 UTC 2016


This is an automated email from the git hooks/post-receive script.

hosiet-guest pushed a commit to branch master
in repository fqterm.

commit 2a87abfc15d8f9569ca64562c8e5bc8308c78b80
Author: Iru Cai <mytbk920423 at gmail.com>
Date:   Wed Apr 30 14:45:52 2014 +0800

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

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/chinese/fqterm.git



More information about the Chinese-commits mailing list