Internal
Public Access
Adds docs/USER_GUIDE.md, a 10-section end-user guide (getting started, managing/organizing profiles, SSH and RDP connections, session management, settings, troubleshooting). It's embedded into the app binary via a Qt resource file and rendered by a new Help -> User Guide window: a topic sidebar plus content pane, not a single scrolling document, with cross-reference links between sections routed to sidebar selection rather than relying on Qt's Markdown importer's lack of heading anchors. A separate, non-shipped tool (tools/user-guide-pdf/) renders the same source to a standalone PDF via QTextDocument + QPrinter, wrapped by packaging/docs/build-user-guide-pdf.sh. Kept fully outside the main CMake target so Qt6::PrintSupport never becomes a runtime dependency of the shipped app (confirmed via ldd). The PDF itself isn't committed -- generated per release like the platform installers. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
36 lines
624 B
C++
36 lines
624 B
C++
#ifndef ORBITHUB_USER_GUIDE_DIALOG_H
|
|
#define ORBITHUB_USER_GUIDE_DIALOG_H
|
|
|
|
#include <QDialog>
|
|
#include <QString>
|
|
#include <QVector>
|
|
|
|
class QListWidget;
|
|
class QTextBrowser;
|
|
class QUrl;
|
|
|
|
class UserGuideDialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit UserGuideDialog(QWidget* parent = nullptr);
|
|
|
|
private:
|
|
struct Section {
|
|
QString title;
|
|
QString anchor;
|
|
QString markdown;
|
|
};
|
|
|
|
void loadSections();
|
|
void showSection(int index);
|
|
void onAnchorClicked(const QUrl& url);
|
|
|
|
QListWidget* m_sectionList;
|
|
QTextBrowser* m_browser;
|
|
QVector<Section> m_sections;
|
|
};
|
|
|
|
#endif
|