/*
* 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());
}