Skip to content

Commit a412727

Browse files
authored
Merge pull request #45 from ivorob/edit_task
Edit task
2 parents cb374e7 + 26e1b26 commit a412727

9 files changed

Lines changed: 85 additions & 23 deletions

File tree

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ SET (QML_FILES
4646
${QML_DIR}/TodoListModel.qml
4747
)
4848

49+
FILE (GLOB JS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/js/*.js)
50+
4951
SET (TRANSLATION
5052
# russian
5153
${TRANSLATION_DIR}/CodeMore_ru.ts
@@ -85,8 +87,8 @@ ADD_CUSTOM_COMMAND(TARGET CodeMore
8587

8688
ADD_CUSTOM_COMMAND(TARGET CodeMore
8789
PRE_BUILD
88-
COMMAND lupdate ${QML_FILES} ${SOURCES} -ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/CodeMore_ru.ts
89-
COMMAND lupdate ${QML_FILES} ${SOURCES} -ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/CodeMore_es.ts
90+
COMMAND lupdate ${QML_FILES} ${SOURCES} ${JS_FILES} -ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/CodeMore_ru.ts
91+
COMMAND lupdate ${QML_FILES} ${SOURCES} ${JS_FILES} -ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/CodeMore_es.ts
9092
)
9193

9294
ADD_DEPENDENCIES (CodeMore version)

js/Dialogs.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
function openDialog(dialogUrl, id)
1+
function openDialog(dialogUrl, id, state)
22
{
33
console.log("open dialog: " + dialogUrl)
44

@@ -7,7 +7,7 @@ function openDialog(dialogUrl, id)
77
console.log(component.errorString())
88
} else if (component.status == Component.Ready)
99
{
10-
var dialog = component.createObject(id)
10+
var dialog = component.createObject(id, state)
1111
if (dialog) {
1212
dialog.open()
1313
return dialog
@@ -19,25 +19,33 @@ function openDialog(dialogUrl, id)
1919

2020
function openSaveDialog(id)
2121
{
22-
return openDialog("qrc:/qml/SaveDialog.qml", id)
22+
return openDialog("qrc:/qml/SaveDialog.qml", id, {})
2323
}
2424

2525
function openOpenDialog(id)
2626
{
27-
return openDialog("qrc:/qml/OpenDialog.qml", id)
27+
return openDialog("qrc:/qml/OpenDialog.qml", id, {})
2828
}
2929

3030
function openAboutDialog(id)
3131
{
32-
return openDialog("qrc:/qml/AboutWindow.qml", id)
32+
return openDialog("qrc:/qml/AboutWindow.qml", id, {})
3333
}
3434

3535
function openSaveChangesDialog(id)
3636
{
37-
return openDialog("qrc:/qml/SaveChanges.qml", id)
37+
return openDialog("qrc:/qml/SaveChanges.qml", id, {})
3838
}
3939

4040
function openNewTaskDialog(id)
4141
{
42-
return openDialog("qrc:/qml/NewTaskDialog.qml", id)
42+
return openDialog("qrc:/qml/NewTaskDialog.qml", id, {})
43+
}
44+
45+
function openEditTaskDialog(id, task)
46+
{
47+
return openDialog("qrc:/qml/NewTaskDialog.qml", id, {
48+
title: qsTr("Modify task"),
49+
text: task
50+
})
4351
}

qml/MainWindow.qml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ ApplicationWindow {
143143
}
144144

145145
onCurrentItemChanged: {
146-
console.log(JSON.stringify(expectationsControl.dataModel))
147146
var day = TodoDataHandler.restoreData(goals, currentIndex)
148147
TodoDataHandler.deserializeTodoList(expectationsControl.dataModel, day.expectations)
149148
TodoDataHandler.deserializeTodoList(realityControl.dataModel, day.reality)

qml/NewTaskDialog.qml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import QtQuick.Layouts 1.0
77
Dialog {
88
id: newTaskDialog
99
title: qsTr("New task")
10-
property var text;
11-
1210
modality: Qt.WindowModal
1311
standardButtons: StandardButton.Ok | StandardButton.Cancel
1412

13+
property var text;
14+
1515
onAccepted: {
1616
text = textInput.text
1717
}
@@ -27,12 +27,19 @@ Dialog {
2727

2828
TextField {
2929
id: textInput
30+
selectByMouse: true
3031

3132
Layout.fillWidth: true
3233
Layout.minimumWidth: 150
3334
Layout.preferredHeight: 30
3435

3536
placeholderText: qsTr("Task description")
37+
38+
Component.onCompleted: {
39+
if (newTaskDialog.text !== undefined) {
40+
text = newTaskDialog.text
41+
}
42+
}
3643
}
3744
}
3845

qml/TaskList.qml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,19 @@ Rectangle {
7474
MouseArea {
7575
anchors.fill: parent
7676
onClicked: taskListView.currentIndex = index
77+
78+
onDoubleClicked: {
79+
var dialog = Dialogs.openEditTaskDialog(root, task)
80+
if (dialog) {
81+
var taskChanged = function() {
82+
task = dialog.text
83+
84+
InternalDataController.newChanges()
85+
}
86+
87+
dialog.accepted.connect(taskChanged)
88+
}
89+
}
7790
}
7891
}
7992

src/LocalizationDispatcher.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ LocalizationDispatcher::LocalizationDispatcher(QQmlEngine *engine, QLocale local
2020
: QObject(parent),
2121
engine(engine),
2222
translator(new QTranslator(this)),
23+
systemTranslator(new QTranslator(this)),
2324
currentLanguage("English")
2425
{
2526
QString prefix = "CodeMore";
@@ -105,14 +106,18 @@ void
105106
LocalizationDispatcher::retranslate()
106107
{
107108
QCoreApplication::removeTranslator(this->translator);
109+
QCoreApplication::removeTranslator(this->systemTranslator);
108110

109111
if (this->currentLanguage != "English") {
110112
QLocale locale(this->languages.value(this->currentLanguage));
111113

112114
QString prefix = "CodeMore";
113115
QString translationDirectory = "translations";
114-
if (translator->load(locale, prefix, "_", translationDirectory)) {
116+
if (translator->load(locale, prefix, "_", translationDirectory) &&
117+
systemTranslator->load(locale, "qt", "_", translationDirectory))
118+
{
115119
QCoreApplication::installTranslator(translator);
120+
QCoreApplication::installTranslator(systemTranslator);
116121

117122
fillCurrentTranslation();
118123
} else {

src/LocalizationDispatcher.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class LocalizationDispatcher : public QObject {
2323
private:
2424
QQmlEngine *engine;
2525
QTranslator *translator;
26+
QTranslator *systemTranslator;
2627
QHash<QString, QString> languages;
2728
QHash<QString, QString> currentTranslation;
2829
QString currentLanguage;

translations/CodeMore_es.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,19 @@
99
<translation>Sobre el programa</translation>
1010
</message>
1111
</context>
12+
<context>
13+
<name>Dialogs</name>
14+
<message>
15+
<location filename="../js/Dialogs.js" line="48"/>
16+
<source>Modify task</source>
17+
<translation>modificar tarea</translation>
18+
</message>
19+
</context>
1220
<context>
1321
<name>Languages</name>
1422
<message>
1523
<location filename="../src/LocalizationDispatcher.cpp" line="11"/>
16-
<location filename="../src/LocalizationDispatcher.cpp" line="65"/>
24+
<location filename="../src/LocalizationDispatcher.cpp" line="66"/>
1725
<source>English</source>
1826
<translation></translation>
1927
</message>
@@ -94,17 +102,17 @@
94102
<translation>Día #</translation>
95103
</message>
96104
<message>
97-
<location filename="../qml/MainWindow.qml" line="163"/>
105+
<location filename="../qml/MainWindow.qml" line="162"/>
98106
<source>Expectations</source>
99107
<translation>Expectativas</translation>
100108
</message>
101109
<message>
102-
<location filename="../qml/MainWindow.qml" line="173"/>
110+
<location filename="../qml/MainWindow.qml" line="172"/>
103111
<source>Reality</source>
104112
<translation>Realidad</translation>
105113
</message>
106114
<message>
107-
<location filename="../qml/MainWindow.qml" line="185"/>
115+
<location filename="../qml/MainWindow.qml" line="184"/>
108116
<source>Next day</source>
109117
<translation>Terminar el dia</translation>
110118
</message>
@@ -122,7 +130,7 @@
122130
<translation>Una tarea</translation>
123131
</message>
124132
<message>
125-
<location filename="../qml/NewTaskDialog.qml" line="35"/>
133+
<location filename="../qml/NewTaskDialog.qml" line="36"/>
126134
<source>Task description</source>
127135
<translation>Descripción de la tarea</translation>
128136
</message>

translations/CodeMore_ru.ts

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,19 @@
99
<translation>О программе</translation>
1010
</message>
1111
</context>
12+
<context>
13+
<name>Dialogs</name>
14+
<message>
15+
<location filename="../js/Dialogs.js" line="48"/>
16+
<source>Modify task</source>
17+
<translation>Изменить задачу</translation>
18+
</message>
19+
</context>
1220
<context>
1321
<name>Languages</name>
1422
<message>
1523
<location filename="../src/LocalizationDispatcher.cpp" line="11"/>
16-
<location filename="../src/LocalizationDispatcher.cpp" line="65"/>
24+
<location filename="../src/LocalizationDispatcher.cpp" line="66"/>
1725
<source>English</source>
1826
<translation></translation>
1927
</message>
@@ -98,17 +106,17 @@
98106
<translation type="vanished">Цели</translation>
99107
</message>
100108
<message>
101-
<location filename="../qml/MainWindow.qml" line="163"/>
109+
<location filename="../qml/MainWindow.qml" line="162"/>
102110
<source>Expectations</source>
103111
<translation>Ожидания</translation>
104112
</message>
105113
<message>
106-
<location filename="../qml/MainWindow.qml" line="173"/>
114+
<location filename="../qml/MainWindow.qml" line="172"/>
107115
<source>Reality</source>
108116
<translation>Реальность</translation>
109117
</message>
110118
<message>
111-
<location filename="../qml/MainWindow.qml" line="185"/>
119+
<location filename="../qml/MainWindow.qml" line="184"/>
112120
<source>Next day</source>
113121
<translation>Завершить день</translation>
114122
</message>
@@ -126,7 +134,7 @@
126134
<translation>Задача</translation>
127135
</message>
128136
<message>
129-
<location filename="../qml/NewTaskDialog.qml" line="35"/>
137+
<location filename="../qml/NewTaskDialog.qml" line="36"/>
130138
<source>Task description</source>
131139
<translation>Описание задачи</translation>
132140
</message>
@@ -159,6 +167,17 @@
159167
<translation>Ошибка в формате файла</translation>
160168
</message>
161169
</context>
170+
<context>
171+
<name>QPlatformTheme</name>
172+
<message>
173+
<source>&amp;Yes</source>
174+
<translation type="vanished">Да</translation>
175+
</message>
176+
<message>
177+
<source>&amp;No</source>
178+
<translation type="vanished">Нет</translation>
179+
</message>
180+
</context>
162181
<context>
163182
<name>SaveChanges</name>
164183
<message>

0 commit comments

Comments
 (0)