Skip to content

Commit caaeaca

Browse files
author
魏鹏
committed
change the base object of Finder and LogViewer from QObject to QWidget to attach it's lifecycle
1 parent 1650396 commit caaeaca

File tree

7 files changed

+19
-33
lines changed

7 files changed

+19
-33
lines changed

finder.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
#include "finder.h"
22

33
Finder::Finder(QWidget *parent):
4-
QObject(parent),
5-
mDockWidget(new QDockWidget("finder", parent)),
6-
mRootWidget(new QWidget(mDockWidget)),
4+
QDockWidget("finder", parent),
5+
mRootWidget(new QWidget(this)),
76
mMainLayout(new QHBoxLayout(mRootWidget)),
87
mRegModeBox(new QCheckBox("regular mode", mRootWidget)),
98
mCaseSenseBox(new QCheckBox("case sensitively", mRootWidget)),
@@ -22,18 +21,13 @@ Finder::Finder(QWidget *parent):
2221

2322
mRootWidget->setLayout(mMainLayout);
2423

25-
mDockWidget->setWidget(mRootWidget);
24+
setWidget(mRootWidget);
2625

2726
// setting
2827
connect(mFindButton, &QPushButton::clicked, this, &Finder::onFindButtonClicked);
2928
connect(mFindPreButton, &QPushButton::clicked, this, &Finder::onFindPreButtonClicked);
3029
}
3130

32-
QDockWidget * Finder::dockWidget()
33-
{
34-
return mDockWidget;
35-
}
36-
3731
void Finder::onFindButtonClicked()
3832
{
3933
onFindTriggered(false);

finder.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@
1515
#include <QString>
1616

1717

18-
class Finder : public QObject
18+
class Finder : public QDockWidget
1919
{
2020
Q_OBJECT
2121

2222
public:
2323
Finder(QWidget *parent);
2424

25-
QDockWidget *dockWidget();
26-
2725
signals:
2826
void findTriggered(const QString &exp, const QTextDocument::FindFlags &options, bool regMode);
2927

@@ -35,7 +33,6 @@ private slots:
3533
void onFindTriggered(bool backward);
3634

3735
private:
38-
QDockWidget *mDockWidget;
3936
QWidget *mRootWidget;
4037
QLayout *mMainLayout;
4138

highlighter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "highlighter.h"
22

3-
Highlighter::Highlighter(QObject *parent):
4-
QObject(parent)
3+
Highlighter::Highlighter(QWidget *parent):
4+
QDockWidget(parent)
55
{
66

77
}

highlighter.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
#include <QObject>
55
#include <QSharedPointer>
66
#include <QSyntaxHighlighter>
7+
#include <QDockWidget>
78

89

9-
class Highlighter : public QObject
10+
class Highlighter : public QDockWidget
1011
{
1112
Q_OBJECT
1213

1314
public:
14-
explicit Highlighter(QObject *parent = nullptr);
15+
explicit Highlighter(QWidget *parent = nullptr);
1516

1617
QSharedPointer<QSyntaxHighlighter> logHighlighter();
1718

logviewer.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
#include "logviewer.h"
22

33
LogViewer::LogViewer(QWidget *parent):
4-
QObject(parent),
5-
mRootWidget(new QWidget(parent)),
6-
mRootLayout(new QGridLayout(mRootWidget)),
7-
mMainTabWidget(new QTabWidget(mRootWidget)),
4+
QWidget(parent),
5+
mRootLayout(new QGridLayout(this)),
6+
mMainTabWidget(new QTabWidget(this)),
87
mViewportList(new QVector<Viewport *>()),
98
mCurrentIndex(0)
109
{
1110
// set layout
1211
mMainTabWidget->setContentsMargins(QMargins());
1312
mRootLayout->addWidget(mMainTabWidget);
1413
mRootLayout->setContentsMargins(QMargins());
15-
mRootWidget->setLayout(mRootLayout);
14+
setLayout(mRootLayout);
15+
16+
mMainTabWidget->setTabsClosable(true);
1617
}
1718

1819
LogViewer::~LogViewer()
@@ -24,16 +25,11 @@ LogViewer::~LogViewer()
2425
delete mViewportList;
2526
}
2627

27-
QWidget *LogViewer::rootWidget()
28-
{
29-
return mRootWidget;
30-
}
31-
3228
void LogViewer::addViewport(QString title)
3329
{
3430
Viewport *viewport;
3531

36-
viewport = new Viewport(title, new QPlainTextEdit(mRootWidget));
32+
viewport = new Viewport(title, new QPlainTextEdit(this));
3733

3834
mViewportList->append(viewport);
3935
mMainTabWidget->addTab(viewport->textEdit, viewport->title);

logviewer.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <QSharedPointer>
2424

2525

26-
class LogViewer : public QObject
26+
class LogViewer : public QWidget
2727
{
2828
Q_OBJECT
2929

@@ -43,7 +43,6 @@ class LogViewer : public QObject
4343
LogViewer(QWidget *parent);
4444
virtual ~LogViewer();
4545

46-
QWidget *rootWidget();
4746
void addViewport(QString title = "default.txt");
4847
void setHighlighter(QSharedPointer<QSyntaxHighlighter> highlighter);
4948

@@ -54,7 +53,6 @@ private slots:
5453
void highlightCurrentLine();
5554

5655
private:
57-
QWidget *mRootWidget;
5856
QLayout *mRootLayout;
5957
QTabWidget *mMainTabWidget;
6058
QVector<Viewport *> *mViewportList;

mainwindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ MainWindow::MainWindow(QWidget *parent) :
77
{
88
setWindowTitle("VisualLog");
99
mLogViewer->addViewport();
10-
setCentralWidget(mLogViewer->rootWidget());
11-
addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea, mFinder->dockWidget());
10+
setCentralWidget(mLogViewer);
11+
addDockWidget(Qt::DockWidgetArea::BottomDockWidgetArea, mFinder);
1212

1313
connect(mFinder, &Finder::findTriggered, mLogViewer, &LogViewer::find);
1414
}

0 commit comments

Comments
 (0)