aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/KvsObject_textBrowser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/objects/KvsObject_textBrowser.cpp')
-rw-r--r--src/modules/objects/KvsObject_textBrowser.cpp155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/modules/objects/KvsObject_textBrowser.cpp b/src/modules/objects/KvsObject_textBrowser.cpp
new file mode 100644
index 000000000..44fb40973
--- /dev/null
+++ b/src/modules/objects/KvsObject_textBrowser.cpp
@@ -0,0 +1,155 @@
+//=============================================================================
+//
+// File : KvsObject_textBrowser.cpp
+// Creation date : Fri Mar 18 14:30:48 CEST 2005
+// by Tonino Imbesi(Grifisx) and Alessandro Carbone(Noldor)
+//
+// This file is part of the KVIrc irc client distribution
+// Copyright (C) 2005-2008 Alessandro Carbone (elfonol at gmail dot com)
+//
+// This program is FREE software. You can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your opinion) any later version.
+//
+// This program is distributed in the HOPE that it will be USEFUL,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, write to the Free Software Foundation,
+// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//=============================================================================
+
+
+#include "KvsObject_textBrowser.h"
+#include "KviError.h"
+#include "kvi_debug.h"
+#include "KviLocale.h"
+#include "KviIconManager.h"
+
+#include <QTextBrowser>
+#include <QFile>
+#include <QUrl>
+/*
+ @doc: textBrowser
+ @keyterms:
+ textBrowser browser widget class,
+ @title:
+ textBrowser class
+ @type:
+ class
+ @short:
+ Provides a class that can display html pages.
+ @inherits:
+ [class]widget[/class]
+ @description:
+ Provides a class that can display html pages with hypertext navigation.
+ @functions:
+ !fn: $setSource(<file_name:string>)
+ With this you can display the page at szFile location (szFile include the path).
+ !fn: $backward()
+ Changes the document displayed to the previous document in the list of documents built by navigating links.
+ !fn: $forward()
+ Changes the document displayed to the next document in the list of documents built by navigating links.
+ !fn: $home()
+ Changes the document displayed to be the first document the browser displayed.
+ !fn: $reload()
+ Reloads the current set source.
+ !fn: $linkClickedEvent(<link_href:string>)
+ Triggered when a link is clicked by the user. The default implementation of this function
+ emits the "linkClicked" signal.
+ @signals:
+ !sg: $linkClicked(<link_href:string>)
+ This signal is emitted by the default implementation of the [classfnc]$linkClickedEvent[/classfnc]() function.
+*/
+
+KVSO_BEGIN_REGISTERCLASS(KvsObject_textBrowser,"textBrowser","multilineedit")
+ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_textBrowser,setSource)
+ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_textBrowser,forward)
+ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_textBrowser,backward)
+ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_textBrowser,home)
+ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_textBrowser,reload)
+ KVSO_REGISTER_HANDLER_BY_NAME(KvsObject_textBrowser,linkClickedEvent)
+KVSO_END_REGISTERCLASS(KvsObject_textBrowser)
+
+KVSO_BEGIN_CONSTRUCTOR(KvsObject_textBrowser,KvsObject_textedit)
+
+KVSO_END_CONSTRUCTOR(KvsObject_textBrowser)
+
+
+KVSO_BEGIN_DESTRUCTOR(KvsObject_textBrowser)
+
+KVSO_END_CONSTRUCTOR(KvsObject_textBrowser)
+
+bool KvsObject_textBrowser::init(KviKvsRunTimeContext *,KviKvsVariantList *)
+{
+ SET_OBJECT(QTextBrowser);
+ connect(obj,SIGNAL(anchorClicked(const QUrl &)),this,SLOT(anchorClicked(const QUrl &)));
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(textBrowser,setSource)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ QString szFile;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("file_name",KVS_PT_STRING,0,szFile)
+ KVSO_PARAMETERS_END(c)
+ if(!QFile::exists(szFile))
+ {
+ c->warning(__tr2qs_ctx("I can't find the specified file '%Q'.","objects"),&szFile);
+ return true;
+ }
+ QUrl url;
+ url.setPath(szFile);
+ ((QTextBrowser *)widget())->setSource(url);
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(textBrowser,forward)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->forward();
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(textBrowser,backward)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->backward();
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(textBrowser,home)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->home();
+ return true;
+}
+
+KVSO_CLASS_FUNCTION(textBrowser,reload)
+{
+ CHECK_INTERNAL_POINTER(widget())
+ ((QTextBrowser *)widget())->reload();
+ return true;
+}
+
+void KvsObject_textBrowser::anchorClicked(const QUrl &url)
+{
+ KviKvsVariantList parms(new KviKvsVariant(url.path()));
+ callFunction(this,"linkClickedEvent",0,&parms);
+}
+
+KVSO_CLASS_FUNCTION(textBrowser,linkClickedEvent)
+{
+ emitSignal("linkClicked",c,c->params());
+ return true;
+}
+
+#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
+#include "m_KvsObject_textBrowser.moc"
+#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES
+