2 Copyright (C) 2011 by Cuong Le <metacuong@gmail.com>
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>
20 import "Themes.js" as Themes
21 import "main.js" as Script
27 anchors.verticalCenter: parent.verticalCenter
28 width: parent.width; height: parent.height;
29 x:(parent.width * 1.5)
33 property alias theme: theme_manager.item
34 source: Themes.default_theme()
43 anchors.centerIn: parent
48 border.color: "#b57e8f"
55 anchors.right: parent.right; anchors.rightMargin: 8; y: 185; width: 140; height: 40
58 var lday = lunarday_pathview.currentIndex+1;
59 var lmonth=lunarmonth_pathview.currentIndex+1;
60 var lyear=lunaryear_pathview.currentIndex+1900;
66 for (var l=0;l<12;l++)
67 if (lunarmonth_model.get(l).nhuan){
71 if(lunarmonth_model.get(lunarmonth_pathview.currentIndex).nhuan){
76 if (thangnhuan!=-1 && lunarmonth_pathview.currentIndex> thangnhuan)
79 var finalSolarDay = Script.convertLunar2Solar(lday,lmonth,lyear,lnhuan,7)
81 LC.reset(finalSolarDay[0],finalSolarDay[1],finalSolarDay[2])
82 Script.calculateLunar( finalSolarDay[0], finalSolarDay[1], finalSolarDay[2])
83 Script.state="mainscreen"
87 txtDATEpv.currentIndex = finalSolarDay[0]-1;
99 anchors.rightMargin: 56
101 amdatetime.state="close"
124 border.color: "#b57e8f"
130 width: 198; height: 129
156 name: "switch_to_day";
157 PropertyChanges { target:lmk;x:10;width:60;}
158 PropertyChanges { target:lunaryear_pathview;pathItemCount:1;}
159 PropertyChanges { target:lunarmonth_pathview;pathItemCount:1;}
160 PropertyChanges { target:lunarday_pathview;pathItemCount:3;}
161 PropertyChanges { target:lunarday_mousearea;visible:false;}
162 PropertyChanges { target:lunaryear_mousearea;visible:true;}
163 PropertyChanges { target:lunarmonth_mousearea;visible:true;}
166 name: "switch_to_year";
167 PropertyChanges { target:lmk;x:207;width:198;}
168 PropertyChanges { target:lunarday_pathview;pathItemCount:1;}
169 PropertyChanges { target:lunarmonth_pathview;pathItemCount:1;}
170 PropertyChanges { target:lunaryear_pathview;pathItemCount:3;}
171 PropertyChanges { target:lunarday_mousearea;visible:true;}
172 PropertyChanges { target:lunaryear_mousearea;visible:false;}
173 PropertyChanges { target:lunarmonth_mousearea;visible:true;}
176 name: "switch_to_month";
177 PropertyChanges { target:lmk;x:60;width:150;}
178 PropertyChanges { target:lunarday_pathview;pathItemCount:1;}
179 PropertyChanges { target:lunaryear_pathview;pathItemCount:1;}
180 PropertyChanges { target:lunarmonth_pathview;pathItemCount:3;}
181 PropertyChanges { target:lunarday_mousearea;visible:true;}
182 PropertyChanges { target:lunaryear_mousearea;visible:true;}
183 PropertyChanges { target:lunarmonth_mousearea;visible:false;}
189 state: "switch_to_year"
192 width: 178; height: 129
195 property int index: 0
196 onIndexChanged: lunaryear_pathview.currentIndex = lunaryear_rec.index
199 id: lunaryear_delegate
206 width: lunaryear_rec.width
207 color: PathView.isCurrentItem ? "#FFFFFF" : "grey"
208 verticalAlignment:Text.AlignLeft
215 id:lunaryear_pathview
217 model: lunaryear_model
218 delegate: lunaryear_delegate
221 preferredHighlightBegin: 0.5
222 preferredHighlightEnd: 0.5
223 highlightRangeMode: PathView.StrictlyEnforceRange
228 PathLine {x: 90; y: lunaryear_rec.height}
232 //console.log(lunaryear_pathview.currentIndex)
233 Script.getYearInfo(lunaryear_pathview.currentIndex+1900);
234 lunarmonth_model.change(lunaryear_pathview.currentIndex+1900, lunarmonth_pathview.currentIndex+1);
238 id:lunaryear_mousearea
241 rec22.state="switch_to_year"
248 Component.onCompleted: {
253 for(var i=1900;i<2099;i++){
254 var lunarYear = Script.getYearCanChi(i)
255 append({name:i+" ("+lunarYear+")"})
259 function change(YYYY){
260 lunaryear_pathview.currentIndex=-1;
261 lunaryear_pathview.currentIndex = YYYY - 1900
268 state:"switch_to_day"
272 width: 80; height: 129
275 property int index: 0
276 onIndexChanged: lunarday_pathview.currentIndex = lunarday_rec.index
279 id: lunarday_delegate
287 width: lunarday_rec.width
288 color: PathView.isCurrentItem ? "#FFFFFF" : "grey"
289 verticalAlignment:Text.AlignVCenter
299 model: lunarday_model
300 delegate: lunarday_delegate
303 preferredHighlightBegin: 0.5
304 preferredHighlightEnd: 0.5
305 highlightRangeMode: PathView.StrictlyEnforceRange
310 PathLine {x: 90; y: lunarday_rec.height}
315 id:lunarday_mousearea
318 rec22.state="switch_to_day"
326 Component.onCompleted: {
331 for(var i=1;i<=30;i++)
332 lunarday_model.append({name:i})
335 function change(MM,DD){
337 while(lunarday_model.count>0){
338 lunarday_model.remove(lunarday_model.count-1)
342 var daystotal = Script.RMM[MM-1];
344 if(lunarmonth_model.get(MM-1).nhuan){
346 for (var i=1;i<=Script.LML;i++)
347 lunarday_model.append({name:i})
350 for (var i=1;i<=daystotal;i++)
351 lunarday_model.append({name:i})
355 /*if(lunarmonth_model.get(MM-1).nhuan){
356 if(AmLich.LML > lunarday_model.count){
357 for (var i=lunarday_model.count+1;i<=AmLich.LML;i++)
358 lunarday_model.append({name:i})
360 if(AmLich.LML< lunarday_model.count){
361 while(lunarday_model.count>AmLich.LML){
362 lunarday_model.remove(lunarday_model.count-1);
367 if(daystotal > lunarday_model.count){
368 for (var i=lunarday_model.count+1;i<=daystotal;i++)
369 lunarday_model.append({name:i})
371 if(daystotal < lunarday_model.count){
372 while(lunarday_model.count>daystotal){
373 lunarday_model.remove(lunarday_model.count-1);
379 var nhuansetru = 30 - AmLich.LML;
381 if(lunarmonth_model.get(MM-1).nhuan && lunarday_model.count==30){
384 lunarday_model.remove(lunarday_model.count-1);
388 else if(lunarday_model.count<30){
389 for (var i=lunarday_model.count+1;i<=30;i++)
390 lunarday_model.append({name:i})
393 lunarday_pathview.currentIndex=-1;
394 lunarday_pathview.currentIndex= DD-1;
404 state:"switch_to_month"
408 width: 150; height: 129
411 property int index: 0
412 onIndexChanged: lunarmonth_pathview.currentIndex = lunarmonth_rec.index
415 id: lunarmonth_delegate
423 width: lunarmonth_rec.width
424 color: PathView.isCurrentItem ? "#FFFFFF" : "grey"
425 verticalAlignment:Text.AlignVCenter
433 id:lunarmonth_pathview
435 model: lunarmonth_model
436 delegate: lunarmonth_delegate
439 preferredHighlightBegin: 0.5
440 preferredHighlightEnd: 0.5
441 highlightRangeMode: PathView.StrictlyEnforceRange
446 PathLine {x: 90; y: lunarmonth_rec.height}
449 //console.log(lunaryear_pathview.currentIndex)
450 // console.log(AmLich.LML)
452 lunarday_model.change(lunarmonth_pathview.currentIndex+1,lunarday_pathview.currentIndex+1);
457 id:lunarmonth_mousearea
460 rec22.state="switch_to_month"
469 Component.onCompleted: {
473 function change(YYYY, MM){
474 while(lunarmonth_model.count>0){
475 lunarmonth_model.remove(lunarmonth_model.count-1)
479 lunarday_model.change(lunarmonth_pathview.currentIndex+1,lunarday_pathview.currentIndex+1);
482 function readd(YYYY, MM){
484 var preFix = "Tháng ";
485 var a=Script.leapMonth(yTest)
488 for(var i=0;i<=12;i++){
489 var l=Script.getYearInfo(yTest)[i].month
491 lunarmonth_model.append({name:preFix+l+" (N)", nhuan:true})
493 lunarmonth_model.append({name:preFix+l, nhuan:false})
499 for(var i=1;i<=12;i++)
500 lunarmonth_model.append({name:preFix+i, nhuan:false})
503 //lunarmonth_rec.index = MM -1;
504 lunarmonth_pathview.currentIndex=-1;
505 lunarmonth_pathview.currentIndex = MM-1;
515 Component.onCompleted: {
522 AnchorChanges { target: amdatetime; anchors.right: parent.right }
526 AnchorChanges { target: amdatetime; anchors.right: parent.left }
531 var acs = Script.getYearInfo(Script.curYear)
532 var a=Script.getLunarDate(Script.curDay,Script.curMonth,Script.curYear)
533 var finalmonth=a.month;
537 var aaa=Script.leapMonth(Script.curYear)
541 for (var i=0;i<=12;i++){
543 if (t==l && a.leap===0){
545 finalmonth = finalmonth+1;
555 lunaryear_model.init()
556 lunarday_model.init()
557 lunaryear_model.change(a.year)
558 lunarmonth_model.change(a.year, finalmonth)
559 lunarday_model.change(finalmonth,a.day)
563 transitions: Transition {
564 AnchorAnimation { easing.type: Easing.OutQuart; duration: 300 }