Warning, file /utilities/kate/addons/katesql/schemawidget.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002    SPDX-FileCopyrightText: 2010 Marco Mentasti <marcomentasti@gmail.com>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #pragma once
0008 
0009 class SQLManager;
0010 class QMouseEvent;
0011 
0012 #include <QSqlDriver>
0013 #include <QString>
0014 #include <QTreeWidget>
0015 #include <QTreeWidgetItem>
0016 
0017 class SchemaWidget : public QTreeWidget
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     static const int TableType = QTreeWidgetItem::UserType + 1;
0023     static const int SystemTableType = QTreeWidgetItem::UserType + 2;
0024     static const int ViewType = QTreeWidgetItem::UserType + 3;
0025     static const int FieldType = QTreeWidgetItem::UserType + 4;
0026     static const int TablesFolderType = QTreeWidgetItem::UserType + 101;
0027     static const int SystemTablesFolderType = QTreeWidgetItem::UserType + 102;
0028     static const int ViewsFolderType = QTreeWidgetItem::UserType + 103;
0029 
0030     SchemaWidget(QWidget *parent, SQLManager *manager);
0031     ~SchemaWidget() override;
0032 
0033     void buildDatabase(QTreeWidgetItem *databaseItem);
0034     void buildTables(QTreeWidgetItem *tablesItem);
0035     void buildViews(QTreeWidgetItem *viewsItem);
0036     void buildFields(QTreeWidgetItem *tableItem);
0037 
0038 public Q_SLOTS:
0039     void buildTree(const QString &connection);
0040     void refresh();
0041 
0042     void generateSelectIntoView();
0043     void generateUpdateIntoView();
0044     void generateInsertIntoView();
0045     void generateDeleteIntoView();
0046     void executeSelect();
0047     QString generateStatement(QSqlDriver::StatementType statementType);
0048     static void pasteStatementIntoActiveView(const QString &statement);
0049     void generateAndPasteStatement(QSqlDriver::StatementType statementType);
0050     void executeStatement(QSqlDriver::StatementType statement);
0051 
0052 private Q_SLOTS:
0053     void slotCustomContextMenuRequested(const QPoint &pos);
0054     void slotItemExpanded(QTreeWidgetItem *item);
0055 
0056 private:
0057     static void deleteChildren(QTreeWidgetItem *item);
0058     void mousePressEvent(QMouseEvent *event) override;
0059     void mouseMoveEvent(QMouseEvent *event) override;
0060     bool isConnectionValidAndOpen();
0061     QString m_connectionName;
0062     QPoint m_dragStartPosition;
0063 
0064     bool m_tablesLoaded;
0065     bool m_viewsLoaded;
0066 
0067     SQLManager *m_manager;
0068 };