/* * 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/FilePath.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

Notable Code Contributions:

  • droidmonkey
  • phoerious
  • TheZ3ro
  • louib
  • weslly
  • varjolintu (KeePassXC-Browser)
  • hifi (SSH Agent)
  • ckieschnick (KeeShare)
  • seatedscribe (CSV Import)
  • brainplot (many improvements)
  • kneitinger (many improvements)
  • frostasm (many improvements)
  • fonic (Entry Table View)
  • kylemanna (YubiKey)
  • keithbennett (KeePassHTTP)
  • Typz (KeePassHTTP)
  • denk-mal (KeePassHTTP)
  • angelsl (KDBX 4)
  • debfx (KeePassX)
  • BlueIce (KeePassX)

Patreon Supporters:

  • Ashura
  • Alexanderjb
  • Andreas Kollmann
  • Richard Ames
  • Christian Rasmussen
  • Gregory Werbin
  • Nuutti Toivola
  • SLmanDR
  • Tyler Gass
  • Lionel Laské
  • Dmitrii Galinskii
  • Sergei Maximov
  • John-Ivar
  • Clayton Casciato

Translations:

  • Arabic: AboShanab, Night1, kmutahar, muha_abdulaziz, omar.nsy
  • Basque: azken_tximinoa, Hey_neken
  • Bengali: codesmite
  • Burmese: Phyu
  • Catalan: capitantrueno, dsoms, mcus, raulua, ZJaume
  • Chinese (China): Biggulu, Brandon_c, Dy64, Felix2yu, Small_Ku, Z4HD, carp0129, ef6, holic, kikyous, kofzhanganguo, ligyxy, remonli, slgray, umi_neko, vc5
  • Chinese (Taiwan): BestSteve, MiauLightouch, Small_Ku, flachesis, gojpdchx, raymondtau, th3lusive, yan12125, ymhuang0808
  • Czech: DanielMilde, JosefVitu, awesomevojta, pavelb, tpavelek
  • Danish: nlkl, KalleDK, MannVera, alfabetacain, ebbe, thniels
  • Dutch: Bubbel, Dr.Default, apie, bartlibert, evanoosten, fvw, KnooL, srgvg, Vistaus, wanderingidea, Stephan_P, Zombaya1, e2jk, ovisicnarf, pietermj, rigrig, theniels17
  • English (UK): YCMHARHZ, rookwood01, throne3d
  • Esperanto: batisteo
  • Estonian: Hermanio
  • Finnish: artnay, Jarppi, MawKKe, petri, tomisalmi, hifi, varjolintu
  • French: yahoe.001, A1RO, Albynton, Cabirto, Fumble, Gui13, MartialBis, MrHeadwar, Nesousx, Raphi111, Scrat15, aghilas.messara, alexisju, b_mortgat, benoitbalon, bisaloo, e2jk, ebrious, frgnca, ggtr1138, gilbsgilbs, gtalbot, houdini, houdini69, iannick, jlutran, kyodev, lacnic, laetilodie, logut, mlpo, narzb, nekopep, pBouillon, plunkets, theodex, tl_pierre, wilfriedroset
  • German: origin_de, mithrial, andreas.maier, NotAName, Atalanttore, Hativ, muellerma, mircsicz, derhagen, Wyrrrd, mbetz, kflesch, nursoda, BasicBaer, mfernau77, for1real, joe776, waster, eth0, marcbone, mcliquid, transi_222, MarcEdinger, DavidHamburg, jensrutschmann, codejunky, vlenzer, montilo, antsas, rgloor, Calyrx, omnisome4, pcrcoding
  • Greek: magkopian, nplatis, tassos.b, xinomilo
  • Hungarian: bubu, meskobalazs, urbalazs, andras_tim
  • Indonesian: zk, bora_ach
  • Italian: the.sailor, VosaxAlo, tosky, seatedscribe, bovirus, Peo, NITAL, FranzMari, Gringoarg, amaxis, salvatorecordiano, duncanmid, lucaim
  • Japanese: masoo, metalic_cat, p2635, Shinichirou_Yamada, vargas.peniel, vmemjp, yukinakato, gojpdchx, saita
  • Korean: cancantun, peremen
  • Lithuanian: Moo, pauliusbaulius, rookwood101
  • Norweigian Bokmål: sattor, ysteinalver, jumpingmushroom, JardarBolin, eothred, torgeirf, haarek
  • Polish: keypress, konradmb, mrerexx, psobczak, SebJez, hoek
  • Portuguese: weslly, xendez
  • Portuguese (Brazil): danielbibit, guilherme__sr, Havokdan, fabiom, flaviobn, weslly, newmanisaac, rafaelnp, RockyTV, xendez, lucasjsoliveira, vitor895, mauri.andres, andersoniop
  • Portuguese (Portugal): American_Jesus, xendez, hds, arainho, a.santos, pfialho, smarquespt, mihai.ile, smiguel, lmagomes, xnenjm
  • Russian: Mogost, alexminza, KekcuHa, NcNZllQnHVU, ruslan.denisenko, agag11507, anm, cl0ne, JayDi85, RKuchma, Rakleed, vsvyatski, NetWormKido, DG, Mr.GreyWolf, VictorR2007, _nomoretears_, netforhack, denoos, wkill95, Shevchuk, talvind, artemkonenko, ShareDVI
  • Slovak: l.martinicky, Slavko, crazko, pecer
  • Spanish: gonrial, iglpdc, vsvyatski, Xlate1984, erinm, AndreachongB, piegope, lupa18, e2jk, capitantrueno, LeoBeltran, antifaz, Zranz, AdrianClv, EdwardNavarro, rodolfo.guagnini, NicolasCGN, caralu74, puchrojo, DarkHolme, pdinoto, masanchez5000, adolfogc, systurbed, mauri.andres, Bendhet, vargas.peniel, eliluminado, jojobrambs, pquin
  • Swedish: theschitz, Anders_Bergqvist, LIINdd, krklns, henziger, jpyllman, peron, Thelin, baxtex, zeroxfourc
  • Thai: arthit, rayg
  • Turkish: TeknoMobil, etc, SeLeNLeR, ethem578, cagries, N3pp
  • Ukrainian: brisk022, exlevan, chulivska, cl0ne, zoresvit, netforhack, ShareDVI
)"; 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(filePath()->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())); } AboutDialog::~AboutDialog() { } void AboutDialog::copyToClipboard() { QClipboard* clipboard = QApplication::clipboard(); clipboard->setText(m_ui->debugInfo->toPlainText()); }