mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-29 15:03:09 +00:00
simple sqlite-based call history
still doesn't get updated real-time
This commit is contained in:
parent
c3f65ad5e8
commit
16cbc31fd1
2 changed files with 71 additions and 0 deletions
|
|
@ -36,6 +36,7 @@ Item {
|
|||
status.text = status.text + number
|
||||
}
|
||||
|
||||
//TODO: move in root item
|
||||
function call() {
|
||||
if (!voiceCallmanager.activeVoiceCall) {
|
||||
console.log("Calling: " + status.text);
|
||||
|
|
|
|||
|
|
@ -21,10 +21,80 @@ import QtQuick 2.0
|
|||
import QtQuick.Layouts 1.1
|
||||
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||
import org.kde.plasma.components 2.0 as PlasmaComponents
|
||||
import org.kde.plasma.extras 2.0 as PlasmaExtras
|
||||
import QtQuick.LocalStorage 2.0
|
||||
|
||||
Item {
|
||||
|
||||
//TODO: move in root item
|
||||
property string providerId: voiceCallmanager.providers.id(0)
|
||||
function call(number) {
|
||||
if (!voiceCallmanager.activeVoiceCall) {
|
||||
console.log("Calling: " + status.text);
|
||||
voiceCallmanager.dial(providerId, number);
|
||||
|
||||
} else {
|
||||
console.log("Hanging up: " + status.text);
|
||||
status.text = '';
|
||||
var call = voiceCallmanager.activeVoiceCall;
|
||||
if (call) {
|
||||
call.hangup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
var db = LocalStorage.openDatabaseSync("PlasmaPhoneDialer", "1.0", "Call history of the Plasma Phone dialer", 1000000);
|
||||
|
||||
db.transaction(
|
||||
function(tx) {
|
||||
// Create the database if it doesn't already exist
|
||||
//callType: wether is incoming, outgoing, unanswered
|
||||
tx.executeSql('CREATE TABLE IF NOT EXISTS History(number TEXT, time DATETIME, callType TEXT)');
|
||||
|
||||
// Add (another) greeting row
|
||||
//tx.executeSql("INSERT INTO History VALUES(?, datetime('now') )", ['+39000']);
|
||||
|
||||
// Show all added greetings
|
||||
var rs = tx.executeSql('SELECT * FROM History');
|
||||
|
||||
var r = ""
|
||||
for(var i = 0; i < rs.rows.length; i++) {
|
||||
r += rs.rows.item(i).number + ", " + rs.rows.item(i).time + "\n"
|
||||
historyModel.append({number: rs.rows.item(i).number, time: rs.rows.item(i).time})
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
PlasmaComponents.Label {
|
||||
anchors.centerIn: parent
|
||||
text: i18n("No recent calls")
|
||||
visible: false
|
||||
}
|
||||
PlasmaExtras.ScrollArea {
|
||||
anchors.fill: parent
|
||||
ListView {
|
||||
id: view
|
||||
model: ListModel {
|
||||
id: historyModel
|
||||
}
|
||||
delegate: MouseArea {
|
||||
width: view.width
|
||||
height: childrenRect.height
|
||||
onClicked: call(model.number);
|
||||
|
||||
RowLayout {
|
||||
width: view.width
|
||||
PlasmaComponents.Label {
|
||||
text: model.number
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
PlasmaComponents.Label {
|
||||
text: Qt.formatDateTime(model.time, Qt.locale().dateTimeFormat(Locale.LongFormat));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue