#!/usr/bin/env qjscmd // Populates the sidebar listview function setup_sidebar( special, qt, all ) { var qobjects = Factory.constructors().sort(); for ( var i=0; i < qobjects.length ; i++ ) { all.insertItem( qobjects[i] ); if ( /^Q/.test(qobjects[i]) ) qt.insertItem( qobjects[i] ); else special.insertItem( qobjects[i] ); } } function documentStaticObject( type ) { HelpPage.text ="

" + type + "


"; try{ var obj = eval( type ); HelpPage.text += dump(obj); } catch (error) { HelpPage.text += "This object is not supported by this version of KJSEmbed"; } } function documentConstructableObject( type ) { HelpPage.text ="

" + type + "


"; if ( type!= 'TextStream' ) { try { HelpPage.text += dump(Factory.createObject( type )); } catch(x) { HelpPage.text +='Bindings for the ' + type + ' class.
This class is understood by the interpreter, but cannot be created from scripts.' } } } function populateStaticObjects() { StaticObjectList.clear(); var statics = [ 'Factory', 'System', 'Global', 'StdDialog', 'StdAction', 'StdDirs', 'StdIcons', 'Qt' ]; for ( var idx = 0; idx < statics.length; idx++ ) { StaticObjectList.insertItem(statics[idx]); } } function populateExceptions() { var expts = [ 'ReferenceError', 'EvalError', 'RangeError', 'TypeError' ]; for ( var idx = 0; idx < expts.length; idx++ ) { ExceptionTypeList.insertItem(expts[idx]); } } function populateObjects() { var tps = Factory.types().sort(); QtObjectList.clear(); KJSEmbedObjectList.clear(); KDEObjectList.clear(); ObjectTypeList.clear(); cons = Factory.constructors().sort(); cons += 'Part'; for ( var i=0; i < tps.length; i++ ) { if ( /^Q/.test(tps[i]) ) { QtObjectList.insertItem( tps[i] ); } else if ( /^KJSEmbed::/.test(tps[i]) ) { if ( tps[i] != 'KJSEmbed::Bindings::JSDCOPInterface' ) { KJSEmbedObjectList.insertItem( tps[i] ); } } else if ( /^K/.test(tps[i]) ) { KDEObjectList.insertItem( tps[i] ); } else { ObjectTypeList.insertItem( tps[i] ); } } } // // Main // // Create the UI var mw = Factory.loadui("docviewer.ui"); //mw.qt_central_widget.HelpPage.text = dump(mw.qt_central_widget.Navbar.StaticObjects.StaticObjectList); var HelpPage = mw.qt_central_widget.HelpPage; var StaticObjectList = mw.qt_central_widget.Navbar.StaticObjects.StaticObjectList; var ExceptionTypeList = mw.qt_central_widget.Navbar.ExceptionTypes.ExceptionTypeList; var KDEObjectList = mw.qt_central_widget.Navbar.KDEObjects.KDEObjectList; var QtObjectList = mw.qt_central_widget.Navbar.QtObjects.QtObjectList; var KJSEmbedObjectList = mw.qt_central_widget.Navbar.KJSEmbedObjects.KJSEmbedObjectList; var ObjectTypeList = mw.qt_central_widget.Navbar.ObjectTypes.ObjectTypeList; populateStaticObjects(); populateExceptions(); populateObjects(); mw.connect( StaticObjectList, 'highlighted(const TQString&)', this, 'documentStaticObject' ); mw.connect( ExceptionTypeList, 'highlighted(const TQString&)', this, 'documentStaticObject' ); mw.connect( KDEObjectList, 'highlighted(const TQString&)', this, 'documentConstructableObject' ); mw.connect( QtObjectList, 'highlighted(const TQString&)', this, 'documentConstructableObject' ); mw.connect( KJSEmbedObjectList, 'highlighted(const TQString&)', this, 'documentConstructableObject' ); mw.connect( ObjectTypeList, 'highlighted(const TQString&)', this, 'documentConstructableObject' ); mw.show(); application.exec(); /* side = new TQTabWidget( split, 'sidebar' ); view = new TQTabWidget( split, 'mainview' ); // Load the view js = new TQTextEdit( view, 'js' ); js.setReadOnly( true ); view.addTab( js, '&Javascript' ); view.set_class = function( clazz ) { clazz = clazz.replace( '^[^QK]*', '' ); // JS docs var s = ''; s = s + ''; s = s + ''; s = s + '

' + clazz + '

'; try { var obj = eval('new '+clazz+'()'); s = s + dump(obj); } catch ( err ) { s = s + 'Error dumping object: ' + err + ''; } s = s + ''; s = s + ''; js.text = s; } view.setup = function() { // JS docs var s = ''; s = s + ''; s = s + ''; s = s + '

Script Reference

'; s = s + ''; s = s + ''; js.text = s; } // Setup the sidebar specialside = new TQListBox( side, 'specialsidebar' ); qtside = new TQListBox( side, 'qtsidebar' ); allside = new TQListBox( side, 'allsidebar' ); side.addTab( specialside, '&Special' ); side.addTab( qtside, '&Qt' ); side.addTab( allside, '&All' ); setup_sidebar( specialside, qtside, allside ); qtside.connect( qtside, 'highlighted(const TQString&)', view, 'set_class' ); specialside.connect( specialside, 'highlighted(const TQString&)', view, 'set_class' ); allside.connect( allside, 'highlighted(const TQString&)', view, 'set_class' ); // // Show the window // side.maximumWidth = 250; mw.resize( 800, 550 ); mw.show(); // // Connect together // view.setup(); application.exec(); */