kexi

kexicomboboxtableedit.h
1/* This file is part of the KDE project
2 Copyright (C) 2002 Peter Simonsson <psn@linux.se>
3 Copyright (C) 2003-2006 Jaroslaw Staniek <js@iidea.pl>
4
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this program; see the file COPYING. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 */
20
21#ifndef _KEXICOMBOBOXTABLEEDIT_H_
22#define _KEXICOMBOBOXTABLEEDIT_H_
23
24#include "kexidb/field.h"
25#include "kexiinputtableedit.h"
26#include "kexicomboboxbase.h"
27#include <kexidb/lookupfieldschema.h>
28
29class KPushButton;
30class KLineEdit;
32class KexiTableItem;
34
37class KexiComboBoxTableEdit : public KexiInputTableEdit, public KexiComboBoxBase
38{
39 TQ_OBJECT
40
41
42 public:
43 KexiComboBoxTableEdit(KexiTableViewColumn &column, TQWidget *parent=0);
44 virtual ~KexiComboBoxTableEdit();
45
47 virtual KexiTableViewColumn *column() const { return m_column; }
48
50 virtual KexiDB::Field *field() const { return m_column->field(); }
51
53 virtual TQVariant origValue() const { return m_origValue; }
54
55 virtual void setValueInternal(const TQVariant& add, bool removeOld)
56 { KexiComboBoxBase::setValueInternal(add, removeOld); }
57
58 virtual TQVariant value() { return KexiComboBoxBase::value(); }
59
60 virtual void clear();
61
62 virtual bool valueChanged();
63
64 virtual TQVariant visibleValue();
65
67 virtual void resize(int w, int h);
68
69 virtual void showFocus( const TQRect& r, bool readOnly );
70
71 virtual void hideFocus();
72
73 virtual void paintFocusBorders( TQPainter *p, TQVariant &cal, int x, int y, int w, int h );
74
79 virtual void setupContents( TQPainter *p, bool focused, const TQVariant& val,
80 TQString &txt, int &align, int &x, int &y_offset, int &w, int &h );
81
83 virtual bool handleKeyPress( TQKeyEvent *ke, bool editorActive );
84
85 virtual int widthForValue( TQVariant &val, const TQFontMetrics &fm );
86
87 virtual void hide();
88 virtual void show();
89
91 virtual TQSize totalSize() const;
92
93 virtual void createInternalEditor(KexiDB::QuerySchema& schema);
94
96 virtual void handleAction(const TQString& actionName);
97
101 virtual void handleCopyAction(const TQVariant& value, const TQVariant& visibleValue);
102
103 public slots:
105 virtual void moveCursorToEnd();
106
108 virtual void moveCursorToStart();
109
111 virtual void selectAll();
112
113 protected slots:
114 void slotButtonClicked();
115 void slotRowAccepted(KexiTableItem *item, int row) { KexiComboBoxBase::slotRowAccepted(item, row); }
116 void slotItemSelected(KexiTableItem* item) { KexiComboBoxBase::slotItemSelected(item); }
117 void slotInternalEditorValueChanged(const TQVariant& v)
119 void slotLineEditTextChanged(const TQString& s);
120 void slotPopupHidden();
121
122 protected:
124 void updateFocus( const TQRect& r );
125
126 virtual bool eventFilter( TQObject *o, TQEvent *e );
127
129 virtual TQWidget *internalEditor() const;
130
132 virtual void moveCursorToEndInInternalEditor();
133
135 virtual void selectAllInInternalEditor();
136
138 virtual void setValueInInternalEditor(const TQVariant& value);
139
141 virtual TQVariant valueFromInternalEditor();
142
144 virtual void editRequested() { KexiInputTableEdit::editRequested(); }
145
147 virtual void acceptRequested() { KexiInputTableEdit::acceptRequested(); }
148
150 virtual TQPoint mapFromParentToGlobal(const TQPoint& pos) const;
151
153 virtual int popupWidthHint() const;
154
156 virtual void updateButton();
157
158 virtual KexiComboBoxPopup *popup() const;
159 virtual void setPopup(KexiComboBoxPopup *popup);
160
161 class Private;
162 Private *d;
163};
164
165KEXI_DECLARE_CELLEDITOR_FACTORY_ITEM(KexiComboBoxEditorFactoryItem)
166
167#endif
virtual void slotItemSelected(KexiTableItem *)
Call this from slot.
virtual TQVariant value()
Note: Generally in current implementation this is integer > 0; may be null if no value is set.
virtual void slotRowAccepted(KexiTableItem *item, int row)
Call this from slot.
virtual void setValueInternal(const TQVariant &add, bool removeOld)
void slotInternalEditorValueChanged(const TQVariant &v)
Call this from slot.
Internal class for displaying popup table view.
virtual int widthForValue(TQVariant &val, const TQFontMetrics &fm)
virtual void setValueInternal(const TQVariant &add, bool removeOld)
initializes this editor with add value
virtual void setValueInInternalEditor(const TQVariant &value)
Implemented for KexiComboBoxBase.
virtual void moveCursorToStart()
Implemented for KexiDataItemInterface.
virtual void paintFocusBorders(TQPainter *p, TQVariant &cal, int x, int y, int w, int h)
virtual TQWidget * internalEditor() const
Implemented for KexiComboBoxBase.
virtual TQPoint mapFromParentToGlobal(const TQPoint &pos) const
Implemented for KexiComboBoxBase.
virtual TQVariant visibleValue()
virtual void showFocus(const TQRect &r, bool readOnly)
virtual void createInternalEditor(KexiDB::QuerySchema &schema)
virtual KexiTableViewColumn * column() const
Implemented for KexiComboBoxBase.
virtual TQVariant value()
virtual void clear()
clears item's data, so the data will contain NULL data
virtual KexiDB::Field * field() const
Implemented for KexiComboBoxBase.
virtual bool handleKeyPress(TQKeyEvent *ke, bool editorActive)
virtual TQVariant origValue() const
Implemented for KexiComboBoxBase.
virtual void resize(int w, int h)
virtual void handleAction(const TQString &actionName)
virtual void moveCursorToEnd()
Implemented for KexiDataItemInterface.
virtual TQSize totalSize() const
virtual void acceptRequested()
Implemented for KexiComboBoxBase.
virtual void moveCursorToEndInInternalEditor()
Implemented for KexiComboBoxBase.
virtual void updateButton()
Implemented this to update button state.
virtual void editRequested()
Implemented for KexiComboBoxBase.
virtual void selectAllInInternalEditor()
Implemented for KexiComboBoxBase.
virtual void handleCopyAction(const TQVariant &value, const TQVariant &visibleValue)
virtual void setupContents(TQPainter *p, bool focused, const TQVariant &val, TQString &txt, int &align, int &x, int &y_offset, int &w, int &h)
virtual TQVariant valueFromInternalEditor()
Implemented for KexiComboBoxBase.
void updateFocus(const TQRect &r)
internal
virtual int popupWidthHint() const
Implemented for KexiComboBoxBase.
virtual void selectAll()
Implemented for KexiDataItemInterface.
Meta-data for a field.
Definition field.h:73
KexiDB::QuerySchema provides information about database query.