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"