File indexing completed on 2024-04-28 16:12:55

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "notificationhistorygui.h"
0008 #include "notificationhistory/notificationhistorydialog.h"
0009 #include "notificationhistorymanager.h"
0010 #include <QApplication>
0011 #include <QDebug>
0012 #include <QJsonDocument>
0013 #include <QPushButton>
0014 #include <QStandardPaths>
0015 #include <QTextEdit>
0016 #include <QVBoxLayout>
0017 
0018 NotificationHistoryGui::NotificationHistoryGui(QWidget *parent)
0019     : QWidget{parent}
0020     , mTextEdit(new QTextEdit(this))
0021 {
0022     auto mainLayout = new QVBoxLayout(this);
0023     mainLayout->addWidget(mTextEdit);
0024     auto pushButton = new QPushButton(QStringLiteral("Send Notification"), this);
0025     mainLayout->addWidget(pushButton);
0026     connect(pushButton, &QPushButton::clicked, this, &NotificationHistoryGui::slotSendNotification);
0027 
0028     auto dlg = new NotificationHistoryDialog(this);
0029     QStringList lst;
0030     lst << QStringLiteral("accountName");
0031     dlg->addServerList(lst);
0032     dlg->setAttribute(Qt::WA_DeleteOnClose);
0033     dlg->show();
0034 }
0035 
0036 void NotificationHistoryGui::slotSendNotification()
0037 {
0038     const QString plainText = mTextEdit->toPlainText();
0039     if (!plainText.isEmpty()) {
0040         const QByteArray content = plainText.toUtf8();
0041         QJsonParseError error;
0042         const auto doc = QJsonDocument::fromJson(content, &error);
0043         if (error.error) {
0044             qDebug() << " error " << error.errorString();
0045             return;
0046         }
0047         NotificationInfo info;
0048         info.setAccountName(QStringLiteral("accountName")); // TODO
0049         info.setDateTime(QDateTime::currentDateTime().toString());
0050         info.parseNotification(doc.array());
0051         qDebug() << " info " << info;
0052         NotificationHistoryManager::self()->addNotification(info);
0053     }
0054 }
0055 
0056 int main(int argc, char *argv[])
0057 {
0058     QApplication app(argc, argv);
0059     QStandardPaths::setTestModeEnabled(true);
0060 
0061     NotificationHistoryGui w;
0062     w.show();
0063     return app.exec();
0064 }
0065 
0066 #include "moc_notificationhistorygui.cpp"