Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Готовое_КР_Заметки

.pdf
Скачиваний:
0
Добавлен:
07.06.2025
Размер:
461.84 Кб
Скачать

Продолжение листинга 2

// Кнопка сохранения

Button { color:"black" text: "Сохранить"

width: (parent.width - 2*Theme.paddingMedium) / 3 onClicked: {

if (titleField.text.length > 0 || !isNewNote) {

var finalTitle = isNewNote ? titleField.text :

noteTitle;

DatabaseHandler.saveNote(db, finalTitle,

contentArea.text);

pageStack.pop();

}

}

}

// Кнопка удаления (только для существующих заметок) Button {

color:"black" text: "Удалить"

width: (parent.width - 2*Theme.paddingMedium) / 3 visible: !isNewNote

onClicked: remorseDelete.execute("Удаляем заметку", function()

{

DatabaseHandler.deleteNote(db, noteTitle); pageStack.pop();

})

}

// Кнопка закрытия

Button {

text: "Закрыть" color:"black"

width: (parent.width - 2*Theme.paddingMedium) / 3 onClicked: pageStack.pop()

}

}

}

}

RemorsePopup { id: remorseDelete }

}

34

Приложение В

Листинг 3 – DatabaseHandler.js

.pragma library

.import QtQuick.LocalStorage 2.0 as LS

function initializeDatabase() {

var db = LS.LocalStorage.openDatabaseSync("NotesDB", "1.0", "Notes Storage", 100000);

db.transaction(function(tx) {

tx.executeSql('CREATE TABLE IF NOT EXISTS Notes(' + 'id INTEGER PRIMARY KEY AUTOINCREMENT, ' + 'title TEXT UNIQUE, ' +

'content TEXT, ' +

'created_at DATETIME DEFAULT CURRENT_TIMESTAMP)');

});

return db;

}

function saveNote(db, title, content) { db.transaction(function(tx) {

tx.executeSql('INSERT OR REPLACE INTO Notes(title, content, created_at) VALUES(?,?,?)',

[title, content, new Date().toISOString()]);

});

}

function getNote(db, title) { var result = "";

db.transaction(function(tx) {

var rs = tx.executeSql('SELECT content FROM Notes WHERE title=?', [title]);

if (rs.rows.length > 0) result = rs.rows.item(0).content;

});

return result;

}

function getAllTitles(db) { var titles = [];

db.transaction(function(tx) {

var rs = tx.executeSql('SELECT title FROM Notes ORDER BY title'); for (var i = 0; i < rs.rows.length; i++) {

titles.push(rs.rows.item(i).title);

}

});

return titles;

function getNotesCount(db) { var count = 0;

db.transaction(function(tx) {

var rs = tx.executeSql('SELECT COUNT(*) FROM Notes');

if (rs.rows.length > 0) count = rs.rows.item(0)['COUNT(*)'];

});

return count;

}

}

function deleteNote(db, title) { db.transaction(function(tx) {

tx.executeSql('DELETE FROM Notes WHERE title = ?', [title]);

});

}

35