12 #include "ui_VuoEditorAboutBox.h"
14 const QString VuoEditorAboutBox::htmlHead =
"<head><style>a { color: #0099a9; }</style></head>";
26 QString buildDate = __DATE__;
27 QString versionNumber = VUO_VERSION_STRING;
28 QString revisionNumber = VUO_REVISION;
30 QString missionMarkdown = tr(
31 "**Create memorable interactive experiences — without coding.**\n"
33 "Drag, drop, and connect Vuo's simple building blocks to support your creative work: \n"
34 "VJ gigs, exhibits, installations, stage productions, dome graphics, visual signage, \n"
35 "video effects, maker projects, trade show booths, and more. \n"
38 .arg(
"[vuo.org](https://vuo.org)");
42 QString descriptiveText = \
43 QString(
"<html>%4<body>"
44 "<p><span style=\"font-size:28pt;\">Vuo</span>"
45 "<span style=\"font-size:20pt;\"> %1</span><br>"
46 "<span style=\"font-size:12pt; color:rgba(0,0,0,.5)\">" + tr(
"Built on %2 (%3)") +
"<br>"
47 "Copyright © 2012–2020 Kosada Incorporated</span></p>%5"
57 contributorFont = ui->textEdit->font();
59 licenseFont.setFamily(
"Monaco");
60 licenseFont.setStyleHint(QFont::Monospace);
61 licenseFont.setFixedPitch(
true);
62 licenseFont.setPointSize(11);
64 const int tabStop = 8;
65 QFontMetrics licenseFontMetrics(licenseFont);
66 ui->textEdit->setTabStopWidth(tabStop * licenseFontMetrics.width(
' '));
69 ui->textLabel->setText(descriptiveText);
72 contributors =
new QTreeWidgetItem(ui->treeWidget);
73 contributors->setText(0, tr(
"Contributors"));
74 dependencyLicenses =
new QTreeWidgetItem(ui->treeWidget);
75 dependencyLicenses->setText(0, tr(
"Dependency Licenses"));
78 populateContributorsList();
79 populateLicenseTexts();
81 ui->textEdit->setReadOnly(
true);
84 connect(ui->treeWidget, &QTreeWidget::currentItemChanged,
this, &VuoEditorAboutBox::updateDisplayedTextContent);
87 ui->treeWidget->setCurrentItem(contributors);
90 setAttribute(Qt::WA_DeleteOnClose,
false);
97 void VuoEditorAboutBox::populateContributorsList()
99 QFile contributorsList(QApplication::applicationDirPath().append(
"/../Resources/CONTRIBUTORS.md"));
101 if (!contributorsList.open(QIODevice::ReadOnly))
102 contributorText =
"Please see our list of contributors at <a href=\"https://vuo.org/contributors\">https://vuo.org/contributors</a>. ";
107 QTextStream textStream(&contributorsList);
115 void VuoEditorAboutBox::populateLicenseTexts()
117 QDir licenseTextDir(QApplication::applicationDirPath().append(
"/../Frameworks/Vuo.framework/Documentation/Licenses"));
118 if (!licenseTextDir.exists())
121 QStringList licenseFileList(licenseTextDir.entryList(QDir::Files|QDir::Readable));
122 foreach (QString licenseFileName, licenseFileList)
124 QFile licenseFile(licenseTextDir.filePath(licenseFileName));
125 if (licenseFile.open(QIODevice::ReadOnly))
127 QFileInfo licenseFileInfo(licenseFile);
128 QString dependencyIdentifier = licenseFileInfo.completeBaseName();
129 QTreeWidgetItem *dependencyLicenseItem =
new QTreeWidgetItem();
130 dependencyLicenseItem->setText(0, dependencyIdentifier);
131 dependencyLicenses->addChild(dependencyLicenseItem);
133 QTextStream textStream(&licenseFile);
134 licenseTextForDependency[dependencyIdentifier] = textStream.readAll();
143 void VuoEditorAboutBox::updateDisplayedTextContent()
145 QTreeWidgetItem *currentItem = ui->treeWidget->currentItem();
146 if (currentItem == contributors)
148 ui->textEdit->setFont(contributorFont);
149 ui->textEdit->setText(htmlHead + contributorText);
151 else if (currentItem == dependencyLicenses)
152 ui->textEdit->setText(
"");
155 ui->textEdit->setFont(licenseFont);
161 QString licenseText = licenseTextForDependency[currentItem->text(0)];
162 if (Qt::mightBeRichText(licenseText))
163 ui->textEdit->document()->setHtml(htmlHead + licenseText);
165 ui->textEdit->document()->setPlainText(licenseText);
169 VuoEditorAboutBox::~VuoEditorAboutBox()