kexi
kexirelationviewtable.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KEXIRELATIONVIEWTABLE_H
00022 #define KEXIRELATIONVIEWTABLE_H
00023
00024 #include <qframe.h>
00025 #include <qstringlist.h>
00026 #include <qlabel.h>
00027 #include <klistview.h>
00028
00029 #include <widget/kexifieldlistview.h>
00030
00031 class KexiRelationView;
00032 class KexiRelationViewTable;
00033 class KexiRelationViewTableContainerHeader;
00034
00035 namespace KexiDB
00036 {
00037 class TableOrQuerySchema;
00038 }
00039
00040 class KEXIRELATIONSVIEW_EXPORT KexiRelationViewTableContainer : public QFrame
00041 {
00042 Q_OBJECT
00043
00044 public:
00045
00046 KexiRelationViewTableContainer(
00047 KexiRelationView *parent, KexiDB::TableOrQuerySchema *schema);
00048
00049 virtual ~KexiRelationViewTableContainer();
00050
00051 int globalY(const QString &field);
00052
00053
00054 KexiRelationViewTable* tableView() const { return m_tableView; }
00055 KexiDB::TableOrQuerySchema* schema() const;
00056
00057 int right() { return x() + width() - 1; }
00058 int bottom() { return y() + height() - 1; }
00059
00060 signals:
00061 void moved(KexiRelationViewTableContainer *);
00062 void endDrag();
00063 void gotFocus();
00064 void contextMenuRequest(const QPoint& pos);
00065
00066 public slots:
00067 virtual void setFocus();
00068 virtual void unsetFocus();
00069
00070 protected slots:
00071 void moved();
00072 void slotContextMenu(KListView *lv, QListViewItem *i, const QPoint& p);
00073
00074 protected:
00075
00076 KexiRelationViewTableContainerHeader *m_tableHeader;
00077 KexiRelationViewTable *m_tableView;
00078 KexiRelationView *m_parent;
00079
00080 friend class KexiRelationViewTableContainerHeader;
00081 };
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 class KEXIRELATIONSVIEW_EXPORT KexiRelationViewTable : public KexiFieldListView
00094 {
00095 Q_OBJECT
00096
00097 public:
00098 KexiRelationViewTable(KexiDB::TableOrQuerySchema* tableOrQuerySchema,
00099 KexiRelationView *view, QWidget *parent, const char *name = 0);
00100
00101 virtual ~KexiRelationViewTable();
00102
00103
00104 int globalY(const QString &item);
00105
00106 virtual QSize sizeHint() const;
00107
00108 signals:
00109 void tableScrolling();
00110
00111 protected slots:
00112 void slotDropped(QDropEvent *e);
00113 void slotContentsMoving(int, int);
00114
00115
00116 protected:
00117 virtual void contentsMousePressEvent( QMouseEvent * e );
00118 virtual bool acceptDrag(QDropEvent *e) const;
00119
00120 virtual QRect drawItemHighlighter(QPainter *painter, QListViewItem *item);
00121
00122 private:
00123
00124
00125 KexiRelationView *m_view;
00126
00127 };
00128
00129 class KEXIRELATIONSVIEW_EXPORT KexiRelationViewTableContainerHeader : public QLabel
00130 {
00131 Q_OBJECT
00132 public:
00133 KexiRelationViewTableContainerHeader(const QString& text,QWidget *parent);
00134 virtual ~KexiRelationViewTableContainerHeader();
00135
00136 virtual void setFocus();
00137 virtual void unsetFocus();
00138
00139 signals:
00140 void moved();
00141 void endDrag();
00142
00143 protected:
00144 bool eventFilter(QObject *obj, QEvent *ev);
00145 void mousePressEvent(QMouseEvent *ev);
00146 void mouseReleaseEvent(QMouseEvent *ev);
00147
00148 bool m_dragging;
00149 int m_grabX;
00150 int m_grabY;
00151 int m_offsetX;
00152 int m_offsetY;
00153
00154 QColor m_activeBG, m_activeFG, m_inactiveBG, m_inactiveFG;
00155 };
00156
00157 #endif
|