aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/objects/class_widget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/objects/class_widget.cpp')
-rw-r--r--src/modules/objects/class_widget.cpp37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp
index 90aea125e..aa94a737b 100644
--- a/src/modules/objects/class_widget.cpp
+++ b/src/modules/objects/class_widget.cpp
@@ -47,6 +47,8 @@
#include <QMetaObject>
#include <QIcon>
#include <QStatusBar>
+#include <QUiLoader>
+#include <QFile>
KviKvsWidget::KviKvsWidget(KviKvsObject_widget * object,QWidget * par)
:QWidget(par), m_pObject(object)
@@ -512,6 +514,10 @@ const Qt::WindowType widgettypes_cod[] = {
See also [classfnc]$removeFromStatusBar[/classfnc]().
!fn: $removeFromStatusBar()
Remove the widget from statusbar.
+
+ !fn: $loadInterface(<string:filename>)
+ Loads the interface file "<filename>.ui".
+ The UI file must be created in the proper way using a tool like Qt Designer or KDevelop Designer.
@examples:
[example]
%Widget = $new(widget)
@@ -631,6 +637,7 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_widget,"widget","object")
KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setToolTip",function_setToolTip)
KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setWFlags",function_setWFlags)
KVSO_REGISTER_HANDLER(KviKvsObject_widget,"setIcon",function_setWindowIcon)
+ KVSO_REGISTER_HANDLER(KviKvsObject_widget,"loadInterface",function_loadInterface)
// fonts
KVSO_REGISTER_HANDLER(KviKvsObject_widget,"fontDescent",function_fontDescent)
KVSO_REGISTER_HANDLER(KviKvsObject_widget,"fontAscent",function_fontAscent)
@@ -697,11 +704,8 @@ KVSO_BEGIN_REGISTERCLASS(KviKvsObject_widget,"widget","object")
KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_widget,"sizeHintRequestEvent")
KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_widget,"maybeTipEvent")
KVSO_REGISTER_STANDARD_NOTHINGRETURN_HANDLER(KviKvsObject_widget,"shortCutEvent")
-
-
KVSO_END_REGISTERCLASS(KviKvsObject_widget)
-
KVSO_BEGIN_CONSTRUCTOR(KviKvsObject_widget,KviKvsObject)
KVSO_END_CONSTRUCTOR(KviKvsObject_widget)
@@ -1735,7 +1739,7 @@ bool KviKvsObject_widget::function_addWidgetToWrappedLayout(KviKvsObjectFunction
QLayout *lay=widget()->layout();
if (!lay)
{
- c->warning(__tr2qs("No Layout associated to the widget "));
+ c->warning(__tr2qs("No Layout associated to the widget"));
return true;
}
if(!ob->object()->isWidgetType())
@@ -1949,6 +1953,31 @@ bool KviKvsObject_widget::function_removeFromStatusBar(KviKvsObjectFunctionCall
return true;
}
+bool KviKvsObject_widget::function_loadInterface(KviKvsObjectFunctionCall *c)
+{
+ QString szFileName;
+ KVSO_PARAMETERS_BEGIN(c)
+ KVSO_PARAMETER("interface_file",KVS_PT_STRING,0,szFileName)
+ KVSO_PARAMETERS_END(c)
+
+ QUiLoader loader;
+ QFile file(szFileName);
+ file.open(QFile::ReadOnly);
+ QWidget * pWidget = loader.load(&file,(QWidget *)this);
+ file.close();
+
+ QLayout * pLayout = widget()->layout();
+ if(!pLayout)
+ {
+ c->warning(__tr2qs("No layout associated to the widget"));
+ return true;
+ }
+
+ pLayout->addWidget(pWidget);
+
+ return true;
+}
+
#ifndef COMPILE_USE_STANDALONE_MOC_SOURCES
#include "m_class_widget.moc"
#endif //!COMPILE_USE_STANDALONE_MOC_SOURCES