overte/interface/src/ui/BaseLogDialog.h
2018-01-04 12:51:11 -08:00

83 lines
1.9 KiB
C++

//
// BaseLogDialog.h
// interface/src/ui
//
// Created by Clement Brisset on 1/31/17.
// Copyright 2017 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#ifndef hifi_BaseLogDialog_h
#define hifi_BaseLogDialog_h
#include <QDialog>
#include <QSyntaxHighlighter>
const int ELEMENT_MARGIN = 7;
const int ELEMENT_HEIGHT = 32;
const int CHECKBOX_MARGIN = 12;
const int CHECKBOX_WIDTH = 110;
const int COMBOBOX_WIDTH = 160;
const int BUTTON_MARGIN = 8;
class QPushButton;
class QLineEdit;
class QPlainTextEdit;
class Highlighter : public QSyntaxHighlighter {
public:
Highlighter(QTextDocument* parent = nullptr);
void setBold(int indexToBold);
QString keyword;
protected:
void highlightBlock(const QString& text) override;
private:
QTextCharFormat boldFormat;
QTextCharFormat keywordFormat;
};
class BaseLogDialog : public QDialog {
Q_OBJECT
public:
BaseLogDialog(QWidget* parent);
~BaseLogDialog();
public slots:
virtual void appendLogLine(QString logLine);
private slots:
void updateSelection();
void handleSearchButton();
void handleSearchTextChanged(QString text);
void toggleSearchPrev();
void toggleSearchNext();
protected:
int _leftPad{ 0 };
QString _searchTerm;
QPlainTextEdit* _logTextBox{ nullptr };
Highlighter* _highlighter{ nullptr };
void resizeEvent(QResizeEvent* event) override;
void showEvent(QShowEvent* event) override;
virtual QString getCurrentLog() = 0;
void clearSearch();
private:
QPushButton* _searchButton{ nullptr };
QLineEdit* _searchTextBox{ nullptr };
QPushButton* _searchPrevButton{ nullptr };
QPushButton* _searchNextButton{ nullptr };
void initControls();
void showLogData();
};
#endif // hifi_BaseLogDialog_h