Akonadi
selftestdialog.cpp
79 connect(ui.testView->selectionModel(), &QItemSelectionModel::currentChanged, this, &SelfTestDialog::selectionChanged);
94QStandardItem *SelfTestDialog::report(ResultType type, const KLocalizedString &summary, const KLocalizedString &details)
135 const QString driver = serverSetting(QStringLiteral("General"), "Driver", QStringLiteral("QMYSQL")).toString();
155QVariant SelfTestDialog::serverSetting(const QString &group, const char *key, const QVariant &def) const
165 const QString driver = serverSetting(QStringLiteral("General"), "Driver", QStringLiteral("QMYSQL")).toString();
173bool SelfTestDialog::runProcess(const QString &app, const QStringList &args, QString &result) const
186 const QString driver = serverSetting(QStringLiteral("General"), "Driver", QStringLiteral("QMYSQL")).toString();
189 ki18n("The QtSQL driver '%1' is required by your current Akonadi server configuration and was found on your system.").subs(driver);
208 report(Skip, ki18n("MySQL server executable not tested."), ki18n("The current configuration does not require an internal MySQL server."));
212 const QString driver = serverSetting(QStringLiteral("General"), "Driver", QStringLiteral("QMYSQL")).toString();
213 const QString serverPath = serverSetting(driver, "ServerPath", QString()).toString(); // ### default?
218 "necessary read and execution rights on the server executable. The server executable is typically "
241 const KLocalizedString details = ki18n("Executing the MySQL server '%1' failed with the following error message: '%2'").subs(serverPath).subs(result);
249 report(Skip, ki18n("MySQL server error log not tested."), ki18n("The current configuration does not require an internal MySQL server."));
253 const QString logFileName = StandardDirs::saveDir("data", QStringLiteral("db_data")) + QLatin1StringView("/mysql.err");
258 ki18n("The MySQL server did not report any errors during this startup. The log can be found in '%1'.").subs(logFileName));
265 ki18n("A MySQL server error log file was found but is not readable: %1").subs(makeLink(logFileName)));
290 ki18n("The MySQL server log file '%1' does not contain any errors or warnings.").subs(makeLink(logFileName)));
300 report(Skip, ki18n("MySQL server configuration not tested."), ki18n("The current configuration does not require an internal MySQL server."));
305 const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
310 ki18n("The default configuration for the MySQL server was found and is readable at %1.").subs(makeLink(globalConfig)));
319 const QString localConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
328 ki18n("The custom configuration for the MySQL server was found and is readable at %1").subs(makeLink(localConfig)));
347 ki18n("The MySQL server configuration was found at %1 and is readable.").subs(makeLink(actualConfig)));
354 const QString dbname = serverSetting(QStringLiteral("QPSQL"), "Name", QStringLiteral("akonadi")).toString();
355 const QString hostname = serverSetting(QStringLiteral("QPSQL"), "Host", QStringLiteral("localhost")).toString();
357 const QString password = serverSetting(QStringLiteral("QPSQL"), "Password", QString()).toString();
378 report(Success, ki18n("PostgreSQL server found."), ki18n("The PostgreSQL server was found and connection is working."));
414 if (QDBusConnection::sessionBus().interface()->isServiceRegistered(ServerManager::serviceName(ServerManager::Control))) {
417 ki18n("The Akonadi control process is registered at D-Bus which typically indicates it is operational."));
421 ki18n("The Akonadi control process is not registered at D-Bus which typically means it was not started "
425 if (QDBusConnection::sessionBus().interface()->isServiceRegistered(ServerManager::serviceName(ServerManager::Server))) {
428 ki18n("The Akonadi server process is registered at D-Bus which typically indicates it is operational."));
432 ki18n("The Akonadi server process is not registered at D-Bus which typically means it was not started "
442 ki18n("Without a connection to the server it is not possible to check if the protocol version meets the requirements."));
449 "If you recently updated KDE PIM, please make sure to restart both Akonadi and KDE PIM applications.")
456 "If you recently updated KDE PIM, please make sure to restart both Akonadi and KDE PIM applications.")
460 report(Success, ki18n("Server protocol version matches."), ki18n("The current Protocol version is %1.").subs(Internal::serverProtocolVersion()));
478 item = report(Success, ki18n("Resource agents found."), ki18n("At least one resource agent has been found."));
499 report(Success, ki18n("No current Akonadi server error log found."), ki18n("The Akonadi server did not report any errors during its current startup."));
504 ki18n("The Akonadi server reported errors during its current startup. The log can be found in %1.").subs(makeLink(serverLog)));
518 ki18n("The Akonadi server reported errors during its previous startup. The log can be found in %1.").subs(makeLink(serverLog)));
525 QString controlLog = StandardDirs::saveDir("data") + QLatin1StringView("/akonadi_control.error");
535 ki18n("The Akonadi control process reported errors during its current startup. The log can be found in %1.").subs(makeLink(controlLog)));
549 ki18n("The Akonadi control process reported errors during its previous startup. The log can be found in %1.").subs(makeLink(controlLog)));
560 ki18n("Running Internet-facing applications as root/administrator exposes you to many security risks. MySQL, used by this Akonadi installation, "
565 ki18n("Akonadi is not running as a root/administrator user, which is the recommended setup for a secure system."));
642 QStringLiteral("akonadi-selftest-report-") + QDate::currentDate().toString(QStringLiteral("yyyyMMdd")) + QStringLiteral(".txt");
643 const QString fileName = QFileDialog::getSaveFileName(this, i18n("Save Test Report"), defaultFileName);
650 QMessageBox::critical(this, i18nc("@title:window", "Error"), i18n("Could not open file '%1'", fileName));
QString toString() const
KLocalizedString subs(const KLocalizedString &a, int fieldWidth=0, QChar fillChar=QLatin1Char(' ')) const
bool isSuperUser() const
KLocalizedString KI18N_EXPORT ki18n(const char *text)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
QString i18n(const char *text, const TYPE &arg...)
Helper integration between Akonadi and Qt.
Error
QString path(const QString &relativePath)
VehicleSection::Type type(QStringView coachNumber, QStringView coachClassification)
KIOCORE_EXPORT QString dir(const QString &fileClass)
NETWORKMANAGERQT_EXPORT QString hostname()
Success
void clicked(bool checked)
const char * constData() const const
void setText(const QString &text, Mode mode)
QDate currentDate()
QString toString(QStringView format, QCalendar cal) const const
QDBusConnection sessionBus()
bool openUrl(const QUrl &url)
ActionRole
void rejected()
AllEntries
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, Options options)
QClipboard * clipboard()
QIcon fromTheme(const QString &name)
ReadOnly
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
void linkActivated(const QString &link)
bool isEmpty() const const
StandardButton critical(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons, StandardButton defaultButton)
QVariant data(int role) const const
bool isValid() const const
QByteArray readAllStandardError()
QByteArray readAllStandardOutput()
void start(OpenMode mode)
bool waitForFinished(int msecs)
IniFormat
QSqlDatabase addDatabase(QSqlDriver *driver, const QString &connectionName)
void close()
QStringList drivers()
QSqlError lastError() const const
bool open()
void setDatabaseName(const QString &name)
void setHostName(const QString &host)
void setPassword(const QString &password)
void setPort(int port)
void setUserName(const QString &name)
QString text() const const
Warning
virtual QVariant data(int role) const const
virtual void setData(const QVariant &value, int role)
QString arg(Args &&... args) const const
void clear()
bool contains(QChar ch, Qt::CaseSensitivity cs) const const
QString fromLatin1(QByteArrayView str)
QString fromLocal8Bit(QByteArrayView str)
QString fromUtf8(QByteArrayView str)
bool isEmpty() const const
int toInt(bool *ok, int base) const const
QByteArray toLatin1() const const
bool contains(QLatin1StringView str, Qt::CaseSensitivity cs) const const
QString join(QChar separator) const const
CaseInsensitive
UserRole
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)
QUrl fromLocalFile(const QString &localFile)
bool isValid() const const
QByteArray toByteArray() const const
int toInt(bool *ok) const const
QString toString() const const
QStringList toStringList() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:08:30 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:08:30 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.