[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bcalligra/kexi-mobile-adam=5Fpigg=5D_kexi/plugins/au?=
From:       Adam Pigg <adam () piggz ! co ! uk>
Date:       2011-02-12 16:04:44
Message-ID: 20110212160444.90619A60E4 () git ! kde ! org
[Download RAW message or body]

Git commit 0ebaf238040c852daa0428d5266025879b09637c by Adam Pigg.
Committed on 09/02/2011 at 23:29.
Pushed by piggz into branch 'kexi-mobile-adam_pigg'.

Heavily in development, not even working, but first work that displays
all the fields for the data source, automatically generated.

M  +2    -0    kexi/plugins/autoforms/CMakeLists.txt     
M  +1    -1    kexi/plugins/autoforms/KexiAutoFormPart.cpp     
M  +71   -0    kexi/plugins/autoforms/KexiAutoFormView.cpp     
M  +22   -9    kexi/plugins/autoforms/KexiAutoFormView.h     
A  +245  -0    kexi/plugins/autoforms/widgets/AutoForm.cpp         [License: LGPL \
(v2.1+)] A  +91   -0    kexi/plugins/autoforms/widgets/AutoForm.h         [License: \
LGPL (v2.1+)] A  +86   -0    kexi/plugins/autoforms/widgets/AutoLineEdit.cpp         \
[License: LGPL (v2.1+)] A  +53   -0    kexi/plugins/autoforms/widgets/AutoLineEdit.h  \
[License: LGPL (v2.1+)] M  +14   -5    kexi/plugins/autoforms/widgets/AutoWidget.cpp  \
 M  +7    -10   kexi/plugins/autoforms/widgets/AutoWidget.h     

http://commits.kde.org/calligra/0ebaf238040c852daa0428d5266025879b09637c

diff --git a/kexi/plugins/autoforms/CMakeLists.txt \
b/kexi/plugins/autoforms/CMakeLists.txt index 996c3ce..63bac4c 100644
--- a/kexi/plugins/autoforms/CMakeLists.txt
+++ b/kexi/plugins/autoforms/CMakeLists.txt
@@ -12,7 +12,9 @@ set(kexihandler_autoform_SRCS
     KexiAutoForms.cpp
     KexiAutoFormPart.cpp
     KexiAutoFormView.cpp
+    widgets/AutoForm.cpp 
     widgets/AutoWidget.cpp
+    widgets/AutoLineEdit.cpp
     KexiAutoFormDesignView.cpp
     designer/KexiAutoFormDesigner.cpp 
 )
diff --git a/kexi/plugins/autoforms/KexiAutoFormPart.cpp \
b/kexi/plugins/autoforms/KexiAutoFormPart.cpp index 4f75a9a..67f8d83 100644
--- a/kexi/plugins/autoforms/KexiAutoFormPart.cpp
+++ b/kexi/plugins/autoforms/KexiAutoFormPart.cpp
@@ -52,7 +52,7 @@ KexiView* KexiAutoFormPart::createView(QWidget* parent, KexiWindow* \
window, Kexi  KexiView* view = 0;
     kDebug();
     if (viewMode == Kexi::DataViewMode) {
-        //view = new KexiAutoFormView(parent);
+        view = new KexiAutoFormView(parent);
         
     } else if (viewMode == Kexi::DesignViewMode) {
         view = new KexiAutoFormDesignView(parent);
diff --git a/kexi/plugins/autoforms/KexiAutoFormView.cpp \
b/kexi/plugins/autoforms/KexiAutoFormView.cpp index 26571ab..5de4476 100644
--- a/kexi/plugins/autoforms/KexiAutoFormView.cpp
+++ b/kexi/plugins/autoforms/KexiAutoFormView.cpp
@@ -19,6 +19,29 @@
 
 
 #include "KexiAutoFormView.h"
+#include <QScrollArea>
+#include <QLayout>
+#include <KexiWindow.h>
+#include "widgets/AutoForm.h"
+
+#include <kexidb/cursor.h>
+#include <KexiMainWindowIface.h>
+
+KexiAutoFormView::KexiAutoFormView(QWidget* parent): KexiView(parent), m_autoForm(0)
+{
+    kDebug();
+    setObjectName("KexiAutoForm_DataView");
+    m_scrollArea = new QScrollArea(this);
+    m_scrollArea->setBackgroundRole(QPalette::Dark);
+    m_scrollArea->viewport()->setAutoFillBackground(true);
+    
+    layout()->addWidget(m_scrollArea);
+}
+
+KexiAutoFormView::~KexiAutoFormView()
+{
+
+}
 
 void KexiAutoFormView::resizeEvent(QResizeEvent* event)
 {
@@ -26,6 +49,32 @@ void KexiAutoFormView::resizeEvent(QResizeEvent* event)
     QWidget::resizeEvent(event);
 }
 
+tristate KexiAutoFormView::afterSwitchFrom(Kexi::ViewMode mode)
+{
+    kDebug();
+    kDebug() << tempData()->name;
+    
+    QDomElement e = tempData()->autoformDefinition;
+    
+    //if (tempData()->schemaChangedInPreviousView) {
+        if (m_autoForm) {
+            m_scrollArea->takeWidget();
+            delete m_autoForm;
+        }
+        m_autoForm = new AutoForm(this);
+        
+        KexiDB::Connection *conn = \
KexiMainWindowIface::global()->project()->dbConnection(); +        KexiDB::Cursor \
*cursor = conn->executeQuery(*(conn->tableSchema("actor"))); +        
+        if (cursor) {
+            KexiTableViewData *data = new KexiTableViewData(cursor);
+            m_autoForm->setData(data);
+        }
+        m_scrollArea->setWidget(m_autoForm);
+    //}
+    return true;
+}
+
 void KexiAutoFormView::addNewRecordRequested()
 {
 
@@ -56,3 +105,25 @@ void KexiAutoFormView::moveToRecordRequested(uint r)
 
 }
 
+long int KexiAutoFormView::currentRecord()
+{
+    return KexiRecordNavigatorHandler::currentRecord();
+}
+
+long int KexiAutoFormView::recordCount()
+{
+    return KexiRecordNavigatorHandler::recordCount();
+}
+
+tristate KexiAutoFormView::beforeSwitchTo(Kexi::ViewMode mode, bool &dontStore)
+{
+    Q_UNUSED(mode);
+    Q_UNUSED(dontStore);
+    
+    return true;
+}
+
+KexiAutoFormPart::TempData* KexiAutoFormView::tempData() const
+{
+    return static_cast<KexiAutoFormPart::TempData*>(window()->data());
+}
diff --git a/kexi/plugins/autoforms/KexiAutoFormView.h \
b/kexi/plugins/autoforms/KexiAutoFormView.h index e4204e5..3606b9a 100644
--- a/kexi/plugins/autoforms/KexiAutoFormView.h
+++ b/kexi/plugins/autoforms/KexiAutoFormView.h
@@ -25,25 +25,38 @@
 #include <widget/utils/kexirecordnavigator.h>
 #include <widget/tableview/kexidataawareobjectiface.h>
 #include <widget/kexidataprovider.h>
+#include "KexiAutoFormPart.h"
 
-class KexiAutoFormView : public KexiView, 
-                        public KexiRecordNavigatorHandler,
-                        public KexiDataAwareObjectInterface,
-                        public KexiFormDataProvider
+class AutoForm;
+class QScrollArea;
+
+class KexiAutoFormView : public KexiView, public KexiRecordNavigatorHandler
 {
 Q_OBJECT
-KEXI_DATAAWAREOBJECTINTERFACE
-
-protected:
-    virtual void resizeEvent(QResizeEvent* );
 
 public:
+    KexiAutoFormView(QWidget* parent);
+    virtual ~KexiAutoFormView();
+
+    virtual tristate afterSwitchFrom(Kexi::ViewMode mode);
+    virtual tristate beforeSwitchTo(Kexi::ViewMode mode, bool& dontStore);
+    
+    virtual void resizeEvent(QResizeEvent* );
+    
     virtual void addNewRecordRequested();
     virtual void moveToFirstRecordRequested();
+    virtual void moveToLastRecordRequested();
     virtual void moveToNextRecordRequested();
     virtual void moveToPreviousRecordRequested();
-    virtual void moveToLastRecordRequested();
     virtual void moveToRecordRequested(uint r);
+    virtual long int currentRecord();
+    virtual long int recordCount();
+    
+private:
+    QScrollArea *m_scrollArea;
+    AutoForm *m_autoForm;
+    
+    KexiAutoFormPart::TempData* tempData() const;
 };
 
 #endif // KEXIAUTOFORMVIEW_H
diff --git a/kexi/plugins/autoforms/widgets/AutoForm.cpp \
b/kexi/plugins/autoforms/widgets/AutoForm.cpp new file mode 100644
index 0000000..025d3ea
--- /dev/null
+++ b/kexi/plugins/autoforms/widgets/AutoForm.cpp
@@ -0,0 +1,245 @@
+/*
+    <one line to give the library's name and an idea of what it does.>
+    Copyright (C) 2011  Adam Pigg <piggz1@gmail.com>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+
+#include "AutoForm.h"
+#include <QGridLayout>
+#include "AutoLineEdit.h"
+
+AutoForm::AutoForm(QWidget* parent): QWidget(parent)
+{
+    m_layout = new QGridLayout(this);
+    setLayout(m_layout);
+    m_title = new QLabel("Title", this);
+    m_layout->addWidget(m_title, 0, 0, 1, 1);
+}
+
+AutoForm::~AutoForm()
+{
+
+}
+
+void AutoForm::resizeEvent(QResizeEvent* event)
+{
+    QWidget::resizeEvent(event);
+}
+
+void AutoForm::addHeaderColumn(const QString& caption, const QString& description, \
const QIcon& icon, int size) +{
+
+}
+
+void AutoForm::cellSelected(int col, int row)
+{
+
+}
+
+void AutoForm::clearColumnsInternal(bool repaint)
+{
+
+}
+
+void AutoForm::copySelection()
+{
+
+}
+
+void AutoForm::createEditor(int row, int col, const QString& addText, bool \
removeOld) +{
+
+}
+
+void AutoForm::currentItemDeleteRequest()
+{
+
+}
+
+int AutoForm::currentLocalSortColumn() const
+{
+return 0;
+}
+
+int AutoForm::currentLocalSortingOrder() const
+{
+return 0;
+}
+
+void AutoForm::cutSelection()
+{
+
+}
+
+void AutoForm::dataRefreshed()
+{
+
+}
+
+void AutoForm::dataSet(KexiTableViewData* data)
+{
+
+}
+
+KexiDataItemInterface* AutoForm::editor(int col, bool ignoreMissingEditor)
+{
+return 0;
+}
+
+void AutoForm::editorShowFocus(int row, int col)
+{
+
+}
+
+void AutoForm::ensureCellVisible(int row, int col)
+{
+
+}
+
+void AutoForm::itemChanged(KexiDB::RecordData* , int row, int col)
+{
+
+}
+
+void AutoForm::itemChanged(KexiDB::RecordData* , int row, int col, QVariant \
oldValue) +{
+
+}
+
+void AutoForm::itemDeleteRequest(KexiDB::RecordData* , int row, int col)
+{
+
+}
+
+void AutoForm::itemSelected(KexiDB::RecordData* )
+{
+
+}
+
+void AutoForm::initDataContents()
+{
+    kDebug();
+    KexiDataAwareObjectInterface::initDataContents();
+
+    m_title->setText(KexiDataAwareObjectInterface::data()->dbTableName());
+    buildForm();
+    layoutForm();
+}
+
+int AutoForm::lastVisibleRow() const
+{
+    return 0;
+}
+
+void AutoForm::newItemAppendedForAfterDeletingInSpreadSheetMode()
+{
+
+}
+
+void AutoForm::paste()
+{
+
+}
+
+void AutoForm::reloadActions()
+{
+
+}
+
+void AutoForm::rowEditTerminated(int row)
+{
+
+}
+
+int AutoForm::rowsPerPage() const
+{
+    return 0;
+}
+
+void AutoForm::setLocalSortingOrder(int col, int order)
+{
+
+}
+
+void AutoForm::sortedColumnChanged(int col)
+{
+
+}
+
+void AutoForm::updateCell(int row, int col)
+{
+
+}
+
+void AutoForm::updateCurrentCell()
+{
+
+}
+
+void AutoForm::updateGUIAfterSorting()
+{
+
+}
+
+void AutoForm::updateRow(int row)
+{
+
+}
+
+void AutoForm::updateWidgetContents()
+{
+
+}
+
+void AutoForm::updateWidgetContentsSize()
+{
+
+}
+
+void AutoForm::updateWidgetScrollBars()
+{
+
+}
+
+QScrollBar* AutoForm::verticalScrollBar() const
+{
+    return 0;
+}
+
+void AutoForm::buildForm()
+{
+    KexiTableViewColumn::List col_list = \
KexiDataAwareObjectInterface::data()->columns(); +
+    foreach(KexiTableViewColumn *col, col_list) {
+        kDebug() << col->captionAliasOrName();
+        AutoWidget* widget = new AutoLineEdit(this);
+        widget->setDataSource(col->field()->name());
+        widget->setColumnInfo(col->columnInfo());
+        m_widgets << widget;
+    }
+    
+}
+
+void AutoForm::layoutForm()
+{
+    int row = 1;
+    foreach(AutoWidget *widget, m_widgets) {
+        m_layout->addWidget(widget, row, 1, 1, 1);
+        ++row;
+    }
+    resize(sizeHint());
+}
diff --git a/kexi/plugins/autoforms/widgets/AutoForm.h \
b/kexi/plugins/autoforms/widgets/AutoForm.h new file mode 100644
index 0000000..a844f534
--- /dev/null
+++ b/kexi/plugins/autoforms/widgets/AutoForm.h
@@ -0,0 +1,91 @@
+/*
+    <one line to give the library's name and an idea of what it does.>
+    Copyright (C) 2011  Adam Pigg <piggz1@gmail.com>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+
+#ifndef AUTOFORM_H
+#define AUTOFORM_H
+
+#include <QWidget>
+#include <tableview/kexidataawareobjectiface.h>
+#include <kexidataprovider.h>
+#include "AutoWidget.h"
+
+class QGridLayout;
+
+class AutoForm : public QWidget, 
+                 public KexiDataAwareObjectInterface,
+                 public KexiFormDataProvider
+{
+    Q_OBJECT
+    KEXI_DATAAWAREOBJECTINTERFACE
+    
+public:
+    AutoForm(QWidget* parent);
+    virtual ~AutoForm();
+    
+protected:
+    virtual void resizeEvent(QResizeEvent* );
+    
+//Reimplement functions from KexiDataAwareObjectInterface
+    virtual void addHeaderColumn(const QString& caption, const QString& description, \
const QIcon& icon, int size); +    virtual void cellSelected(int col, int row);
+    virtual void clearColumnsInternal(bool repaint);
+    virtual void copySelection();
+    virtual void createEditor(int row, int col, const QString& addText = QString(), \
bool removeOld = false); +    virtual void currentItemDeleteRequest();
+    virtual int currentLocalSortColumn() const;
+    virtual int currentLocalSortingOrder() const;
+    virtual void cutSelection();
+    virtual void dataRefreshed();
+    virtual void dataSet(KexiTableViewData* data);
+    virtual KexiDataItemInterface* editor(int col, bool ignoreMissingEditor = \
false); +    virtual void editorShowFocus(int row, int col);
+    virtual void ensureCellVisible(int row, int col);
+    virtual void itemChanged(KexiDB::RecordData* , int row, int col);
+    virtual void itemChanged(KexiDB::RecordData* , int row, int col, QVariant \
oldValue); +    virtual void itemDeleteRequest(KexiDB::RecordData* , int row, int \
col); +    virtual void itemSelected(KexiDB::RecordData* );
+    virtual void initDataContents();
+    virtual int lastVisibleRow() const;
+    virtual void newItemAppendedForAfterDeletingInSpreadSheetMode();
+    virtual void paste();
+    virtual void reloadActions();
+    virtual void rowEditTerminated(int row);
+    virtual int rowsPerPage() const;
+    virtual void setLocalSortingOrder(int col, int order);
+    virtual void sortedColumnChanged(int col);
+    virtual void updateCell(int row, int col);
+    virtual void updateCurrentCell();
+    virtual void updateGUIAfterSorting();
+    virtual void updateRow(int row);
+    virtual void updateWidgetContents();
+    virtual void updateWidgetContentsSize();
+    virtual void updateWidgetScrollBars();
+    virtual QScrollBar* verticalScrollBar() const;
+    
+private:
+    QLabel *m_title;
+    QGridLayout *m_layout;
+    QList<AutoWidget*> m_widgets;
+    
+    void buildForm();
+    void layoutForm();
+};
+
+#endif // AUTOFORM_H
diff --git a/kexi/plugins/autoforms/widgets/AutoLineEdit.cpp \
b/kexi/plugins/autoforms/widgets/AutoLineEdit.cpp new file mode 100644
index 0000000..d115b43
--- /dev/null
+++ b/kexi/plugins/autoforms/widgets/AutoLineEdit.cpp
@@ -0,0 +1,86 @@
+/*
+    <one line to give the library's name and an idea of what it does.>
+    Copyright (C) 2011  Adam Pigg <piggz1@gmail.com>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+
+#include "AutoLineEdit.h"
+#include <kexidb/queryschema.h>
+
+AutoLineEdit::AutoLineEdit(QWidget* parent): AutoWidget(parent)
+{
+    m_lineEdit = new QLineEdit(this);
+    setWidget(m_lineEdit);
+}
+
+AutoLineEdit::~AutoLineEdit()
+{
+
+}
+
+void AutoLineEdit::setReadOnly(bool readOnly)
+{
+
+}
+
+void AutoLineEdit::setInvalidState(const QString& displayText)
+{
+
+}
+
+void AutoLineEdit::setValueInternal(const QVariant& add, bool removeOld)
+{
+    m_lineEdit->setText(add.toString());
+}
+
+void AutoLineEdit::clear()
+{
+
+}
+
+bool AutoLineEdit::cursorAtEnd()
+{
+    return false;
+}
+
+bool AutoLineEdit::cursorAtStart()
+{
+    return false;
+}
+
+bool AutoLineEdit::valueIsEmpty()
+{
+    return false;
+}
+
+bool AutoLineEdit::valueIsNull()
+{
+    return false;
+}
+
+QVariant AutoLineEdit::value()
+{
+    return m_lineEdit->text();
+}
+
+void AutoLineEdit::setColumnInfo(KexiDB::QueryColumnInfo* cinfo)
+{
+    KexiFormDataItemInterface::setColumnInfo(cinfo);
+    setLabel(cinfo->captionOrAliasOrName());
+}
+
+
diff --git a/kexi/plugins/autoforms/widgets/AutoLineEdit.h \
b/kexi/plugins/autoforms/widgets/AutoLineEdit.h new file mode 100644
index 0000000..e070611
--- /dev/null
+++ b/kexi/plugins/autoforms/widgets/AutoLineEdit.h
@@ -0,0 +1,53 @@
+/*
+    <one line to give the library's name and an idea of what it does.>
+    Copyright (C) 2011  Adam Pigg <piggz1@gmail.com>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+
+#ifndef AUTOLINEEDIT_H
+#define AUTOLINEEDIT_H
+
+#include "AutoWidget.h"
+#include <QLineEdit>
+
+
+class AutoLineEdit : public AutoWidget
+{
+
+public:
+    AutoLineEdit(QWidget *parent);
+    virtual ~AutoLineEdit();
+    
+    virtual void setReadOnly(bool readOnly);
+    virtual void setInvalidState(const QString& displayText);
+    virtual void setColumnInfo(KexiDB::QueryColumnInfo* cinfo);
+protected:
+    virtual void setValueInternal(const QVariant& add, bool removeOld);
+
+public:
+    virtual void clear();
+    virtual bool cursorAtEnd();
+    virtual bool cursorAtStart();
+    virtual bool valueIsEmpty();
+    virtual bool valueIsNull();
+    virtual QVariant value();
+    
+private:
+    QLineEdit *m_lineEdit;
+};
+
+#endif // AUTOLINEEDIT_H
diff --git a/kexi/plugins/autoforms/widgets/AutoWidget.cpp \
b/kexi/plugins/autoforms/widgets/AutoWidget.cpp index ddba8f5..f7beb50 100644
--- a/kexi/plugins/autoforms/widgets/AutoWidget.cpp
+++ b/kexi/plugins/autoforms/widgets/AutoWidget.cpp
@@ -23,10 +23,9 @@
 #include <kexidb/field.h>
 #include <QHBoxLayout>
 
-AutoWidget::AutoWidget(KexiDB::Field* fld, QWidget* parent): QWidget(parent)
+AutoWidget::AutoWidget(QWidget* parent): QWidget(parent), m_widget(0)
 {
-    m_field = fld;
-    m_fieldLabel = new QLabel(m_field->captionOrName(), this);
+    m_fieldLabel = new QLabel(this);
     
     m_layout = new QHBoxLayout(this);
     m_layout->addWidget(m_fieldLabel);
@@ -39,9 +38,19 @@ AutoWidget::~AutoWidget()
 
 }
 
-void AutoWidget::setValue(QVariant val)
+void AutoWidget::setLabel(const QString& label)
 {
-m_OriginalValue = val;
+    m_fieldLabel->setText(label);
 }
 
+void AutoWidget::setWidget(QWidget* widget)
+{
+    if (!m_widget) {
+        m_widget = widget;
+        m_layout->addWidget(widget);
+    }
+}
+
+
+
 
diff --git a/kexi/plugins/autoforms/widgets/AutoWidget.h \
b/kexi/plugins/autoforms/widgets/AutoWidget.h index f7b35bb..78f6256 100644
--- a/kexi/plugins/autoforms/widgets/AutoWidget.h
+++ b/kexi/plugins/autoforms/widgets/AutoWidget.h
@@ -23,6 +23,7 @@
 
 #include <QtGui/QWidget>
 #include <QVariant>
+#include <kexiformdataiteminterface.h>
 
 class QLabel;
 class QHBoxLayout;
@@ -31,24 +32,20 @@ class Field;
 }
 
 
-class AutoWidget : public QWidget
+class AutoWidget : public QWidget, public KexiFormDataItemInterface
 {
-    Q_OBJECT
 public:
     virtual ~AutoWidget();
-    virtual QVariant value() = 0;
-    virtual void setValue(QVariant val);
     
 protected:
-    explicit AutoWidget(KexiDB::Field *fld, QWidget* parent = 0);
-    
-    KexiDB::Field *m_field;
-    
-    QVariant m_OriginalValue;
-    QHBoxLayout *m_layout;
+    explicit AutoWidget(QWidget* parent = 0);
     
+    void setLabel(const QString& label);
+    void setWidget(QWidget* widget);
 private:
     QLabel *m_fieldLabel;
+    QHBoxLayout *m_layout;
+    QWidget *m_widget;
 };
 
 #endif // AUTOWIDGETBASE_H


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic