Used slightly different approach. This tab is fully build in source code using subclasses to adjust behaviour of widgets for reuse in the other tabs. Uses custom proxy model for filtering triggers for correct table and supporting out of the box sorting by QTableView. SqlCodePreview: QPlainTextEditor which sql highlighter and in readonly mode but allows copy.
30 lines
754 B
C++
30 lines
754 B
C++
#ifndef SQLCODEPREVIEW_H
|
|
#define SQLCODEPREVIEW_H
|
|
|
|
#include "PgDatabaseCatalog.h"
|
|
#include <QPlainTextEdit>
|
|
#include <memory>
|
|
|
|
class SqlSyntaxHighlighter;
|
|
class PgDatabaseCatalog;
|
|
|
|
class SqlCodePreview : public QPlainTextEdit {
|
|
Q_OBJECT
|
|
public:
|
|
SqlCodePreview(QWidget *parent = nullptr);
|
|
|
|
/** Sets the database catalog that the syntax highlighter is to use.
|
|
*/
|
|
void setCatalog(std::shared_ptr<const PgDatabaseCatalog> catalog);
|
|
|
|
|
|
SqlSyntaxHighlighter *highlighter() { return m_highlighter; }
|
|
private:
|
|
SqlSyntaxHighlighter *m_highlighter = nullptr;
|
|
std::shared_ptr<const PgDatabaseCatalog> m_catalog;
|
|
|
|
private slots:
|
|
void catalogRefresh(const PgDatabaseCatalog *catalog, PgDatabaseCatalog::RefreshFlags flags);
|
|
};
|
|
|
|
#endif // SQLCODEPREVIEW_H
|