comparison src/gui/ui_utils.cpp @ 15:cde8f67a7c7d

*: update, megacommit :)
author Paper <mrpapersonic@gmail.com>
date Tue, 19 Sep 2023 22:36:08 -0400
parents 5c0397762b53
children 2743011a6042
comparison
equal deleted inserted replaced
14:a29c9402faf0 15:cde8f67a7c7d
8 #include <QLabel> 8 #include <QLabel>
9 #include <QPixmap> 9 #include <QPixmap>
10 #include <QTextBlock> 10 #include <QTextBlock>
11 #include <QVBoxLayout> 11 #include <QVBoxLayout>
12 #ifdef MACOSX 12 #ifdef MACOSX
13 #include "sys/osx/dark_theme.h" 13 # include "sys/osx/dark_theme.h"
14 #else 14 #else
15 #include "sys/win32/dark_theme.h" 15 # include "sys/win32/dark_theme.h"
16 #endif 16 #endif
17 17
18 namespace UiUtils { 18 namespace UiUtils {
19 19
20 bool IsInDarkMode() { 20 bool IsInDarkMode() {
96 96
97 Paragraph* TextParagraph::GetParagraph() { 97 Paragraph* TextParagraph::GetParagraph() {
98 return paragraph; 98 return paragraph;
99 } 99 }
100 100
101 LabelledTextParagraph::LabelledTextParagraph(QString title, QString label, QString data, QWidget* parent) 101 LabelledTextParagraph::LabelledTextParagraph(QString title, QString label, QString data,
102 : QWidget(parent) { 102 QWidget* parent)
103 : QWidget(parent) {
103 setLayout(new QVBoxLayout); 104 setLayout(new QVBoxLayout);
104 105
105 header = new Header(title, this); 106 header = new Header(title, this);
106 107
107 // this is not accessible from the object because there's really 108 // this is not accessible from the object because there's really
108 // no reason to make it accessible... 109 // no reason to make it accessible...
109 QWidget* content = new QWidget(this); 110 QWidget* content = new QWidget(this);
110 content->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); 111 content->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
111 112
112 labels = new Paragraph(label, this); 113 labels = new Paragraph(label, this);
113 labels->setTextInteractionFlags(Qt::NoTextInteraction); 114 labels->setTextInteractionFlags(Qt::NoTextInteraction);
114 labels->setAttribute(Qt::WidgetAttribute::WA_TransparentForMouseEvents); 115 labels->setAttribute(Qt::WidgetAttribute::WA_TransparentForMouseEvents);
115 labels->setWordWrapMode(QTextOption::NoWrap); 116 labels->setWordWrapMode(QTextOption::NoWrap);
116 labels->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); 117 labels->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
117 labels->setFixedWidth(123); 118 labels->setFixedWidth(123);
118 119
119 paragraph = new Paragraph(data, this); 120 paragraph = new Paragraph(data, this);
120 paragraph->setTextInteractionFlags(Qt::NoTextInteraction); 121 paragraph->setTextInteractionFlags(Qt::NoTextInteraction);
121 paragraph->setAttribute(Qt::WidgetAttribute::WA_TransparentForMouseEvents); 122 paragraph->setAttribute(Qt::WidgetAttribute::WA_TransparentForMouseEvents);
146 147
147 Paragraph* LabelledTextParagraph::GetParagraph() { 148 Paragraph* LabelledTextParagraph::GetParagraph() {
148 return paragraph; 149 return paragraph;
149 } 150 }
150 151
151 SelectableTextParagraph::SelectableTextParagraph(QString title, QString data, QWidget* parent) : QWidget(parent) { 152 SelectableTextParagraph::SelectableTextParagraph(QString title, QString data, QWidget* parent)
153 : QWidget(parent) {
152 setLayout(new QVBoxLayout); 154 setLayout(new QVBoxLayout);
153 155
154 header = new Header(title, this); 156 header = new Header(title, this);
155 157
156 QWidget* content = new QWidget(this); 158 QWidget* content = new QWidget(this);
197 199
198 /* highly based upon... some stackoverflow answer for PyQt */ 200 /* highly based upon... some stackoverflow answer for PyQt */
199 QSize Paragraph::minimumSizeHint() const { 201 QSize Paragraph::minimumSizeHint() const {
200 QTextDocument* doc = document(); 202 QTextDocument* doc = document();
201 long h = (long)(blockBoundingGeometry(doc->findBlockByNumber(doc->blockCount() - 1)).bottom() + 203 long h = (long)(blockBoundingGeometry(doc->findBlockByNumber(doc->blockCount() - 1)).bottom() +
202 (2 * doc->documentMargin())); 204 (2 * doc->documentMargin()));
203 return QSize(QPlainTextEdit::sizeHint().width(), (long)h); 205 return QSize(QPlainTextEdit::sizeHint().width(), h);
204 } 206 }
205 207
206 QSize Paragraph::sizeHint() const { 208 QSize Paragraph::sizeHint() const {
207 return minimumSizeHint(); 209 return minimumSizeHint();
208 } 210 }