smsapp: add main contextual actions
Includes an about page and a refresh button for the conversations.
This commit is contained in:
parent
ed9e3028be
commit
f256e32fb2
4 changed files with 39 additions and 3 deletions
|
@ -89,8 +89,18 @@ void ConversationListModel::setDeviceId(const QString& deviceId)
|
||||||
m_conversationsInterface = new DeviceConversationsDbusInterface(deviceId, this);
|
m_conversationsInterface = new DeviceConversationsDbusInterface(deviceId, this);
|
||||||
connect(m_conversationsInterface, SIGNAL(conversationCreated(QDBusVariant)), this, SLOT(handleCreatedConversation(QDBusVariant)));
|
connect(m_conversationsInterface, SIGNAL(conversationCreated(QDBusVariant)), this, SLOT(handleCreatedConversation(QDBusVariant)));
|
||||||
connect(m_conversationsInterface, SIGNAL(conversationUpdated(QDBusVariant)), this, SLOT(handleConversationUpdated(QDBusVariant)));
|
connect(m_conversationsInterface, SIGNAL(conversationUpdated(QDBusVariant)), this, SLOT(handleConversationUpdated(QDBusVariant)));
|
||||||
prepareConversationsList();
|
|
||||||
|
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConversationListModel::refresh()
|
||||||
|
{
|
||||||
|
if (m_deviceId.isEmpty()) {
|
||||||
|
qWarning() << "refreshing null device";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
prepareConversationsList();
|
||||||
m_conversationsInterface->requestAllConversationThreads();
|
m_conversationsInterface->requestAllConversationThreads();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,8 @@ public:
|
||||||
QString deviceId() const { return m_deviceId; }
|
QString deviceId() const { return m_deviceId; }
|
||||||
void setDeviceId(const QString &/*deviceId*/);
|
void setDeviceId(const QString &/*deviceId*/);
|
||||||
|
|
||||||
|
Q_SCRIPTABLE void refresh();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void handleCreatedConversation(const QDBusVariant& msg);
|
void handleCreatedConversation(const QDBusVariant& msg);
|
||||||
void handleConversationUpdated(const QDBusVariant& msg);
|
void handleConversationUpdated(const QDBusVariant& msg);
|
||||||
|
|
|
@ -36,9 +36,9 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
KAboutData aboutData(QStringLiteral("org.kde.kdeconnect.sms"), i18n("SMS Instant Messaging"), QStringLiteral(KDECONNECT_VERSION_STRING), i18n("KDE Connect SMS"), KAboutLicense::GPL, i18n("(c) 2018, Aleix Pol Gonzalez"));
|
KAboutData aboutData(QStringLiteral("org.kde.kdeconnect.sms"), i18n("SMS Instant Messaging"), QStringLiteral(KDECONNECT_VERSION_STRING), i18n("KDE Connect SMS"), KAboutLicense::GPL, i18n("(c) 2018, Aleix Pol Gonzalez"));
|
||||||
|
aboutData.addAuthor(i18n("Simon Redman"), {}, QStringLiteral("simon@ergotech.com"));
|
||||||
aboutData.addAuthor(i18n("Aleix Pol Gonzalez"), {}, QStringLiteral("aleixpol@kde.org"));
|
aboutData.addAuthor(i18n("Aleix Pol Gonzalez"), {}, QStringLiteral("aleixpol@kde.org"));
|
||||||
aboutData.addAuthor(i18n("Nicolas Fella"), {}, QStringLiteral("nicolas.fella@gmx.de"));
|
aboutData.addAuthor(i18n("Nicolas Fella"), {}, QStringLiteral("nicolas.fella@gmx.de"));
|
||||||
aboutData.addAuthor(i18n("Simon Redman"), {}, QStringLiteral("simon@ergotech.com"));
|
|
||||||
KAboutData::setApplicationData(aboutData);
|
KAboutData::setApplicationData(aboutData);
|
||||||
|
|
||||||
QString initialMessage;
|
QString initialMessage;
|
||||||
|
@ -67,6 +67,7 @@ int main(int argc, char *argv[])
|
||||||
QQmlApplicationEngine engine;
|
QQmlApplicationEngine engine;
|
||||||
engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
|
engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
|
||||||
engine.rootContext()->setContextProperty(QStringLiteral("_initialMessage"), QVariant(initialMessage));
|
engine.rootContext()->setContextProperty(QStringLiteral("_initialMessage"), QVariant(initialMessage));
|
||||||
|
engine.rootContext()->setContextProperty(QStringLiteral("aboutData"), QVariant::fromValue(KAboutData::applicationData()));
|
||||||
engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));
|
engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
|
|
|
@ -24,7 +24,7 @@ import QtQuick 2.5
|
||||||
import QtQuick.Controls 2.1
|
import QtQuick.Controls 2.1
|
||||||
import QtQuick.Layouts 1.1
|
import QtQuick.Layouts 1.1
|
||||||
import org.kde.people 1.0
|
import org.kde.people 1.0
|
||||||
import org.kde.kirigami 2.4 as Kirigami
|
import org.kde.kirigami 2.6 as Kirigami
|
||||||
import org.kde.kdeconnect 1.0
|
import org.kde.kdeconnect 1.0
|
||||||
import org.kde.kdeconnect.sms 1.0
|
import org.kde.kdeconnect.sms 1.0
|
||||||
|
|
||||||
|
@ -49,6 +49,29 @@ Kirigami.ScrollablePage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
contextualActions: [
|
||||||
|
Kirigami.Action {
|
||||||
|
text: i18n("Refresh")
|
||||||
|
icon.name: "view-refresh"
|
||||||
|
enabled: devicesCombo.count > 0
|
||||||
|
onTriggered: {
|
||||||
|
conversationListModel.refresh()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Kirigami.Action {
|
||||||
|
text: i18n("About...")
|
||||||
|
icon.name: "help-about"
|
||||||
|
onTriggered: {
|
||||||
|
applicationWindow().pageStack.push(aboutPageComponent, { aboutData: aboutData });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: aboutPageComponent
|
||||||
|
Kirigami.AboutPage {}
|
||||||
|
}
|
||||||
|
|
||||||
property string initialMessage
|
property string initialMessage
|
||||||
|
|
||||||
header: Kirigami.InlineMessage {
|
header: Kirigami.InlineMessage {
|
||||||
|
|
Loading…
Reference in a new issue