From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- .../examples/filechooser/plugin/plugin.cpp | 95 ++++++++++++++++++++++ .../designer/examples/filechooser/plugin/plugin.h | 16 ++++ .../examples/filechooser/plugin/plugin.pro | 14 ++++ .../examples/filechooser/widget/filechooser.cpp | 62 ++++++++++++++ .../examples/filechooser/widget/filechooser.h | 48 +++++++++++ .../examples/filechooser/widget/filechooser.pro | 9 ++ .../designer/examples/filechooser/widget/main.cpp | 10 +++ 7 files changed, 254 insertions(+) create mode 100644 tools/designer/examples/filechooser/plugin/plugin.cpp create mode 100644 tools/designer/examples/filechooser/plugin/plugin.h create mode 100644 tools/designer/examples/filechooser/plugin/plugin.pro create mode 100644 tools/designer/examples/filechooser/widget/filechooser.cpp create mode 100644 tools/designer/examples/filechooser/widget/filechooser.h create mode 100644 tools/designer/examples/filechooser/widget/filechooser.pro create mode 100644 tools/designer/examples/filechooser/widget/main.cpp (limited to 'tools/designer/examples/filechooser') diff --git a/tools/designer/examples/filechooser/plugin/plugin.cpp b/tools/designer/examples/filechooser/plugin/plugin.cpp new file mode 100644 index 0000000..9408cac --- /dev/null +++ b/tools/designer/examples/filechooser/plugin/plugin.cpp @@ -0,0 +1,95 @@ +#include "plugin.h" +#include "../widget/filechooser.h" + +static const char *filechooser_pixmap[] = { + "22 22 8 1", + " c Gray100", + ". c Gray97", + "X c #4f504f", + "o c #00007f", + "O c Gray0", + "+ c none", + "@ c Gray0", + "# c Gray0", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "+OOOOOOOOOOOOOOOOOOOO+", + "OOXXXXXXXXXXXXXXXXXXOO", + "OXX. OO OO O", + "OX. oo O O", + "OX. oo O .O", + "OX ooo oooo O O", + "OX oo oo oo O O", + "OX oooo oo oo O O", + "OX oo oo oo oo O O", + "OX oo oo oo oo O O", + "OX oooo oooo O O", + "OX OO OO O", + "OO..................OO", + "+OOOOOOOOOOOOOOOOOOOO+", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++", + "++++++++++++++++++++++" +}; + +CustomWidgetPlugin::CustomWidgetPlugin() +{ +} + +QStringList CustomWidgetPlugin::keys() const +{ + QStringList list; + list << "FileChooser"; + return list; +} + +QWidget* CustomWidgetPlugin::create( const QString &key, QWidget* parent, const char* name ) +{ + if ( key == "FileChooser" ) + return new FileChooser( parent, name ); + return 0; +} + +QString CustomWidgetPlugin::group( const QString& feature ) const +{ + if ( feature == "FileChooser" ) + return "Input"; + return QString::null; +} + +QIconSet CustomWidgetPlugin::iconSet( const QString& ) const +{ + return QIconSet( QPixmap( filechooser_pixmap ) ); +} + +QString CustomWidgetPlugin::includeFile( const QString& feature ) const +{ + if ( feature == "FileChooser" ) + return "filechooser.h"; + return QString::null; +} + +QString CustomWidgetPlugin::toolTip( const QString& feature ) const +{ + if ( feature == "FileChooser" ) + return "File Chooser Widget"; + return QString::null; +} + +QString CustomWidgetPlugin::whatsThis( const QString& feature ) const +{ + if ( feature == "FileChooser" ) + return "A widget to choose a file or directory"; + return QString::null; +} + +bool CustomWidgetPlugin::isContainer( const QString& ) const +{ + return FALSE; +} + + +Q_EXPORT_PLUGIN( CustomWidgetPlugin ) diff --git a/tools/designer/examples/filechooser/plugin/plugin.h b/tools/designer/examples/filechooser/plugin/plugin.h new file mode 100644 index 0000000..a465c29 --- /dev/null +++ b/tools/designer/examples/filechooser/plugin/plugin.h @@ -0,0 +1,16 @@ +#include + +class CustomWidgetPlugin : public QWidgetPlugin +{ +public: + CustomWidgetPlugin(); + + QStringList keys() const; + QWidget* create( const QString &classname, QWidget* parent = 0, const char* name = 0 ); + QString group( const QString& ) const; + QIconSet iconSet( const QString& ) const; + QString includeFile( const QString& ) const; + QString toolTip( const QString& ) const; + QString whatsThis( const QString& ) const; + bool isContainer( const QString& ) const; +}; diff --git a/tools/designer/examples/filechooser/plugin/plugin.pro b/tools/designer/examples/filechooser/plugin/plugin.pro new file mode 100644 index 0000000..012f185 --- /dev/null +++ b/tools/designer/examples/filechooser/plugin/plugin.pro @@ -0,0 +1,14 @@ +TEMPLATE = lib +LANGUAGE = C++ +TARGET = filechooser + +SOURCES += plugin.cpp ../widget/filechooser.cpp +HEADERS += plugin.h ../widget/filechooser.h +DESTDIR = ../../../../../plugins/designer + +target.path=$$plugins.path + +INSTALLS += target +CONFIG += qt warn_on release plugin +INCLUDEPATH += $$QT_SOURCE_TREE/tools/designer/interfaces +DBFILE = plugin.db diff --git a/tools/designer/examples/filechooser/widget/filechooser.cpp b/tools/designer/examples/filechooser/widget/filechooser.cpp new file mode 100644 index 0000000..4575bd4 --- /dev/null +++ b/tools/designer/examples/filechooser/widget/filechooser.cpp @@ -0,0 +1,62 @@ +#include "filechooser.h" +#include +#include +#include +#include + +FileChooser::FileChooser( QWidget *parent, const char *name ) + : QWidget( parent, name ), md( File ) +{ + QHBoxLayout *layout = new QHBoxLayout( this ); + layout->setMargin( 0 ); + + lineEdit = new QLineEdit( this, "filechooser_lineedit" ); + layout->addWidget( lineEdit ); + + connect( lineEdit, SIGNAL( textChanged( const QString & ) ), + this, SIGNAL( fileNameChanged( const QString & ) ) ); + + button = new QPushButton( "...", this, "filechooser_button" ); + button->setFixedWidth( button->fontMetrics().width( " ... " ) ); + layout->addWidget( button ); + + connect( button, SIGNAL( clicked() ), + this, SLOT( chooseFile() ) ); + + setFocusProxy( lineEdit ); +} + +void FileChooser::setMode( Mode m ) +{ + md = m; +} + +FileChooser::Mode FileChooser::mode() const +{ + return md; +} + +void FileChooser::setFileName( const QString &fn ) +{ + lineEdit->setText( fn ); +} + +QString FileChooser::fileName() const +{ + return lineEdit->text(); +} + +void FileChooser::chooseFile() +{ + QString fn; + if ( mode() == File ) + fn = QFileDialog::getOpenFileName( lineEdit->text(), QString::null, this ); + else + fn = QFileDialog::getExistingDirectory( lineEdit->text(),this ); + + if ( !fn.isEmpty() ) { + lineEdit->setText( fn ); + emit fileNameChanged( fn ); + } +} + diff --git a/tools/designer/examples/filechooser/widget/filechooser.h b/tools/designer/examples/filechooser/widget/filechooser.h new file mode 100644 index 0000000..23272c0 --- /dev/null +++ b/tools/designer/examples/filechooser/widget/filechooser.h @@ -0,0 +1,48 @@ +#ifndef FILECHOOSER_H +#define FILECHOOSER_H + +#include +#include + +class QLineEdit; +class QPushButton; + +#ifdef FILECHOOSER_IS_WIDGET +#undef QT_WIDGET_PLUGIN_EXPORT +#define QT_WIDGET_PLUGIN_EXPORT +#endif + +class QT_WIDGET_PLUGIN_EXPORT FileChooser : public QWidget +{ + Q_OBJECT + + Q_ENUMS( Mode ) + Q_PROPERTY( Mode mode READ mode WRITE setMode ) + Q_PROPERTY( QString fileName READ fileName WRITE setFileName ) + +public: + FileChooser( QWidget *parent = 0, const char *name = 0); + + enum Mode { File, Directory }; + + QString fileName() const; + Mode mode() const; + +public slots: + void setFileName( const QString &fn ); + void setMode( Mode m ); + +signals: + void fileNameChanged( const QString & ); + +private slots: + void chooseFile(); + +private: + QLineEdit *lineEdit; + QPushButton *button; + Mode md; + +}; + +#endif diff --git a/tools/designer/examples/filechooser/widget/filechooser.pro b/tools/designer/examples/filechooser/widget/filechooser.pro new file mode 100644 index 0000000..20ea787 --- /dev/null +++ b/tools/designer/examples/filechooser/widget/filechooser.pro @@ -0,0 +1,9 @@ +TEMPLATE = app +LANGUAGE = C++ +TARGET = filechooser + +SOURCES += filechooser.cpp main.cpp +HEADERS += filechooser.h +CONFIG += qt warn_on release +DBFILE = filechooser.db +DEFINES += FILECHOOSER_IS_WIDGET diff --git a/tools/designer/examples/filechooser/widget/main.cpp b/tools/designer/examples/filechooser/widget/main.cpp new file mode 100644 index 0000000..cc39053 --- /dev/null +++ b/tools/designer/examples/filechooser/widget/main.cpp @@ -0,0 +1,10 @@ +#include +#include "filechooser.h" + +int main( int argc, char ** argv ) +{ + QApplication a( argc, argv ); + FileChooser *fc = new FileChooser; + fc->show(); + return a.exec(); +} -- cgit v1.2.1