24 #include <QtGui/QWidget>
25 #include <QtCore/QFile>
26 #include <QtCore/QDebug>
35 using namespace KJSEmbed;
43 if ( args.size() == 0 )
45 uiLoader =
new QUiLoader();
47 else if( args.size() == 1 )
49 QObject *
arg0 = KJSEmbed::extractObject<QObject>(exec, args, 0, 0);
50 uiLoader =
new QUiLoader(arg0);
53 return KJS::throwError(exec, KJS::GeneralError, i18n(
"Not enough arguments."));
55 KJS::JSObject *uiLoaderBinding =
new UiLoaderBinding( exec, uiLoader );
57 return uiLoaderBinding;
61 namespace UiLoaderNS {
64 QObject*
parent = KJSEmbed::extractObject<QObject>(exec, args, 0, 0);
66 QAction*
action =
object->createAction(parent, actionName);
70 return KJS::throwError(exec, KJS::GeneralError, i18n(
"Failed to create Action.") );
81 return KJS::
throwError(exec, KJS::GeneralError, i18n("Failed to create ActionGroup.") );
87 if (className.isEmpty())
88 return KJS::throwError(exec, KJS::SyntaxError, i18n(
"No classname specified"));
89 QObject* parent = KJSEmbed::extractObject<QObject>(exec, args, 1, 0);
91 QLayout* layout =
object->createLayout(className, parent, name);
95 return KJS::throwError(exec, KJS::GeneralError, i18n(
"Failed to create Layout.") );
102 if (className.isEmpty())
103 return KJS::throwError(exec, KJS::SyntaxError, i18n(
"No classname specified."));
104 QWidget*
parent = KJSEmbed::extractObject<QWidget>(exec, args, 1, 0);
106 QWidget*
widget =
object->createWidget(className, parent, name);
110 return KJS::throwError(exec, KJS::GeneralError, i18n(
"Failed to create Widget.") );
117 if (fileName.isEmpty())
118 return KJS::throwError(exec, KJS::SyntaxError, i18n(
"Must supply a filename."));
120 QFile uiFile(fileName);
121 if (! uiFile.open(QIODevice::ReadOnly | QIODevice::Text) )
122 return KJS::throwError(exec, KJS::GeneralError, i18n(
"Could not open file '%1': %2", fileName, uiFile.errorString() ) );
124 QWidget*
parent = KJSEmbed::extractObject<QWidget>(exec, args, 1, 0);
129 return KJS::throwError(exec, KJS::GeneralError, i18n(
"Failed to load file '%1'", fileName));
145 {
"createAction", 0, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::createAction},
146 {
"createActionGroup", 0, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::createActionGroup},
147 {
"createLayout", 1, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::createLayout},
148 {
"createWidget", 1, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::createWidget},
149 {
"load", 1, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::load},
150 {
"load", 2, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::load},
151 {
"pluginPaths", 0, KJS::DontDelete|KJS::ReadOnly, &UiLoaderNS::pluginPaths}