Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 1

Qt-interest Archive, April 2007
QWorkspace plugin


Message 1 in thread

Hi 

i have tried to create a QWorkspace plugin to use in designer, If I try to use 
it designer boms out with a Segmentation fault. I am using "Qt Open Source 
Edition version 4.2.3" on RHEL 4. I would appreciated it if someone can tell 
me where I went wrong or did not do.

Thanks in advance

Here is the code for the plugin

* FILENAME     : workspacePlugin.h
 ********************************************************************************************************/
#ifndef WORKSPACEPLUGIN_H
#define WORKSPACEPLUGIN_H
//
#include <QtDesigner/QDesignerContainerExtension>
#include <QtDesigner/QDesignerCustomWidgetInterface>
//
#include <QtCore/qplugin.h>
#include <QtGui/QIcon>
//
//class QDesignerFormEditorInterface;
//
class workspacePlugin : public QObject, public QDesignerCustomWidgetInterface
{
 Q_OBJECT
 Q_INTERFACES( QDesignerCustomWidgetInterface )
public:
 workspacePlugin( QObject* = 0 );
 bool isContainer() const;
 bool isInitialized() const;
 QIcon icon() const;
 QString codeTemplate() const;
 QString domXml() const;
 QString group() const;
 QString includeFile() const;
 QString name() const;
 QString toolTip() const;
 QString whatsThis() const;
 QWidget* createWidget( QWidget* );
 void initialize( QDesignerFormEditorInterface* );
 //
private:
 bool initialized;
 //
};
//
#endif // WORKSPACEPLUGIN_H


* FILENAME     : workspacePlugin.cpp
********************************************************************************************************/
#include "workspacePlugin.h"
#include "workspace.h"
#include <QtPlugin>
//
workspacePlugin::workspacePlugin( QObject* parent )
 : QObject( parent ), initialized( false )
{
}
//
void workspacePlugin::initialize( QDesignerFormEditorInterface* /*core*/ )
{
 // Q_UNUSED( core );
 if(initialized)
  return;
 initialized = true;
}
//
bool workspacePlugin::isInitialized() const
{
 return initialized;
}
//
QWidget* workspacePlugin::createWidget( QWidget* parent )
{
 return new Workspace( parent );
}

QString workspacePlugin::name() const
{
 return  "Workspace";
}

QString workspacePlugin::group() const
{
 return  "Others";
}

QIcon workspacePlugin::icon() const
{
 return QIcon();
}

QString workspacePlugin::toolTip() const
{
 return QString();
}

QString workspacePlugin::whatsThis() const
{
 return QString();
}

bool workspacePlugin::isContainer() const
{
 return true;
}

QString workspacePlugin::domXml() const
{
 return QLatin1String("<widget class=\"QWorkspace\" name=\" Workspace\">\n"
   " <property name=\"geometry\">\n"
   "  <rect>\n"
   "   <x>0</x>\n"
   "   <y>0</y>\n"
   "   <width>160</width>\n"
   "   <height>120</height>\n"
   "  </rect>\n"
   " </property>\n"
   "</widget>\n");
}
//
QString workspacePlugin::includeFile() const
{
 return "workspace.h";
}
//
QString workspacePlugin::codeTemplate() const
{
 return QString();
}
Q_EXPORT_PLUGIN2(workspace,workspacePlugin )

 * FILENAME     : workspace.h
 ********************************************************************************************************/
#ifndef WORKSPACE_H
#define WORKSPACE_H
//
 #include <QtGui/QWidget>
 #include <QtDesigner/QDesignerExportWidget>
#include <QtGui/QWorkspace>
//
class QDESIGNER_WIDGET_EXPORT Workspace :  public QWorkspace
{
 Q_OBJECT
 //
public:
 Workspace( QWidget* = 0 );
 ~Workspace();
 //
};
//
#endif // WORKSPACE_H

* FILENAME     : workspace.cpp
 ********************************************************************************************************/
#include "workspace.h"
//
Workspace::Workspace( QWidget* parent )
 : QWorkspace( parent )
{
}
//
Workspace::~Workspace()
{
}

--
 [ signature omitted ]