6#include "../include/mainwindow.h"
8MainWindow::MainWindow(QWidget *parent)
11 setWindowTitle(
"Dock Widgets");
17 textBrowser =
new QTextBrowser(
this);
19 connect(headingList, &QListWidget::itemClicked,
20 this, &MainWindow::updateText);
22 updateText(headingList->item(0));
23 headingList->setCurrentRow(0);
24 setCentralWidget(textBrowser);
29 QFile titlesFile(
":/Resources/titles.txt");
30 titlesFile.open(QFile::ReadOnly);
34 QString line = titlesFile.readLine().trimmed();
35 QStringList parts = line.split(u'\t', Qt::SkipEmptyParts);
36 if (parts.size() != 2)
39 QString chapterTitle = parts[0];
40 QString fileName = parts[1];
42 QFile chapterFile(fileName);
43 headingList =
new QListWidget();
45 chapterFile.open(QFile::ReadOnly);
46 QListWidgetItem *item =
new QListWidgetItem(chapterTitle, headingList);
47 item->setData(Qt::DisplayRole, chapterTitle);
48 item->setData(Qt::UserRole, chapterFile.readAll());
49 item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
53 }
while (titlesFile.isOpen());
61 contentsWindow =
new QDockWidget(tr(
"Table of Contents"),
this);
62 contentsWindow->setAllowedAreas(Qt::LeftDockWidgetArea
63 | Qt::RightDockWidgetArea);
64 addDockWidget(Qt::LeftDockWidgetArea, contentsWindow);
66 headingList =
new QListWidget(contentsWindow);
67 contentsWindow->setWidget(headingList);
73 QAction *exitAct =
new QAction(tr(
"E&xit"),
this);
74 exitAct->setShortcut(tr(
"Ctrl+Q"));
75 exitAct->setStatusTip(tr(
"Exit the application"));
76 connect(exitAct, &QAction::triggered, qApp, &QApplication::quit);
78 QMenu *fileMenu = menuBar()->addMenu(tr(
"&File"));
79 fileMenu->addAction(exitAct);
84 QString text = item->data(Qt::UserRole).toString();
85 textBrowser->setHtml(text);
void updateText(QListWidgetItem *item)