/*
* Copyright (C) 2012 Felix Geyer
* Copyright (C) 2017 KeePassXC Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 or (at your option)
* version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include "AboutDialog.h"
#include "ui_AboutDialog.h"
#include "config-keepassx.h"
#include "core/Resources.h"
#include "core/Tools.h"
#include "crypto/Crypto.h"
#include
static const QString aboutMaintainers = R"(
)";
static const QString aboutContributors = R"(
VIP Patreon Supporters:
- John Cook
- Max Anderson
- l0b0
- NarwhalOfAges
- Caleb Currie
- Igor Zinovik
- Morgan Courbet
- Sergiu Coroi
- Chris Sohns
- Kyle Kneitinger
- Sergey Vilgelm
- Roman Vaughan (NZSmartie)
- Shmavon Gazanchyan
- Riley Moses
- Korbinian Schildmann
- Andreas (nitrohorse)
- Kernellinux
- Micha Ober
- PublicByte
Notable Code Contributions:
- droidmonkey
- phoerious
- louib (CLI)
- varjolintu (Browser Integration)
- hifi (SSH Agent)
- ckieschnick (KeeShare)
- seatedscribe (CSV Import)
- Aetf (FdoSecrets Storage Server)
- weslly (macOS improvements)
- brainplot (many improvements)
- kneitinger (many improvements)
- frostasm (many improvements)
- fonic (Entry Table View)
- kylemanna (YubiKey)
- c4rlo (Offline HIBP Checker)
- wolframroesler (HTML Export, Statistics, Password Health, HIBP integration)
- mdaniel (OpVault Importer)
- angelsl (KDBX 4)
- TheZ3ro (retired lead)
- debfx (KeePassX)
- BlueIce (KeePassX)
Patreon Supporters:
- Igor Zinovik
- Alexanderjb
- Richard Ames
- SLmanDR
- Christian Rasmussen
- Tyler Gass
- Nuutti Toivola
- Gregory Werbin
- Lionel Laské
- Ivar
- Darren
- Brad
- Mathieu Peltier
- gonczor
- Oleksii Aleksieiev
- Gernot Premper
- Julian Stier
- Daniel Epp
- Ruben Schade
- Esteban Martinez
- Niels Ganser
- turin231
- judd
- Tarek Sherif
- Bernhard
- William Komanetsky
- Clark Henry
- Justin Carroll
- Shintaro Matsushima
- Larry Siden
- Thammachart Chinvarapon
- Patrick Evans
Translations:
- العربية (Arabic): AboShanab, kmutahar, muha_abdulaziz, Night1, omar.nsy
- euskara (Basque): azken_tximinoa, Galaipa, Hey_neken
- বাংলা (Bengali): codesmite
- ဗမာစာ (Burmese): Snooooowwwwwman
- català (Catalan): antoniopolonio, capitantrueno, dsoms, MarcRiera, mcus, raulua, ZJaume
- 中文 (Chinese (Simplified)): Biggulu, Brandon_c, carp0129, Dy64, ef6, Felix2yu, hoilc, ivlioioilvi,
kikyous, kofzhanganguo, ligyxy, lxx4380, remonli, ShuiHuo, slgray, Small_Ku, snhun, umi_neko, vc5, Wylmer_Wang, Z4HD
- 中文 (台灣) (Chinese (Traditional)): BestSteve, flachesis, gojpdchx, ligyxy, MiauLightouch, plesry,
priv, raymondtau, Small_Ku, th3lusive, yan12125, ymhuang0808
- hrvatski jezik (Croatian): Halberd, mladenuzelac
- čeština (Czech): awesomevojta, DanielMilde, JosefVitu, pavelb, stps, tpavelek
- dansk (Danish): alfabetacain, ebbe, GimliDk, JakobPP, KalleDK, MannVera, nlkl, thniels
- Nederlands (Dutch): apie, bartlibert, Bubbel, bython, Dr.Default, e2jk, evanoosten, fourwood,
fvw, glotzbach, JCKalman, KnooL, ovisicnarf, pietermj, rigrig, srgvg, Stephan_P, stijndubrul, theniels17,
ThomasChurchman, Vistaus, wanderingidea, Zombaya1
- English (UK): CisBetter, rookwood101, spacemanspiff, throne3d, YCMHARHZ
- English (USA): alexandercrice, caralu74, cl0ne, DarkHolme, nguyenlekhtn, thedoctorsoad, throne3d
- Esperanto (Esperanto): batisteo
- eesti (Estonian): Hermanio
- suomi (Finnish): artnay, hif1, MawKKe, petri, tomisalmi, varjolintu
- français (French): A1RO, aghilas.messara, Albynton, alexisju, b_mortgat, Beatussum, benoitbalon,
bertranoel, bisaloo, Cabirto, Code2Mirabeau, e2jk, ebrious, frgnca, Fumble, ggtr1138, gilbsgilbs, gohuros, gtalbot,
Gui13, houdini, houdini69, iannick, jlutran, John.Mickael, kyodev, lacnic, laetilodie, logut, MartialBis, Maxime_J,
mlpo, Morgan, MrHeadwar, narzb, nekopep, Nesousx, pBouillon, Raphi111, Scrat15, TheFrenchGhosty, theodex, tl_pierre,
webafrancois, wilfriedroset, yahoe.001, zedentox
- Galego (Galician): enfeitizador
- Deutsch (German): andreas.maier, antsas, Atalanttore, BasicBaer, bwolkchen, Calyrx, codejunky,
DavidHamburg, derhagen, eth0, fahstat, for1real, Gyges, Hativ, hjonas, HoferJulian, janis91, jensrutschmann,
joe776, kflesch, man_at_home, marcbone, MarcEdinger, markusd112, Maxime_J, mbetz, mcliquid, mfernau77, mircsicz,
mithrial, montilo, MuehlburgPhoenix, muellerma, nautilusx, Nerzahd, Nightwriter, NotAName, nursoda, omnisome4,
origin_de, pcrcoding, PFischbeck, rgloor, rugk, ScholliYT, Silas_229, spacemanspiff, testarossa47, TheForcer,
transi_222, traschke, vlenzer, vpav, waster, wolfram.roesler, Wyrrrd
- ελληνικά (Greek): anvo, magkopian, nplatis, tassos.b, xinomilo
- עברית (Hebrew): shmag18
- magyar (Hungarian): andras_tim, bubu, meskobalazs, urbalazs
- Íslenska (Icelandic): MannVera
- Bahasa (Indonesian): achmad, bora_ach, zk
- Italiano (Italian): amaxis, bovirus, duncanmid, FranzMari, Gringoarg, lucaim, NITAL, Peo,
salvatorecordiano, seatedscribe, Stemby, the.sailor, tosky, VosaxAlo
- 日本語 (Japanese): gojpdchx, masoo, metalic_cat, p2635, saita, Shinichirou_Yamada, take100yen,
Umoxfo, vargas.peniel, vmemjp, WatanabeShint, yukinakato
- қазақ тілі (Kazakh): sotrud_nik
- 한국어 (Korean): cancantun, peremen
- latine (Latin): alexandercrice
- lietuvių kalba (Lithuanian): Moo, pauliusbaulius, rookwood101
- Norsk Bokmål (Norwegian Bokmål): eothred, haarek, JardarBolin, jumpingmushroom, sattor, torgeirf,
ysteinalver
- język polski (Polish): AreYouLoco, dedal123, hoek, keypress, konradmb, mrerexx, pabli, psobczak,
SebJez
- Português (Portuguese): weslly, xendez
- Português (Portuguese (Brazil)): andersoniop, danielbibit, fabiom, flaviobn, guilherme__sr,
Havokdan, lucasjsoliveira, mauri.andres, newmanisaac, rafaelnp, RockyTV, vitor895, weslly, xendez
- Português (Portuguese (Portugal)): a.santos, American_Jesus, arainho, hds, lmagomes, mihai.ile,
pfialho, smarquespt, smiguel, xendez, xnenjm
- Română (Romanian): alexminza, drazvan, polearnik
- русский (Russian): _nomoretears_, agag11507, alexminza, anm, artemkonenko, cl0ne, denoos, DG,
JayDi85, KekcuHa, Mogost, Mr.GreyWolf, MustangDSG, NcNZllQnHVU, netforhack, NetWormKido, Rakleed, RKuchma,
ruslan.denisenko, ShareDVI, Shevchuk, solodyagin, talvind, VictorR2007, vsvyatski, wkill95
- српски језик (Serbian): ArtBIT, oros
- Slovenčina (Slovak): Asprotes, crazko, l.martinicky, pecer, Slavko
- Español (Spanish): adolfogc, AdrianClv, AndreachongB, AndresQ, antifaz, Bendhet, capitantrueno,
caralu74, DarkHolme, e2jk, EdwardNavarro, eliluminado, erinm, gonrial, iglpdc, jojobrambs, LeoBeltran, lupa18,
masanchez5000, mauri.andres, NicolasCGN, Pablohn, pdinoto, picodotdev, piegope, pquin, puchrojo, rcalpha,
rodolfo.guagnini, systurbed, vargas.peniel, ventolinmono, vsvyatski, Xlate1984, zmzpa, Zranz
- Svenska (Swedish): 0x9fff00, Anders_Bergqvist, ArmanB, baxtex, eson, henziger, jpyllman, krklns,
LIINdd, malkus, peron, Thelin, theschitz, victorhggqvst, zeroxfourc
- ไทย (Thai): arthit, ben_cm, chumaporn.t, darika, digitalthailandproject, GitJirasamatakij,
muhammadmumean, nipattra, ordinaryjane, rayg, sirawat, Socialister, Wipanee
- Türkçe (Turkish): cagries, etc, ethem578, mcveri, N3pp, SeLeNLeR, TeknoMobil, Ven_Zallow
- Українська (Ukrainian): brisk022, chulivska, cl0ne, exlevan, m0stik, netforhack, paul_sm, ShareDVI,
zoresvit
)";
AboutDialog::AboutDialog(QWidget* parent)
: QDialog(parent)
, m_ui(new Ui::AboutDialog())
{
m_ui->setupUi(this);
resize(minimumSize());
setWindowFlags(Qt::Sheet);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
m_ui->nameLabel->setText(m_ui->nameLabel->text().replace("${VERSION}", KEEPASSXC_VERSION));
QFont nameLabelFont = m_ui->nameLabel->font();
nameLabelFont.setPointSize(nameLabelFont.pointSize() + 4);
m_ui->nameLabel->setFont(nameLabelFont);
m_ui->iconLabel->setPixmap(resources()->applicationIcon().pixmap(48));
QString debugInfo = Tools::debugInfo().append("\n").append(Crypto::debugInfo());
m_ui->debugInfo->setPlainText(debugInfo);
m_ui->maintainers->setText(aboutMaintainers);
m_ui->contributors->setText(aboutContributors);
setAttribute(Qt::WA_DeleteOnClose);
connect(m_ui->buttonBox, SIGNAL(rejected()), SLOT(close()));
connect(m_ui->copyToClipboard, SIGNAL(clicked()), SLOT(copyToClipboard()));
m_ui->buttonBox->button(QDialogButtonBox::Close)->setDefault(true);
}
AboutDialog::~AboutDialog()
{
}
void AboutDialog::copyToClipboard()
{
QClipboard* clipboard = QApplication::clipboard();
clipboard->setText(m_ui->debugInfo->toPlainText());
}