ubuntukylin-members team mailing list archive
-
ubuntukylin-members team
-
Mailing list archive
-
Message #00313
[Merge] lp:~mutse-young/chinese-calendar/trunk into lp:~ubuntukylin-members/chinese-calendar/chinese-calendar
mutse has proposed merging lp:~mutse-young/chinese-calendar/trunk into lp:~ubuntukylin-members/chinese-calendar/chinese-calendar.
Requested reviews:
UbuntuKylin Members (ubuntukylin-members)
For more details, see:
https://code.launchpad.net/~mutse-young/chinese-calendar/trunk/+merge/162613
* add skins changing functional code
* add default and black skin qss files
--
https://code.launchpad.net/~mutse-young/chinese-calendar/trunk/+merge/162613
Your team UbuntuKylin Members is requested to review the proposed merge of lp:~mutse-young/chinese-calendar/trunk into lp:~ubuntukylin-members/chinese-calendar/chinese-calendar.
=== added file 'KylinLunar.db'
Binary files KylinLunar.db 1970-01-01 00:00:00 +0000 and KylinLunar.db 2013-05-06 14:54:28 +0000 differ
=== renamed file 'KylinLunar.db' => 'KylinLunar.db.moved'
=== added file 'calendar.ui'
--- calendar.ui 1970-01-01 00:00:00 +0000
+++ calendar.ui 2013-05-06 14:54:28 +0000
@@ -0,0 +1,1359 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Calendar</class>
+ <widget class="QWidget" name="Calendar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>520</width>
+ <height>350</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Calendar</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <widget class="QLabel" name="label_3">
+ <property name="geometry">
+ <rect>
+ <x>5</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期日</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_4">
+ <property name="geometry">
+ <rect>
+ <x>60</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期一</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_5">
+ <property name="geometry">
+ <rect>
+ <x>115</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期二</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_6">
+ <property name="geometry">
+ <rect>
+ <x>170</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期三</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_7">
+ <property name="geometry">
+ <rect>
+ <x>225</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期四</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_8">
+ <property name="geometry">
+ <rect>
+ <x>280</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期五</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_9">
+ <property name="geometry">
+ <rect>
+ <x>335</x>
+ <y>39</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ </font>
+ </property>
+ <property name="text">
+ <string>星期六</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_10">
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>60</y>
+ <width>110</width>
+ <height>68</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_12">
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>40</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_13">
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>128</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_14">
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>148</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_15">
+ <property name="geometry">
+ <rect>
+ <x>393</x>
+ <y>3</y>
+ <width>121</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="TbpreviousYear">
+ <property name="geometry">
+ <rect>
+ <x>5</x>
+ <y>3</y>
+ <width>25</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>14</pointsize>
+ <weight>50</weight>
+ <bold>false</bold>
+ </font>
+ </property>
+ <property name="toolTip">
+ <string>Previous Year</string>
+ </property>
+ <property name="text">
+ <string><</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>3</y>
+ <width>25</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ </font>
+ </property>
+ <property name="text">
+ <string>年</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="TbnextYear">
+ <property name="geometry">
+ <rect>
+ <x>125</x>
+ <y>3</y>
+ <width>25</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>14</pointsize>
+ <weight>50</weight>
+ <bold>false</bold>
+ </font>
+ </property>
+ <property name="toolTip">
+ <string>Next Year</string>
+ </property>
+ <property name="text">
+ <string>></string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="TbpreviousMonth">
+ <property name="geometry">
+ <rect>
+ <x>150</x>
+ <y>3</y>
+ <width>25</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>14</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <stylestrategy>PreferDefault</stylestrategy>
+ </font>
+ </property>
+ <property name="toolTip">
+ <string>Previous Month</string>
+ </property>
+ <property name="text">
+ <string><</string>
+ </property>
+ </widget>
+ <widget class="QComboBox" name="monthCombo">
+ <property name="geometry">
+ <rect>
+ <x>175</x>
+ <y>3</y>
+ <width>60</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ </font>
+ </property>
+ <item>
+ <property name="text">
+ <string>1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>3</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>4</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>5</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>6</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>8</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>9</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>10</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>11</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>12</string>
+ </property>
+ </item>
+ </widget>
+ <widget class="QLabel" name="label_2">
+ <property name="geometry">
+ <rect>
+ <x>235</x>
+ <y>3</y>
+ <width>25</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ </font>
+ </property>
+ <property name="text">
+ <string>月</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="TbnextMonth">
+ <property name="geometry">
+ <rect>
+ <x>260</x>
+ <y>3</y>
+ <width>25</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>14</pointsize>
+ <weight>50</weight>
+ <italic>false</italic>
+ <bold>false</bold>
+ <underline>false</underline>
+ <stylestrategy>PreferDefault</stylestrategy>
+ </font>
+ </property>
+ <property name="toolTip">
+ <string>Next Month</string>
+ </property>
+ <property name="text">
+ <string>></string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="backtotoday">
+ <property name="geometry">
+ <rect>
+ <x>290</x>
+ <y>3</y>
+ <width>50</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>12</pointsize>
+ <weight>75</weight>
+ <italic>false</italic>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string>今日</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_11">
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>185</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>13</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>宜</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_16">
+ <property name="geometry">
+ <rect>
+ <x>455</x>
+ <y>185</y>
+ <width>55</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="font">
+ <font>
+ <family>文泉驿微米黑</family>
+ <pointsize>13</pointsize>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>忌</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QComboBox" name="YearSelect">
+ <property name="geometry">
+ <rect>
+ <x>30</x>
+ <y>3</y>
+ <width>70</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <item>
+ <property name="text">
+ <string>1900</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1901</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1902</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1903</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1904</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1905</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1906</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1907</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1908</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1909</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1910</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1911</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1912</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1913</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1914</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1915</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1916</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1917</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1918</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1919</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1920</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1921</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1922</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1923</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1924</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1925</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1926</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1927</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1928</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1929</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1930</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1931</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1932</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1933</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1934</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1935</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1936</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1937</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1938</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1939</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1940</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1941</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1942</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1943</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1944</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1945</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1946</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1947</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1948</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1949</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1950</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1951</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1952</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1953</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1954</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1955</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1956</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1957</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1958</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1959</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1960</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1961</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1962</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1963</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1964</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1965</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1966</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1967</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1968</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1969</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1970</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1971</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1972</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1973</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1974</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1975</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1976</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1977</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1978</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1979</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1980</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1981</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1982</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1983</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1984</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1985</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1986</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1987</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1988</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1989</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1990</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1991</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1992</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1993</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1994</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1995</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1996</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1997</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1998</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>1999</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2000</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2001</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2002</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2003</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2004</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2005</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2006</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2007</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2008</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2009</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2010</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2011</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2012</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2013</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2014</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2015</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2016</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2017</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2018</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2019</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2020</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2021</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2022</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2023</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2024</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2025</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2026</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2027</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2028</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2029</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2030</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2031</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2032</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2033</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2034</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2035</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2036</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2037</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2038</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2039</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2040</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2041</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2042</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2043</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2044</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2045</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2046</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2047</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2048</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2049</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>2050</string>
+ </property>
+ </item>
+ </widget>
+ <widget class="QLabel" name="label_17">
+ <property name="geometry">
+ <rect>
+ <x>400</x>
+ <y>215</y>
+ <width>55</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter|Qt::AlignTop</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_18">
+ <property name="geometry">
+ <rect>
+ <x>455</x>
+ <y>215</y>
+ <width>55</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter|Qt::AlignTop</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_19">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>320</y>
+ <width>120</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
=== renamed file 'calendar.ui' => 'calendar.ui.moved'
=== added file 'ccbo.cpp'
--- ccbo.cpp 1970-01-01 00:00:00 +0000
+++ ccbo.cpp 2013-05-06 14:54:28 +0000
@@ -0,0 +1,490 @@
+/*
+ * This file is part of the chinese-calendar project
+ * The code reference to "Chinese Traditional Calendar Library"
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+/*
+* Chinese Tradional Calendar Library
+* Copyright (C) 2002-2003 Wang Yang
+* Copyright (C) 2003 donaldzju@xxxxxxxxxx
+*/
+
+#include "ccbo.h"
+
+CCBO::CCBO(void){}
+CCBO::~CCBO(void){}
+
+int CCBO::ctcl_calendar_type(int y, int m, int d, int opt)
+{
+ int days_of_month[13]={0,31,28,31,30,31,30,31,30,30,31,30,31};
+ if(opt==1){
+ if(y>1582 || (y==1582 && m>10) || (y==1582 && m==10 && d>14) ){
+ if( (y%400==0) || (y%4==0 && y%100!=0) )days_of_month[2]++;
+ if(m>0 && m<=12 && d>0 && d<=days_of_month[m])
+ return(1);
+ else
+ return(-1);
+ }else if(y==1582 && m==10 && d>=5 && d<=14){
+ return(-1);
+ }else{
+ if(y%4==0)days_of_month[2]++;
+ if(m>0 && m<=12 && d>0 && d<=days_of_month[m])
+ return(0);
+ else
+ return(-1);
+ }
+ }
+
+ if(opt==2)
+ return(1);
+ return(0);
+}
+
+int CCBO::ctcl_date_to_days(int y,int m,int d)
+{
+ int days=0,i;
+ int type=ctcl_calendar_type(y,m,d,1);
+ int dm[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//Days of each month
+ if(type!=0){
+ if( (y%100!=0 && y%4==0) || (y%400==0) )
+ dm[2]+=1;
+ }else{
+ if(y%4==0)
+ dm[2]+=1;
+ }
+ for(i=0;i<=m-1;i++){
+ days+=dm[i];
+ }
+ days+=d;
+ if(y==1582){
+ if(type==1)
+ days-=10;
+ if(type==-1)
+ days=-1;
+ }
+ return days;
+}
+
+int CCBO::ctcl_days_to_date(int y,int x)
+{
+ int m=1;
+ int i;
+ for(i=1;i<=12;i++){
+ int d=ctcl_date_to_days(y,i+1,1)-ctcl_date_to_days(y,i,1);
+ if(x<=d || i==12){
+ m=i;
+ break;
+ }else{
+ x-=d;
+ }
+ }
+ return 100*m+x;
+}
+
+int CCBO::days_from_era(int y)
+{
+ int days=(y-1)*365 + (y-1)/4;
+ if(y>1582)
+ days+= -((y-1)/100) + (y-1)/400;
+ return days;
+}
+
+int CCBO::ctcl_standard_days(int y,int m,int d)
+{
+ int days=(y-1)*365 + (y-1)/4 + ctcl_date_to_days(y,m,d) - 2;
+ if(y>1582)
+ days+= -((y-1)/100) + ((y-1)/400) + 2;
+ return days;
+}
+
+double CCBO::ctcl_julian_day(int y,int m,int d,int h,int min,int sec,int zone)
+{
+ int type=ctcl_calendar_type(y,m,d,1);
+ double jt=(h+(min+sec/60.0)/60.0)/24.0-0.5-zone/24.0;
+ double jd=(type!=0) ? (ctcl_standard_days(y,m,d)+1721425+jt) :
+ (ctcl_standard_days(y,m,d)+1721425+jt);
+ return jd;
+}
+
+int CCBO::ctcl_day_of_week(int y,int m,int d)
+{
+ return ctcl_standard_days(y,m,d)%7;
+}
+
+double CCBO::ctcl_solar_term(int y,int n,int t)
+{
+ double jd = y * (365.2423112 - 6.4e-14*(y-100)*(y-100) - 3.047e-8*(y-100))
+ + 15.218427 * n + 1721050.71301;
+ double zeta = 3.0e-4 * y - 0.372781384 - 0.2617913325 * n;
+ double yd = ( 1.945 * sin(zeta) - 0.01206 * sin(2*zeta) )
+ * ( 1.048994 - 2.583e-5 *y );
+ double sd =-18e-4*sin(2.313908653*y-0.439822951-3.0443*n);
+ return (t==1)?(jd+yd+sd-ctcl_standard_days(y,1,0)-1721425)
+ :(jd-ctcl_standard_days(y,1,0)-1721425);
+}
+
+double CCBO::ctcl_tail(double x)
+{
+ return x-floor(x);
+}
+
+double CCBO::ctcl_rem(double x,double w)
+{
+ return ctcl_tail(x/w)*w;
+}
+
+double CCBO::ctcl_round(double x){
+ return floor(x+0.5);
+}
+
+int CCBO::ctcl_gan(int x)
+{
+ return x%10;
+}
+
+int CCBO::ctcl_zhi(int x)
+{
+ return x%12;
+}
+
+int CCBO::ctcl_year_ganzhi(int y,int m,int d,int h)
+{
+ if ( (ctcl_date_to_days(y,m,d)+h/24.0)
+ < ctcl_solar_term(y,3,1)-1.0 )
+ y-=1;
+ return ctcl_round( ctcl_rem(y-3.0,60.0) );
+}
+
+double CCBO::ang(double x,double t,double c1,double t0,double t2,double t3)
+{
+ return ctcl_tail(c1*x)*2*M_PI+t0-t2*t*t-t3*t*t*t;
+}
+
+int CCBO::ctcl_lunar_date(int y,int m,int d)
+{
+ int lunar_date=-1;
+ const double rpi=180/M_PI;
+ const double zone=8.0;
+ double t=(y-1899.5)/100.0;
+ double ms=floor((y-1900)*12.3685);
+ double f0=ang(ms,t,0,0.75933,2.172e-4,1.55e-7)
+ +0.53058868*ms-8.37e-4*t+zone/24.0+0.5;
+ double fc=0.1734-3.93e-4*t;
+ double j0=693595+29*ms;
+ double aa0=ang(ms,t,0.08084821133,359.2242/rpi,
+ 0.0000333/rpi,0.00000347/rpi);
+ double ab0=ang(ms,t,7.171366127999999e-2,306.0253/rpi,
+ -0.0107306/rpi,-0.00001236/rpi);
+ double ac0=ang(ms,t,0.08519585128,21.2964/rpi,
+ 0.0016528/rpi,0.00000239/rpi);
+ int i;
+ for(i=-1;i<=13;i+=1){
+ double aa=aa0+0.507984293*i;
+ double ab=ab0+6.73377553*i;
+ double ac=ac0+6.818486628*i;
+ double f1=f0+1.53058868*i+fc*sin(aa)-0.4068*sin(ab)+0.0021*sin(2*aa)
+ +0.0161*sin(2*ab)+0.0104*sin(2*ac)-0.0074*sin(aa-ab)-0.0051*sin(aa+ab);
+ double j=j0+28*i+f1;
+ int diff=ctcl_standard_days(y,m,d)-floor(j);
+ if( diff>=0 && diff<=29 )
+ lunar_date=diff+1;
+ }
+ return(lunar_date);
+}
+
+int CCBO::ctcl_leap_month(int y)
+{
+ char leap=lunarstr.mid(y-beginning_year,2).at(0);
+ if(leap=='a')
+ leap='0'+10;
+ if(leap=='b')
+ leap='0'+11;
+ if(leap=='c')
+ leap='0'+12;
+ return leap-'0';
+}
+
+int CCBO::ctcl_lunar_month(int y,int m,int d)
+{
+ double lunar_date=ctcl_lunar_date(y,m,d);
+ int lunar_days=lunar_date-floor(lunar_date/100)*100;
+ int leap_num=0;
+ int i;
+ int non_leap;
+ int lunar_month;
+
+ for(i=-849;i<=y;i++){
+ if(ctcl_leap_month(i)!=0)
+ leap_num++;
+ }
+
+ non_leap=ctcl_round((ctcl_standard_days(y,m,d)
+ -ctcl_standard_days(-849,1,21)
+ -lunar_days)/29.530588)-leap_num;
+
+ if(y<=240) non_leap++;
+ if(y<=237) non_leap--;
+ if(y<24) non_leap++;
+ if(y<9) non_leap--;
+ if(y<=-255) non_leap++;
+ if(y<=-256) non_leap+=2;
+ if(y<=-722) non_leap++;
+
+ lunar_month=ctcl_round(ctcl_rem(non_leap-3.0,12.0)+1.0);
+ if(lunar_month==ctcl_leap_month(y-1) && m==1 && d<lunar_days)
+ lunar_month*=-1;
+ else if(lunar_month==ctcl_leap_month(y))
+ lunar_month*=-1;
+ else if(lunar_month<ctcl_leap_month(y) || ( m<lunar_month && ctcl_leap_month(y) ) )
+ lunar_month++;
+ else lunar_month=ctcl_round(ctcl_rem(lunar_month-1,12)+1);
+
+ return lunar_month;
+}
+QString CCBO::ctcl_displaydata(int y, int m, int d)
+{
+ QString QueryStr;
+ QString data;
+ QueryStr=QString("select note from cnote where y=%1 and m=%2 and d=%3").arg(y).arg(m).arg(d);
+ data=ctcl_common_query("cnote",QueryStr);
+ return data;
+}
+
+int CCBO::ctcl_savenote(int y,int m, int d ,QString textedit)
+{
+ QString QueryStr;
+ QString InsertStr;
+ QString UpdateStr;
+ QString note;
+ QString insert;
+ QueryStr=QString("select note from cnote where y=%1 and m=%2 and d=%3").arg(y).arg(m).arg(d);
+ note=ctcl_common_query("cnote",QueryStr);
+ if(textedit.isEmpty()&¬e.isEmpty())
+ return 0;
+ if(note.isEmpty())
+ { InsertStr=QString("INSERT INTO cnote(y,m,d,note) VALUES(%1,%2,%3,'%4');").arg(y).arg(m).arg(d).arg(textedit);
+ ctcl_common_query("cnote",InsertStr);
+ }else{
+ UpdateStr=QString("UPDATE cnote SET note = '%4' where y=%1 and m=%2 and d=%3").arg(y).arg(m).arg(d).arg(textedit);
+ ctcl_common_query("cnote",UpdateStr);
+ }
+}
+
+int CCBO::ctcl_solar_to_lunar(int y,int m,int d,struct CCalendar* ctc)
+{
+ int r,i;
+ char buf[10];
+ ::qsnprintf(buf, 10, "%02d%02d", m,d);
+ QString MD = QString::fromAscii(buf);
+ QString QueryStr;
+
+ QueryStr=QString("select Ji from yiji where Year=%1 and Month=%2 and Day=%3").arg(y).arg(m).arg(d);
+ ctc->ji=ctcl_common_query("yiji",QueryStr);
+ QueryStr=QString("select Yi from yiji where Year=%1 and Month=%2 and Day=%3").arg(y).arg(m).arg(d);
+ ctc->yi=ctcl_common_query("yiji",QueryStr);
+
+
+ QueryStr=QString("select VALUE from holiday where DATA='"+MD+"'");
+ ctc->holiday=ctcl_common_query("holiday",QueryStr);
+
+ int type=ctcl_calendar_type(y,m,d,1);
+ QueryStr=QString("select VALUE from caltype where ID=%1").arg(type);
+ ctc->caltype=ctcl_common_query("caltype",QueryStr);
+
+ if(type==-1)return -1;
+
+ QueryStr=QString("select VALUE from weekday where ID=%1").arg(ctcl_day_of_week(y,m,d));
+ ctc->weekday=ctcl_common_query("weekday",QueryStr);
+
+ QueryStr=QString("select VALUE from zodiac where DATEB<=%1 and DATEE>=%2").arg(MD.toInt()).arg(MD.toInt());
+
+ ctc->zodiac=ctcl_common_query("zodiac",QueryStr);
+
+ if(ctc->zodiac.isEmpty())
+ {
+ QueryStr=QString("select VALUE from zodiac where DATEB<=%1 and %2<=1231").arg(MD.toInt()).arg(MD.toInt());
+ ctc->zodiac=ctcl_common_query("zodiac",QueryStr);
+ if(ctc->zodiac.isEmpty())
+ {
+ QueryStr=QString("select VALUE from zodiac where DATEB>=101 and DATEE<=119");
+ ctc->zodiac=ctcl_common_query("zodiac",QueryStr);
+ }
+ }
+ ctc->gan=ctcl_gan(ctcl_year_ganzhi(y,m,d,12));
+ ctc->zhi=ctcl_zhi(ctcl_year_ganzhi(y,m,d,12));
+
+
+ QueryStr=QString("select VALUE from tiangan where ID=%1").arg(ctc->gan);
+ ctc->ganzhi=ctcl_common_query("gan",QueryStr);
+ QueryStr=QString("select VALUE from dizhi where ID=%1").arg(ctc->zhi);
+ ctc->ganzhi.append(ctcl_common_query("zhi",QueryStr));
+
+ QueryStr=QString("select VALUE from shengxiao where ID=%1").arg(ctc->zhi);
+ ctc->shengxiao=ctcl_common_query("shengxiao",QueryStr);
+
+ for(i=0;i<24;i++){
+ r=ctcl_days_to_date(y,ctcl_solar_term(y,i+1,1));
+ if(r>=m*100+d){
+ QueryStr=QString("select VALUE from sterm where ID=%1").arg(i);
+ ctc->sterm=ctcl_common_query("sterm",QueryStr);
+ if(r!=m*100+d){
+ ctc->sterm.insert(0,QString("%1%2").arg(r/10%10).arg(r%10)+QString::fromUtf8("\346\227\245"));
+ }
+ ctc->laststerm = false;
+ break;
+ }else if(i==23){
+ QueryStr=QString("select VALUE from sterm where ID=0");
+ ctc->sterm=ctcl_common_query("sterm",QueryStr);
+ r=ctcl_days_to_date(y+1,ctcl_solar_term(y+1,1,1));
+ ctc->laststerm = true;
+ }
+ }
+
+ if(y>=maxyear){
+ ctc->day=0;
+ ctc->month=0;
+ ctc->cday=tr("unknown");
+ ctc->cmonth=tr("no data");
+ return 0;
+ }
+
+ ctc->day=ctcl_lunar_date(y,m,d);
+ if(ctc->day<=10){
+ QueryStr=QString("select VALUE from cnumber where ID=%1").arg(ctc->day);
+ ctc->cday=QString::fromUtf8("\345\210\235")+ctcl_common_query("day",QueryStr);
+ }else if(ctc->day<20){
+ QueryStr=QString("select VALUE from cnumber where ID=%1").arg(ctc->day%10);
+ ctc->cday=QString::fromUtf8("\345\215\201")+ctcl_common_query("day",QueryStr);
+ }else if(ctc->day==20){
+ ctc->cday=QString::fromUtf8("\344\272\214\345\215\201");
+ }else if(ctc->day<30){
+ QueryStr=QString("select VALUE from cnumber where ID=%1").arg(ctc->day%10);
+ ctc->cday=QString::fromUtf8("\345\273\277")+ctcl_common_query("day",QueryStr);
+ }else if(ctc->day==30){
+ ctc->cday=QString::fromUtf8("\344\270\211\345\215\201");
+ }
+
+ ctc->month=ctcl_lunar_month(y,m,d);
+ if(ctc->month==-12){
+ ctc->cmonth=QString::fromUtf8("\351\227\260\345\215\201\344\272\214\346\234\210");
+ }else if(ctc->month==-11){
+ ctc->cmonth=QString::fromUtf8("\351\227\260\345\215\201\344\270\200\346\234\210");
+ }else if(ctc->month==-1){
+ ctc->cmonth=QString::fromUtf8("\351\227\260\346\255\243\346\234\210");
+ }else if(ctc->month<0){
+ ctc->cmonth=QString::fromUtf8("\351\227\260");
+ QueryStr=QString("select VALUE from cnumber where ID=%1").arg(-ctc->month);
+ ctc->cmonth.append(ctcl_common_query("month",QueryStr));
+ ctc->cmonth.append(QString::fromUtf8("\346\234\210"));
+ }else if(ctc->month==13){
+ ctc->cmonth=QString::fromUtf8("\346\255\243\346\234\210");
+ }else{
+ QueryStr=QString("select VALUE from cnumber where ID=%1").arg(ctc->month);
+ ctc->cmonth=ctcl_common_query("month",QueryStr);
+ ctc->cmonth.append(QString::fromUtf8("\346\234\210"));
+ }
+ memset(buf,0x00,sizeof(buf));
+ if(qAbs(ctc->month)<13)
+ ::qsnprintf(buf, 10, "%02d%02d", qAbs(ctc->month),ctc->day);
+ else if(qAbs(ctc->month)==13)
+ ::qsnprintf(buf, 10, "%02d%02d", 1,ctc->day);
+ MD = QString::fromAscii(buf);
+ if(ctc->month>0){
+ QueryStr=QString("select VALUE from choliday where DATA='"+MD+"'");
+ ctc->choliday=ctcl_common_query("choliday",QueryStr);
+ //logSqlError("choliday",QueryStr);
+ }
+ if(ctc->month>0&&!(ctc->choliday.isEmpty()))
+ ctc->ischoliday=true;
+ else
+ ctc->ischoliday=false;
+ return 1;
+}
+
+bool CCBO::InitConnection(QString Path)
+{
+ QString QueryStr;
+ QString systempath,systemdirectory;
+ QStringList env = QProcess::systemEnvironment().filter(QRegExp("^XDG_DATA_HOME="));
+ if (env.length() == 0) {
+ systemdirectory = QDir::homePath() + "/.local/share";
+ } else {
+ systemdirectory = env.at(0);
+ systemdirectory = systemdirectory.mid(systemdirectory.indexOf("=") + 1);
+ if (systemdirectory.isEmpty()) {
+ systemdirectory = QDir::homePath() + "/.local/share";
+ }
+ }
+
+ systemdirectory = QString("%1/chinese-calendar").arg(systemdirectory);
+ systempath = QString("%1/KylinLunar.db").arg(systemdirectory);
+
+ if(!QFile::exists(systempath))
+ {
+ QDir d;
+ if (d.mkpath(systemdirectory) == false) {
+ return false;
+ }
+ if (QFile::copy("/usr/share/chinese-calendar/db/KylinLunar.db", systempath) == false) {
+ return false;
+ }
+ }
+
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
+ db.setDatabaseName(systempath);
+
+ if (!db.open()) {
+ return false;
+ }
+
+ QSqlQuery query;
+ query.exec("select * from lunar where MaxYear=2100");
+ query.last();
+ maxyear=query.value(0).toInt();
+ lunarstr=query.value(1).toByteArray ();
+
+ return true;
+}
+
+void CCBO::logSqlError(const QString& Type, const QString& error)
+{
+ QFile f("chinesecalendar.log" );
+ if ( !f.open(QIODevice::ReadWrite | QIODevice::Append ) )
+ return;
+ QTextStream t( &f );
+ t << "Error time: " << QDateTime::currentDateTime().toString() << "\n";
+ t << Type << "\n";
+ t << error << "\n";
+ f.close();
+}
+
+QString CCBO::ctcl_common_query(QString type,QString querystr)
+{
+ QSqlQuery query;
+ query.prepare(querystr);
+ if(!query.exec())
+ logSqlError(type,query.lastError().text());
+ if (query.last()) {
+ return query.value(0).toString();
+ } else {
+ return QString();
+ }
+}
+
=== added file 'ccbo.h'
--- ccbo.h 1970-01-01 00:00:00 +0000
+++ ccbo.h 2013-05-06 14:54:28 +0000
@@ -0,0 +1,108 @@
+/*
+ * This file is part of the chinese-calendar project
+ * The code reference to "Chinese Traditional Calendar Library"
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+/*
+* Chinese Tradional Calendar Library
+* Copyright (C) 2002-2003 Wang Yang
+* Copyright (C) 2003 donaldzju@xxxxxxxxxx
+*/
+
+#pragma once
+#include <math.h>
+#include <QByteArray>
+#include <QFile>
+#include <QString>
+#include <QObject>
+#include <string.h>
+#include <QDate>
+#include <QFile>
+#include <QtGui>
+#include <QMessageBox>
+#include <QSqlDatabase>
+#include <QSqlError>
+#include <QSqlQuery>
+#include <QTextStream>
+#ifndef M_PI
+#define M_PI 3.14159265358979323846264338327
+#endif
+
+const int beginning_year=-849;
+const int baseIndex = 0;
+
+struct CCalendar
+{
+ int month;
+ int day;
+ int gan;
+ int zhi;
+ QString cmonth;
+ QString cday;
+ QString ganzhi;
+ QString shengxiao;
+ QString sterm;
+ QString caltype;
+ QString weekday;
+ QString zodiac;
+ QString holiday;
+ QString choliday;
+ bool laststerm;
+ bool ischoliday;
+ QString yi;
+ QString ji;
+ QString note;
+};
+
+class CCBO: public QObject
+{
+public:
+ CCBO(void);
+ ~CCBO(void);
+ int ctcl_solar_to_lunar(int y,int m,int d,struct CCalendar* ctc);
+ bool InitConnection(QString Path);
+ int ctcl_savenote(int y,int m, int d ,QString textedit);
+ QString ctcl_displaydata(int y,int m,int d);
+private:
+ QByteArray lunarstr;
+ int maxyear;
+ int ctcl_calendar_type(int y, int m, int d, int opt);
+ int ctcl_date_to_days(int y,int m,int d);
+ int ctcl_days_to_date(int y,int x);
+ int days_from_era(int y);
+ int ctcl_standard_days(int y,int m,int d);
+ double ctcl_julian_day(int y,int m,int d,int h,int min,int sec,int zone);
+ int ctcl_day_of_week(int y,int m,int d);
+ double ctcl_solar_term(int y,int n,int t);
+ double ctcl_tail(double x);
+ double ctcl_rem(double x,double w);
+ double ctcl_round(double x);
+ int ctcl_gan(int x);
+ int ctcl_zhi(int x);
+ int ctcl_year_ganzhi(int y,int m,int d,int h);
+ double ang(double x,double t,double c1,double t0,double t2,double t3);
+ int ctcl_lunar_date(int y,int m,int d);
+ int ctcl_leap_month(int y);
+ int ctcl_lunar_month(int y,int m,int d);
+ void logSqlError( const QString& Type, const QString& error);
+ QString ctcl_common_query(QString type,QString querystr);
+
+
+};
=== added file 'chinese-calendar.desktop'
--- chinese-calendar.desktop 1970-01-01 00:00:00 +0000
+++ chinese-calendar.desktop 2013-05-06 14:54:28 +0000
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=chinese-calendar
+Name[zh_CN]=中国农历
+Comment=Chinese lunar calendar
+Exec=/usr/bin/chinese-calendar
+Icon=chinesecalendar-64.png
+StartupNotify=true
+Terminal=false
+Type=Application
+Categories=GNOME;GTK;Graphics;RasterGraphics;Viewer;
=== added file 'chinese-calendar.pro'
--- chinese-calendar.pro 1970-01-01 00:00:00 +0000
+++ chinese-calendar.pro 2013-05-06 14:54:28 +0000
@@ -0,0 +1,65 @@
+TEMPLATE = app
+TARGET +=
+DEPENDPATH += $$PWD/
+INCLUDEPATH += $$PWD/
+
+inst.files += KylinLunar.db
+inst.path = /usr/share/chinese-calendar/db
+inst1.files += img/chinesecalendar-64.png
+inst1.path = /usr/share/pixmaps
+inst2.files += chinese-calendar.desktop
+inst2.path = /usr/share/applications
+inst3.files += chinese-calendar.desktop
+inst3.path = /etc/xdg/autostart
+default_skin.files += skin/default/chinesecalendarBGyellow.png \
+ skin/default/no.png \
+ skin/default/note.png \
+ skin/default/ok.png
+default_skin.path = /usr/share/chinese-calendar/skin/default
+black_skin.files += skin/black/chinesecalendar.png \
+ skin/black/no.png \
+ skin/black/no-hover.png \
+ skin/black/ok.png \
+ skin/black/ok-hover.png \
+ skin/black/note.png \
+ skin/black/arrow-left.png \
+ skin/black/arrow-right.png \
+ skin/black/arrow-down.png
+black_skin.path = /usr/share/chinese-calendar/skin/black
+qss.files += skin/default-skin.qss \
+ skin/black-skin.qss
+qss.path = /usr/share/chinese-calendar/skin
+
+target.source += $$TARGET
+target.path = /usr/bin
+INSTALLS += inst \
+ inst1 \
+ inst2 \
+ inst3 \
+ default_skin \
+ black_skin \
+ qss \
+ target
+
+
+QT += core gui\
+ sql \
+ svg
+
+HEADERS += \
+ dateitem.h \
+ datemaskwidget.h \
+ chinesecalendar.h \
+ ccbo.h \
+ cnote.h
+FORMS += calendar.ui \
+ dateitem.ui
+SOURCES += main.cpp \
+ dateitem.cpp \
+ datemaskwidget.cpp \
+ chinesecalendar.cpp \
+ ccbo.cpp \
+ cnote.cpp
+RESOURCES += \
+ chinese-calendar.qrc
+TRANSLATIONS += translate/i18_zh_CN.ts
=== added file 'chinese-calendar.qrc'
--- chinese-calendar.qrc 1970-01-01 00:00:00 +0000
+++ chinese-calendar.qrc 2013-05-06 14:54:28 +0000
@@ -0,0 +1,10 @@
+<RCC>
+ <qresource prefix="/">
+ <file>img/chinesecalendar.svg</file>
+ <file>img/chinesecalendar-64.png</file>
+ <file>img/icon.png</file>
+ <file>img/icon-64.png</file>
+ <file>translate/i18_zh_CN.qm</file>
+ <file>translate/i18_zh_CN.ts</file>
+ </qresource>
+</RCC>
=== added file 'chinesecalendar.cpp'
--- chinesecalendar.cpp 1970-01-01 00:00:00 +0000
+++ chinesecalendar.cpp 2013-05-06 14:54:28 +0000
@@ -0,0 +1,1265 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#include "chinesecalendar.h"
+
+
+ChineseCalendar::ChineseCalendar(QWidget *parent)
+ : QWidget(parent)
+{
+ setupUi(this); m_strFileList.clear();
+// bg = new QPixmap(":/img/chinesecalendarBGyellow.png");
+ icon = QIcon(":/img/icon.png");
+ icon64 = QIcon(":/img/chinesecalendar-64.png");
+ mycalendat=new CCBO;
+ mycalendat->InitConnection(QDir::currentPath ());
+ selectedDate = QDate::currentDate();
+ monthCombo->setCurrentIndex(selectedDate.month() - 1);
+ YearSelect->setCurrentIndex(selectedDate.year()-1900);
+ connect(monthCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(setMonth(int)));
+ connect(monthCombo, SIGNAL(activated(int)), this, SLOT(setMonth(int)));
+ connect(YearSelect, SIGNAL(currentIndexChanged(int)), this, SLOT(setYear(int)));
+ connect(this->backtotoday, SIGNAL(clicked()), this, SLOT(backtoday()));
+
+// this->TbnextMonth->setStyleSheet("QPushButton{background-color:transparent;color:rgb(200,200,150);}QPushButton:hover{color:rgb(255,255,255);}");
+// this->TbnextYear->setStyleSheet("QPushButton{background-color:transparent;color:rgb(200,200,150);}QPushButton:hover{color:rgb(255,255,255);}");
+// this->TbpreviousMonth->setStyleSheet("QPushButton{background-color:transparent;color:rgb(200,200,150);}QPushButton:hover{color:rgb(255,255,255);}");
+// this->TbpreviousYear->setStyleSheet("QPushButton{background-color:transparent;color:rgb(200,200,150);}QPushButton:hover{color:rgb(255,255,255);}");
+// this->backtotoday->setStyleSheet("QPushButton{background-color:transparent;color:rgb(200,200,150);}QPushButton:hover{color:rgb(255,255,255);}");
+// this->YearSelect->setStyleSheet("QComboBox{border: 2px solid lightgray;border-radius: 5px;font:12pt;}");
+// this->monthCombo->setStyleSheet("QComboBox{border: 2px solid lightgray;border-radius: 5px;font:12pt;}");
+// this->label->setStyleSheet("QLabel{font:12pt;}");
+// this->label_2->setStyleSheet("QLabel{font:12pt;}");
+
+ QDateTime dateTime;
+ QString currentTime;
+ QString week;
+ dateTime = QDateTime::currentDateTime();
+ if(dateTime.toString("ddd") == "Mon")
+ week = "星期一";
+ if(dateTime.toString("ddd") == "Tue")
+ week = "星期二";
+ if(dateTime.toString("ddd") == "Wed")
+ week = "星期三";
+ if(dateTime.toString("ddd") == "Thu")
+ week = "星期四";
+ if(dateTime.toString("ddd") == "Fri")
+ week = "星期五";
+ if(dateTime.toString("ddd") == "Sat")
+ week = "星期六";
+ if(dateTime.toString("ddd") == "Sun")
+ week = "星期日";
+ currentTime = dateTime.toString("yyyy-MM-dd %1").arg(week);
+ QDate day = QDate::currentDate();
+ struct CCalendar datebase;
+ mycalendat->ctcl_solar_to_lunar(day.year(),day.month(),day.day(),&datebase);
+ QString chinesemonth = datebase.cmonth;
+ if (chinesemonth == "一月")
+ chinesemonth = "正月";
+ if (chinesemonth == "十一月")
+ chinesemonth = "冬月";
+ if (chinesemonth == "十二月")
+ chinesemonth = "腊月";
+ QString chineseday = QString("农历 %1%2").arg(chinesemonth).arg(datebase.cday);
+ QString chineseyear = QString("%1年(%2年)").arg(datebase.ganzhi).arg(datebase.shengxiao);
+
+ QString chineseyi = QString("%1").arg(datebase.yi);
+ QStringList chineseyilist = chineseyi.split("、");
+ QString chineseji = QString("%2").arg(datebase.ji);
+ QStringList chinesejilist = chineseji.split("、");
+
+ QFont font;
+ QPalette pa;
+ font.setPointSize(48);
+ font.setBold(true);
+ this->label_10->setFont(font);
+ this->label_10->setText(QString::number(day.day()));
+ font.setBold(false);
+ font.setPointSize(9);
+ this->label_12->setFont(font);
+ this->label_12->setText(currentTime);
+ font.setPointSize(10);
+ this->label_13->setFont(font);
+ this->label_13->setText(chineseday);
+ this->label_14->setFont(font);
+ this->label_14->setText(chineseyear);
+ font.setPointSize(15);
+ this->label_15->setFont(font);
+ font.setPointSize(10);
+ this->label_17->setFont(font);
+ this->label_18->setFont(font);
+ QString yi=QString("");
+ QString ji=QString("");
+ if(chineseyilist.count() == 0 )
+ yi =QString("");
+ if(chineseyilist.count() >= 5)
+ yi = QString("").append(chineseyilist.at(0)).append("\n").append(chineseyilist.at(1)).append("\n").append(chineseyilist.at(2)).append("\n").append(chineseyilist.at(3)).append("\n").append(chineseyilist.at(4));
+ if(chineseyilist.count() == 4)
+ yi = QString("").append(chineseyilist.at(0)).append("\n").append(chineseyilist.at(1)).append("\n").append(chineseyilist.at(2)).append("\n").append(chineseyilist.at(3));
+ if (chineseyilist.count() == 3)
+ yi = QString("").append(chineseyilist.at(0)).append("\n").append(chineseyilist.at(1)).append("\n").append(chineseyilist.at(2));
+ if (chineseyilist.count() == 2)
+ yi = QString("").append(chineseyilist.at(0)).append("\n").append(chineseyilist.at(1));
+ if (chineseyilist.count() == 1)
+ yi = QString("").append(chineseyilist.at(0)).append("\n");
+ this->label_17->setText(yi);
+
+ if(chinesejilist.count() == 0 )
+ ji =QString("");
+ if(chinesejilist.count() >= 5)
+ ji = QString("").append(chinesejilist.at(0)).append("\n").append(chinesejilist.at(1)).append("\n").append(chinesejilist.at(2)).append("\n").append(chinesejilist.at(3)).append("\n").append(chinesejilist.at(4));
+ if(chinesejilist.count() == 4)
+ ji = QString("").append(chinesejilist.at(0)).append("\n").append(chinesejilist.at(1)).append("\n").append(chinesejilist.at(2)).append("\n").append(chinesejilist.at(3));
+ if (chinesejilist.count() == 3)
+ ji = QString("").append(chinesejilist.at(0)).append("\n").append(chinesejilist.at(1)).append("\n").append(chinesejilist.at(2));
+ if (chinesejilist.count() == 2)
+ ji = QString("").append(chinesejilist.at(0)).append("\n").append(chinesejilist.at(1));
+ if (chinesejilist.count() == 1)
+ ji = QString("").append(chinesejilist.at(0)).append("\n");
+ this->label_18->setText(ji);
+
+ QString cnote=mycalendat->ctcl_displaydata(day.year(),day.month(),day.day());
+ QString haveplan=QString("今日有行程安排");
+ QString noplan=QString("今日无行程安排");
+ int num=cnote.count();
+ while( num > 0 && cnote.at(num-1).isSpace())
+ {
+ num--;
+ }
+ if(cnote.isEmpty() || num == 0)
+ this->label_19->setText(noplan);
+ else
+ this->label_19->setText(haveplan);
+ pa.setColor(QPalette::WindowText,Qt::white);
+ this->label->setPalette(pa);
+ this->label_2->setPalette(pa);
+ this->label_15->setPalette(pa);
+ this->label_4->setPalette(pa);
+ this->label_5->setPalette(pa);
+ this->label_6->setPalette(pa);
+ this->label_7->setPalette(pa);
+ this->label_8->setPalette(pa);
+
+ pa.setColor(QPalette::WindowText,QColor(255,255,255));
+ this->label_3->setPalette(pa);
+ this->label_9->setPalette(pa);
+
+ pa.setColor(QPalette::WindowText,Qt::black);
+ this->label_18->setPalette(pa);
+ this->label_19->setPalette(pa);
+
+ pa.setColor(QPalette::WindowText,Qt::red);
+ this->label_10->setPalette(pa);
+ this->label_11->setPalette(pa);
+ this->label_12->setPalette(pa);
+ this->label_13->setPalette(pa);
+ this->label_14->setPalette(pa);
+ this->label_17->setPalette(pa);
+
+ map = new QMap<QString, DateItem *>();
+ DateItem *dateitem00 = new DateItem(this);
+ dateitem00->show();
+ map->insert(QString("1-1"), dateitem00 );
+ connect(dateitem00, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem00, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem01 = new DateItem(this);
+ dateitem01->show();
+ map->insert(QString("1-2"), dateitem01 );
+ connect(dateitem01, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem01, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem02 = new DateItem(this);
+ dateitem02->show();
+ map->insert(QString("1-3"), dateitem02 );
+ connect(dateitem02, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem02, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem03 = new DateItem(this);
+ dateitem03->show();
+ map->insert(QString("1-4"), dateitem03 );
+ connect(dateitem03, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem03, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem04 = new DateItem(this);
+ dateitem04->show();
+ map->insert(QString("1-5"), dateitem04 );
+ connect(dateitem04, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem04, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem05 = new DateItem(this);
+ dateitem05->show();
+ map->insert(QString("1-6"), dateitem05 );
+ connect(dateitem05, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem05, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem06 = new DateItem(this);
+ dateitem06->show();
+ map->insert(QString("1-7"), dateitem06 );
+ connect(dateitem06, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem06, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem10 = new DateItem(this);
+ dateitem10->show();
+ map->insert(QString("2-1"), dateitem10 );
+ connect(dateitem10, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem10, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem11 = new DateItem(this);
+ dateitem11->show();
+ map->insert(QString("2-2"), dateitem11 );
+ connect(dateitem11, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem11, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem12 = new DateItem(this);
+ dateitem12->show();
+ map->insert(QString("2-3"), dateitem12 );
+ connect(dateitem12, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem12, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem13 = new DateItem(this);
+ dateitem13->show();
+ map->insert(QString("2-4"), dateitem13 );
+ connect(dateitem13, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem13, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem14 = new DateItem(this);
+ dateitem14->show();
+ map->insert(QString("2-5"), dateitem14 );
+ connect(dateitem14, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem14, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem15 = new DateItem(this);
+ dateitem15->show();
+ map->insert(QString("2-6"), dateitem15 );
+ connect(dateitem15, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem15, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem16 = new DateItem(this);
+ dateitem16->show();
+ map->insert(QString("2-7"), dateitem16 );
+ connect(dateitem16, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem16, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem20 = new DateItem(this);
+ dateitem20->show();
+ map->insert(QString("3-1"), dateitem20 );
+ connect(dateitem20, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem20, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem21 = new DateItem(this);
+ dateitem21->show();
+ map->insert(QString("3-2"), dateitem21 );
+ connect(dateitem21, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem21, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem22 = new DateItem(this);
+ dateitem22->show();
+ map->insert(QString("3-3"), dateitem22 );
+ connect(dateitem22, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem22, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem23 = new DateItem(this);
+ dateitem23->show();
+ map->insert(QString("3-4"), dateitem23 );
+ connect(dateitem23, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem23, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem24 = new DateItem(this);
+ dateitem24->show();
+ map->insert(QString("3-5"), dateitem24 );
+ connect(dateitem24, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem24, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem25 = new DateItem(this);
+ dateitem25->show();
+ map->insert(QString("3-6"), dateitem25 );
+ connect(dateitem25, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem25, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem26 = new DateItem(this);
+ dateitem26->show();
+ map->insert(QString("3-7"), dateitem26 );
+ connect(dateitem26, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem26, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem30 = new DateItem(this);
+ dateitem30->show();
+ map->insert(QString("4-1"), dateitem30 );
+ connect(dateitem30, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem30, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem31 = new DateItem(this);
+ dateitem31->show();
+ map->insert(QString("4-2"), dateitem31 );
+ connect(dateitem31, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem31, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem32 = new DateItem(this);
+ dateitem32->show();
+ map->insert(QString("4-3"), dateitem32 );
+ connect(dateitem32, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem32, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem33 = new DateItem(this);
+ dateitem33->show();
+ map->insert(QString("4-4"), dateitem33 );
+ connect(dateitem33, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem33, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem34 = new DateItem(this);
+ dateitem34->show();
+ map->insert(QString("4-5"), dateitem34 );
+ connect(dateitem34, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem34, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem35 = new DateItem(this);
+ dateitem35->show();
+ map->insert(QString("4-6"), dateitem35 );
+ connect(dateitem35, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem35, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem36 = new DateItem(this);
+ dateitem36->show();
+ map->insert(QString("4-7"), dateitem36 );
+ connect(dateitem36, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem36, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem40 = new DateItem(this);
+ dateitem40->show();
+ map->insert(QString("5-1"), dateitem40 );
+ connect(dateitem40, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem40, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem41 = new DateItem(this);
+ dateitem41->show();
+ map->insert(QString("5-2"), dateitem41 );
+ connect(dateitem41, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem41, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem42 = new DateItem(this);
+ dateitem42->show();
+ map->insert(QString("5-3"), dateitem42 );
+ connect(dateitem42, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem42, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem43 = new DateItem(this);
+ dateitem43->show();
+ map->insert(QString("5-4"), dateitem43 );
+ connect(dateitem43, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem43, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem44 = new DateItem(this);
+ dateitem44->show();
+ map->insert(QString("5-5"), dateitem44 );
+ connect(dateitem44, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem44, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem45 = new DateItem(this);
+ dateitem45->show();
+ map->insert(QString("5-6"), dateitem45 );
+ connect(dateitem45, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem45, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem46 = new DateItem(this);
+ dateitem46->show();
+ map->insert(QString("5-7"), dateitem46 );
+ connect(dateitem46, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem46, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem50 = new DateItem(this);
+ dateitem50->hide();
+ map->insert(QString("6-1"), dateitem50 );
+ connect(dateitem50, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem50, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem51 = new DateItem(this);
+ dateitem51->hide();
+ map->insert(QString("6-2"), dateitem51 );
+ connect(dateitem51, SIGNAL(clicked(QString)), this, SLOT(resetcalendardate(QString)));
+ connect(dateitem51, SIGNAL(day(QString)), this, SLOT(setclickday(QString)));
+
+ DateItem *dateitem52 = new DateItem(this);
+ dateitem52->hide();
+ map->insert(QString("6-3"), dateitem52 );
+
+ DateItem *dateitem53 = new DateItem(this);
+ dateitem53->hide();
+ map->insert(QString("6-4"), dateitem53 );
+
+ DateItem *dateitem54 = new DateItem(this);
+ dateitem54->hide();
+ map->insert(QString("6-5"), dateitem54 );
+
+ DateItem *dateitem55 = new DateItem(this);
+ dateitem55->hide();
+ map->insert(QString("6-6"), dateitem55 );
+
+ DateItem *dateitem56 = new DateItem(this);
+ dateitem56->hide();
+ map->insert(QString("6-7"), dateitem56 );
+
+ setItemLayout();
+ setCalendar();
+
+ QTimer *timer = new QTimer(this);
+ timer->setInterval(1000);
+ connect(timer,SIGNAL(timeout()),this,SLOT(setTime()));
+ timer->start();
+
+ QBitmap objBitmap(size());
+ QPainter painter(&objBitmap);
+ painter.fillRect(rect(),Qt::white);
+ painter.setBrush(QColor(0,0,0));
+ painter.drawRoundedRect(this->rect(),10,10);
+ setMask(objBitmap);
+
+
+ this->createTray();
+
+
+ note = new Cnote;
+ QDesktopWidget desktop;
+ int width = desktop.screenGeometry().width();
+ note->setGeometry(QRect(width-400,80,224,280));
+ connect(note,SIGNAL(save(QString)),this,SLOT(savedata(QString)));
+ note->hide();
+
+}
+
+ChineseCalendar::~ChineseCalendar()
+{
+ delete mycalendat;
+}
+
+void ChineseCalendar::setclickday(QString day)
+{
+ clickday = day.toInt();
+ int year = this->YearSelect->currentText().toInt();
+ int month = this->monthCombo->currentText().toInt();
+ int today = clickday;
+ QString dateplan = QString("%1月%2日计划安排").arg(this->monthCombo->currentText()).arg(day);
+ QString data;
+ data=mycalendat->ctcl_displaydata(year,month,today);
+ note->textedit->setText(data);
+ note->datelabel->setText(dateplan);
+ note->exec();
+}
+
+void ChineseCalendar::savedata(QString data)
+{
+ int year = this->YearSelect->currentText().toInt();
+ int month = this->monthCombo->currentText().toInt();
+ int day = clickday;
+ mycalendat->ctcl_savenote(year,month,day,data);
+ note->hide();
+
+}
+
+
+void ChineseCalendar::createTray()
+{
+ this->actionShow = new QAction(tr("隐藏/显示"), this);
+ connect(actionShow, SIGNAL(triggered()), this, SLOT(showOrHide()));
+
+ this->actionStaysOnTop = new QAction(tr("总在最前"), this);
+ this->actionStaysOnTop->setCheckable(true);
+ connect(actionStaysOnTop, SIGNAL(triggered()), this, SLOT(setMode()));
+
+ this->actionStaysOnBottom = new QAction(tr("总在最后"), this);
+ this->actionStaysOnBottom->setCheckable(true);
+ connect(actionStaysOnBottom, SIGNAL(triggered()), this, SLOT(setMode()));
+
+ this->actionStaysNormal = new QAction(tr("普通模式"), this);
+ this->actionStaysNormal->setCheckable(true);
+ this->actionStaysNormal->setChecked(true);
+ connect(actionStaysNormal, SIGNAL(triggered()), this, SLOT(setMode()));
+
+ // default skin
+ this->actionDefault = new QAction(tr("Default"), this);
+ actionDefault->setCheckable(true);
+ actionDefault->setChecked(true);
+ connect(actionDefault, SIGNAL(triggered()), this, SLOT(slotChangeSkin()));
+
+ // black skin
+ this->actionSkin = new QAction(tr("Black"), this);
+ actionSkin->setCheckable(true);
+ connect(actionSkin, SIGNAL(triggered()), this, SLOT(slotChangeSkin()));
+
+ this->skinMenu = new QMenu(tr("换肤"), this);
+ this->skinMenu->addAction(actionDefault);
+ this->skinMenu->addAction(actionSkin);
+
+ QActionGroup *actSkinGrp = new QActionGroup(this);
+ actSkinGrp->addAction(actionDefault);
+ actSkinGrp->addAction(actionSkin);
+
+ // read user customizated skin files
+ readSkinFiles();
+
+ foreach (QString strSkin, m_strFileList)
+ {
+ QAction *actionNew = new QAction(strSkin, this);
+ actionNew->setCheckable(true);
+ actSkinGrp->addAction(actionNew);
+ this->skinMenu->addAction(actionNew);
+ connect(actionNew, SIGNAL(triggered()), this, SLOT(slotChangeSkin()));
+ }
+
+ this->ag = new QActionGroup(this);
+ this->ag->addAction(actionStaysOnTop);
+ this->ag->addAction(actionStaysOnBottom);
+ this->ag->addAction(actionStaysNormal);
+
+ this->actionQuit = new QAction(tr("退出程序"), this);
+ connect(actionQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
+
+ this->trayMenu = new QMenu(this);
+ this->trayMenu->addAction(actionShow);
+ this->trayMenu->addSeparator();
+ this->trayMenu->addAction(actionStaysOnTop);
+ this->trayMenu->addAction(actionStaysOnBottom);
+ this->trayMenu->addAction(actionStaysNormal);
+ this->trayMenu->addSeparator();
+ this->trayMenu->addMenu(skinMenu);
+ this->trayMenu->addSeparator();
+ this->trayMenu->addAction(actionQuit);
+
+ this->trayIcon = new QSystemTrayIcon(this);
+ this->trayIcon->setIcon(icon);
+ this->trayIcon->setContextMenu(trayMenu);
+ this->trayIcon->show();
+}
+
+void ChineseCalendar::paintEvent(QPaintEvent *)
+{
+ QStyleOption opt;
+ opt.init(this);
+ QPainter painter(this);
+// painter.drawPixmap(0,0,width(),height(),*bg);
+ style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
+
+// painter.setPen(Qt::gray);
+ painter.setPen(QColor(255,121,3,100));
+
+ if(!isTall)
+ {
+ //row
+ painter.drawLine(5,108,390,108);
+ painter.drawLine(5,147,390,147);
+ painter.drawLine(5,186,390,186);
+ painter.drawLine(5,225,390,225);
+ painter.drawLine(5,264,390,264);
+// painter.drawLine(5,303,390,303);
+ }
+ else
+ {
+ painter.drawLine(5,116,390,116);
+ painter.drawLine(5,163,390,163);
+ painter.drawLine(5,210,390,210);
+ painter.drawLine(5,257,390,257);
+// painter.drawLine(5,304,390,304);
+ }
+ //column
+ painter.drawLine(60,69,60,303);
+ painter.drawLine(115,69,115,303);
+ painter.drawLine(170,69,170,303);
+ painter.drawLine(225,69,225,303);
+ painter.drawLine(280,69,280,303);
+ painter.drawLine(335,69,335,303);
+}
+
+void ChineseCalendar::setItemLayout()
+{
+ if(isTall == false)
+ {
+ map->value("1-1")->resizeItem(55,47);
+ map->value("1-2")->resizeItem(55,47);
+ map->value("1-3")->resizeItem(55,47);
+ map->value("1-4")->resizeItem(55,47);
+ map->value("1-5")->resizeItem(55,47);
+ map->value("1-6")->resizeItem(55,47);
+ map->value("1-7")->resizeItem(55,47);
+ map->value("2-1")->resizeItem(55,47);
+ map->value("2-2")->resizeItem(55,47);
+ map->value("2-3")->resizeItem(55,47);
+ map->value("2-4")->resizeItem(55,47);
+ map->value("2-5")->resizeItem(55,47);
+ map->value("2-6")->resizeItem(55,47);
+ map->value("2-7")->resizeItem(55,47);
+ map->value("3-1")->resizeItem(55,47);
+ map->value("3-2")->resizeItem(55,47);
+ map->value("3-3")->resizeItem(55,47);
+ map->value("3-4")->resizeItem(55,47);
+ map->value("3-5")->resizeItem(55,47);
+ map->value("3-6")->resizeItem(55,47);
+ map->value("3-7")->resizeItem(55,47);
+ map->value("4-1")->resizeItem(55,47);
+ map->value("4-2")->resizeItem(55,47);
+ map->value("4-3")->resizeItem(55,47);
+ map->value("4-4")->resizeItem(55,47);
+ map->value("4-5")->resizeItem(55,47);
+ map->value("4-6")->resizeItem(55,47);
+ map->value("4-7")->resizeItem(55,47);
+ map->value("5-1")->resizeItem(55,47);
+ map->value("5-2")->resizeItem(55,47);
+ map->value("5-3")->resizeItem(55,47);
+ map->value("5-4")->resizeItem(55,47);
+ map->value("5-5")->resizeItem(55,47);
+ map->value("5-6")->resizeItem(55,47);
+ map->value("5-7")->resizeItem(55,47);
+ map->value("6-1")->resizeItem(55,47);
+ map->value("6-2")->resizeItem(55,47);
+ map->value("6-3")->resizeItem(55,47);
+ map->value("6-4")->resizeItem(55,47);
+ map->value("6-5")->resizeItem(55,47);
+ map->value("6-6")->resizeItem(55,47);
+ map->value("6-7")->resizeItem(55,47);
+ isTall = true;
+ }
+ map->value("1-1")->move(5,69);
+ map->value("1-2")->move(60,69);
+ map->value("1-3")->move(115,69);
+ map->value("1-4")->move(170,69);
+ map->value("1-5")->move(225,69);
+ map->value("1-6")->move(280,69);
+ map->value("1-7")->move(335,69);
+ map->value("2-1")->move(5,116);
+ map->value("2-2")->move(60,116);
+ map->value("2-3")->move(115,116);
+ map->value("2-4")->move(170,116);
+ map->value("2-5")->move(225,116);
+ map->value("2-6")->move(280,116);
+ map->value("2-7")->move(335,116);
+ map->value("3-1")->move(5,163);
+ map->value("3-2")->move(60,163);
+ map->value("3-3")->move(115,163);
+ map->value("3-4")->move(170,163);
+ map->value("3-5")->move(225,163);
+ map->value("3-6")->move(280,163);
+ map->value("3-7")->move(335,163);
+ map->value("4-1")->move(5,210);
+ map->value("4-2")->move(60,210);
+ map->value("4-3")->move(115,210);
+ map->value("4-4")->move(170,210);
+ map->value("4-5")->move(225,210);
+ map->value("4-6")->move(280,210);
+ map->value("4-7")->move(335,210);
+ map->value("5-1")->move(5,257);
+ map->value("5-2")->move(60,257);
+ map->value("5-3")->move(115,257);
+ map->value("5-4")->move(170,257);
+ map->value("5-5")->move(225,257);
+ map->value("5-6")->move(280,257);
+ map->value("5-7")->move(335,257);
+ map->value("6-1")->move(5,304);
+ map->value("6-2")->move(60,304);
+ map->value("6-3")->move(115,304);
+ map->value("6-4")->move(170,304);
+ map->value("6-5")->move(225,304);
+ map->value("6-6")->move(280,304);
+ map->value("6-7")->move(335,304);
+}
+
+void ChineseCalendar::resetItemLayout()
+{
+ map->value("1-1")->resizeItem(55,39);
+ map->value("1-2")->resizeItem(55,39);
+ map->value("1-3")->resizeItem(55,39);
+ map->value("1-4")->resizeItem(55,39);
+ map->value("1-5")->resizeItem(55,39);
+ map->value("1-6")->resizeItem(55,39);
+ map->value("1-7")->resizeItem(55,39);
+ map->value("2-1")->resizeItem(55,39);
+ map->value("2-2")->resizeItem(55,39);
+ map->value("2-3")->resizeItem(55,39);
+ map->value("2-4")->resizeItem(55,39);
+ map->value("2-5")->resizeItem(55,39);
+ map->value("2-6")->resizeItem(55,39);
+ map->value("2-7")->resizeItem(55,39);
+ map->value("3-1")->resizeItem(55,39);
+ map->value("3-2")->resizeItem(55,39);
+ map->value("3-3")->resizeItem(55,39);
+ map->value("3-4")->resizeItem(55,39);
+ map->value("3-5")->resizeItem(55,39);
+ map->value("3-6")->resizeItem(55,39);
+ map->value("3-7")->resizeItem(55,39);
+ map->value("4-1")->resizeItem(55,39);
+ map->value("4-2")->resizeItem(55,39);
+ map->value("4-3")->resizeItem(55,39);
+ map->value("4-4")->resizeItem(55,39);
+ map->value("4-5")->resizeItem(55,39);
+ map->value("4-6")->resizeItem(55,39);
+ map->value("4-7")->resizeItem(55,39);
+ map->value("5-1")->resizeItem(55,39);
+ map->value("5-2")->resizeItem(55,39);
+ map->value("5-3")->resizeItem(55,39);
+ map->value("5-4")->resizeItem(55,39);
+ map->value("5-5")->resizeItem(55,39);
+ map->value("5-6")->resizeItem(55,39);
+ map->value("5-7")->resizeItem(55,39);
+ map->value("6-1")->resizeItem(55,39);
+ map->value("6-2")->resizeItem(55,39);
+ map->value("6-3")->resizeItem(55,39);
+ map->value("6-4")->resizeItem(55,39);
+ map->value("6-5")->resizeItem(55,39);
+ map->value("6-6")->resizeItem(55,39);
+ map->value("6-7")->resizeItem(55,39);
+ isTall = false;
+
+ map->value("1-1")->move(5,69);
+ map->value("1-2")->move(60,69);
+ map->value("1-3")->move(115,69);
+ map->value("1-4")->move(170,69);
+ map->value("1-5")->move(225,69);
+ map->value("1-6")->move(280,69);
+ map->value("1-7")->move(335,69);
+ map->value("2-1")->move(5,108);
+ map->value("2-2")->move(60,108);
+ map->value("2-3")->move(115,108);
+ map->value("2-4")->move(170,108);
+ map->value("2-5")->move(225,108);
+ map->value("2-6")->move(280,108);
+ map->value("2-7")->move(335,108);
+ map->value("3-1")->move(5,147);
+ map->value("3-2")->move(60,147);
+ map->value("3-3")->move(115,147);
+ map->value("3-4")->move(170,147);
+ map->value("3-5")->move(225,147);
+ map->value("3-6")->move(280,147);
+ map->value("3-7")->move(335,147);
+ map->value("4-1")->move(5,186);
+ map->value("4-2")->move(60,186);
+ map->value("4-3")->move(115,186);
+ map->value("4-4")->move(170,186);
+ map->value("4-5")->move(225,186);
+ map->value("4-6")->move(280,186);
+ map->value("4-7")->move(335,186);
+ map->value("5-1")->move(5,225);
+ map->value("5-2")->move(60,225);
+ map->value("5-3")->move(115,225);
+ map->value("5-4")->move(170,225);
+ map->value("5-5")->move(225,225);
+ map->value("5-6")->move(280,225);
+ map->value("5-7")->move(335,225);
+ map->value("6-1")->move(5,264);
+ map->value("6-2")->move(60,264);
+ map->value("6-3")->move(115,264);
+ map->value("6-4")->move(170,264);
+ map->value("6-5")->move(225,264);
+ map->value("6-6")->move(280,264);
+ map->value("6-7")->move(335,264);
+}
+
+void ChineseCalendar::setTime()
+{
+ QDateTime dateTime = QDateTime::currentDateTime();
+ this->label_15->setText(dateTime.toString("hh:mm:ss"));
+}
+
+void ChineseCalendar::resetcalendardate(QString day)
+{
+ QDate date(this->YearSelect->currentText().toInt(),this->monthCombo->currentText().toInt(),day.toInt());
+ clearbackground();
+ QString weekday;
+ if(date.toString("ddd") == "Mon")
+ weekday = "星期一";
+ if(date.toString("ddd") == "Tue")
+ weekday = "星期二";
+ if(date.toString("ddd") == "Wed")
+ weekday = "星期三";
+ if(date.toString("ddd") == "Thu")
+ weekday = "星期四";
+ if(date.toString("ddd") == "Fri")
+ weekday = "星期五";
+ if(date.toString("ddd") == "Sat")
+ weekday = "星期六";
+ if(date.toString("ddd") == "Sun")
+ weekday = "星期日";
+ QString selecttime = date.toString("yyyy-MM-dd %1").arg(weekday);
+ struct CCalendar d;
+ mycalendat->ctcl_solar_to_lunar(date.year(),date.month(),date.day(),&d);
+ QString selectmonth = d.cmonth;
+ if (selectmonth == "一月")
+ selectmonth = "正月";
+ if (selectmonth == "十一月")
+ selectmonth = "冬月";
+ if (selectmonth == "十二月")
+ selectmonth = "腊月";
+ struct CCalendar f = fixshengxiao(date);
+ QString selectday = QString("农历 %1%2").arg(selectmonth).arg(d.cday);
+ QString selectyear = QString("%1年(%2年)").arg(f.ganzhi).arg(f.shengxiao);
+ this->label_10->setText(day);
+ this->label_12->setText(selecttime);
+ this->label_13->setText(selectday);
+ this->label_14->setText(selectyear);
+
+ QString cnote=QString("");
+ QString haveplan=QString("今日有行程安排");
+ QString noplan=QString("今日无行程安排");
+ cnote=mycalendat->ctcl_displaydata(date.year(),date.month(),date.day());
+ int num=cnote.count();
+ while( num > 0 && cnote.at(num-1).isSpace())
+ {
+ num--;
+ }
+ if(cnote.isEmpty() || num == 0)
+ this->label_19->setText(noplan);
+ else
+ this->label_19->setText(haveplan);
+
+ QString yi = QString("");
+ QString ji = QString("");
+ QString selectyi = QString("%1").arg(f.yi);
+ QStringList selectyilist = selectyi.split("、");
+ if(selectyilist.count() == 0 )
+ yi =QString("");
+ if(selectyilist.count() >= 5)
+ yi = QString("").append(selectyilist.at(0)).append("\n").append(selectyilist.at(1)).append("\n").append(selectyilist.at(2)).append("\n").append(selectyilist.at(3)).append("\n").append(selectyilist.at(4));
+ if(selectyilist.count() == 4)
+ yi = QString("").append(selectyilist.at(0)).append("\n").append(selectyilist.at(1)).append("\n").append(selectyilist.at(2)).append("\n").append(selectyilist.at(3));
+ if (selectyilist.count() == 3)
+ yi = QString("").append(selectyilist.at(0)).append("\n").append(selectyilist.at(1)).append("\n").append(selectyilist.at(2));
+ if (selectyilist.count() == 2)
+ yi = QString("").append(selectyilist.at(0)).append("\n").append(selectyilist.at(1));
+ if (selectyilist.count() == 1)
+ yi = QString("").append(selectyilist.at(0)).append("\n");
+
+ QString selectji = QString("%2").arg(f.ji);
+ QStringList selectjilist = selectji.split("、");
+ if(selectjilist.count() == 0 )
+ ji =QString("");
+ if(selectjilist.count() >= 5)
+ ji = QString("").append(selectjilist.at(0)).append("\n").append(selectjilist.at(1)).append("\n").append(selectjilist.at(2)).append("\n").append(selectjilist.at(3)).append("\n").append(selectjilist.at(4));
+ if(selectjilist.count() == 4)
+ ji = QString("").append(selectjilist.at(0)).append("\n").append(selectjilist.at(1)).append("\n").append(selectjilist.at(2)).append("\n").append(selectjilist.at(3));
+ if (selectjilist.count() == 3)
+ ji = QString("").append(selectjilist.at(0)).append("\n").append(selectjilist.at(1)).append("\n").append(selectjilist.at(2));
+ if (selectjilist.count() == 2)
+ ji = QString("").append(selectjilist.at(0)).append("\n").append(selectjilist.at(1));
+ if (selectjilist.count() == 1)
+ ji = QString("").append(selectjilist.at(0)).append("\n");
+ this->label_17->setText(yi);
+ this->label_18->setText(ji);
+}
+
+CCalendar ChineseCalendar::fixshengxiao(QDate date)
+{
+ QDate fixdate = date.addDays(1);
+ struct CCalendar fix;
+ mycalendat->ctcl_solar_to_lunar(fixdate.year(),fixdate.month(),fixdate.day(),&fix);
+ if (fix.sterm == "立春")
+ {
+ fixdate = fixdate.addDays(-2);
+ mycalendat->ctcl_solar_to_lunar(fixdate.year(),fixdate.month(),fixdate.day(),&fix);
+ return fix;
+ }
+ else
+ {
+ fixdate = fixdate.addDays(-1);
+ mycalendat->ctcl_solar_to_lunar(fixdate.year(),fixdate.month(),fixdate.day(),&fix);
+ return fix;
+ }
+}
+
+void ChineseCalendar::backtoday()
+{
+ QDate today = QDate::currentDate();
+ YearSelect->setCurrentIndex(today.year() - 1900);
+ monthCombo->setCurrentIndex(today.month() - 1);
+ setCalendar();
+
+}
+
+void ChineseCalendar::setCalendar()
+{
+ struct CCalendar c;
+ cleardate();
+ QDate date(selectedDate.year(), selectedDate.month(), 1);
+ while (date.month() == selectedDate.month()) {
+ int weekDay = date.dayOfWeek();
+ mycalendat->ctcl_solar_to_lunar(selectedDate.year(),selectedDate.month(),date.day(),&c);
+ QString mycday;
+ mycday=c.cday;
+ if(c.sterm.at(0) >=QChar('0') && c.sterm.at(0) <= QChar('9'))
+ mycday=c.cday;
+ else
+ {
+ if(c.laststerm)
+ mycday=c.cday;
+ else
+ mycday=c.sterm;
+ }
+ if(c.ischoliday)
+ mycday=c.choliday;
+ int day = date.day();
+ if (weekDay == 7)
+ weekDay = 0;
+ int row = (day + (6 - weekDay) + 7 -1)/7;
+ QString site = QString("%1-%2").arg(row).arg(weekDay+1);
+ map->value(site)->setday(date.day());
+ map->value(site)->setcday(mycday);
+ if(weekDay == 6 || weekDay == 0)
+ map->value(site)->setcolor();
+ date = date.addDays(1);
+ }
+
+ if (!map->value("6-1")->day().isNull())
+ {
+ map->value("6-1")->show();
+ map->value("6-2")->show();
+ map->value("6-3")->show();
+ map->value("6-4")->show();
+ map->value("6-5")->show();
+ map->value("6-6")->show();
+ map->value("6-7")->show();
+ resetItemLayout();
+ }
+
+ QDate today = QDate::currentDate();
+ if(today.year() == selectedDate.year() && today.month() == selectedDate.month())
+ {
+ int d = today.day();
+ int w = today.dayOfWeek();
+ if (w == 7)
+ w = 0;
+ int r = (d + (6 - w) + 7 -1)/7;
+ QString add = QString("%1-%2").arg(r).arg(w+1);
+ resetcalendardate(QString::number(today.day()));
+ map->value(add)->setToday();
+ }
+}
+
+void ChineseCalendar::clearbackground()
+{
+ map->value("1-1")->clearstyle();
+ map->value("1-2")->clearstyle();
+ map->value("1-3")->clearstyle();
+ map->value("1-4")->clearstyle();
+ map->value("1-5")->clearstyle();
+ map->value("1-6")->clearstyle();
+ map->value("1-7")->clearstyle();
+ map->value("2-1")->clearstyle();
+ map->value("2-2")->clearstyle();
+ map->value("2-3")->clearstyle();
+ map->value("2-4")->clearstyle();
+ map->value("2-5")->clearstyle();
+ map->value("2-6")->clearstyle();
+ map->value("2-7")->clearstyle();
+ map->value("3-1")->clearstyle();
+ map->value("3-2")->clearstyle();
+ map->value("3-3")->clearstyle();
+ map->value("3-4")->clearstyle();
+ map->value("3-5")->clearstyle();
+ map->value("3-6")->clearstyle();
+ map->value("3-7")->clearstyle();
+ map->value("4-1")->clearstyle();
+ map->value("4-2")->clearstyle();
+ map->value("4-3")->clearstyle();
+ map->value("4-4")->clearstyle();
+ map->value("4-5")->clearstyle();
+ map->value("4-6")->clearstyle();
+ map->value("4-7")->clearstyle();
+ map->value("5-1")->clearstyle();
+ map->value("5-2")->clearstyle();
+ map->value("5-3")->clearstyle();
+ map->value("5-4")->clearstyle();
+ map->value("5-5")->clearstyle();
+ map->value("5-6")->clearstyle();
+ map->value("5-7")->clearstyle();
+ map->value("6-1")->clearstyle();
+ map->value("6-2")->clearstyle();
+ map->value("6-3")->clearstyle();
+ map->value("6-4")->clearstyle();
+ map->value("6-5")->clearstyle();
+ map->value("6-6")->clearstyle();
+ map->value("6-7")->clearstyle();
+}
+
+void ChineseCalendar::cleardate()
+{
+ map->value("1-1")->clear();
+ map->value("1-2")->clear();
+ map->value("1-3")->clear();
+ map->value("1-4")->clear();
+ map->value("1-5")->clear();
+ map->value("1-6")->clear();
+ map->value("1-7")->clear();
+ map->value("2-1")->clear();
+ map->value("2-2")->clear();
+ map->value("2-3")->clear();
+ map->value("2-4")->clear();
+ map->value("2-5")->clear();
+ map->value("2-6")->clear();
+ map->value("2-7")->clear();
+ map->value("3-1")->clear();
+ map->value("3-2")->clear();
+ map->value("3-3")->clear();
+ map->value("3-4")->clear();
+ map->value("3-5")->clear();
+ map->value("3-6")->clear();
+ map->value("3-7")->clear();
+ map->value("4-1")->clear();
+ map->value("4-2")->clear();
+ map->value("4-3")->clear();
+ map->value("4-4")->clear();
+ map->value("4-5")->clear();
+ map->value("4-6")->clear();
+ map->value("4-7")->clear();
+ map->value("5-1")->clear();
+ map->value("5-2")->clear();
+ map->value("5-3")->clear();
+ map->value("5-4")->clear();
+ map->value("5-5")->clear();
+ map->value("5-6")->clear();
+ map->value("5-7")->clear();
+ map->value("6-1")->clear();
+ map->value("6-2")->clear();
+ map->value("6-3")->clear();
+ map->value("6-4")->clear();
+ map->value("6-5")->clear();
+ map->value("6-6")->clear();
+ map->value("6-7")->clear();
+ map->value("6-1")->hide();
+ map->value("6-2")->hide();
+ map->value("6-3")->hide();
+ map->value("6-4")->hide();
+ map->value("6-5")->hide();
+ map->value("6-6")->hide();
+ map->value("6-7")->hide();
+ setItemLayout();
+}
+
+void ChineseCalendar::mousePressEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ {
+ if (map->value("6-1")->isHidden())
+ {
+ if (event->x()>5 && event->x()<390 && event->y()>69 && event->y()<304)
+ moveable = false;
+ else moveable = true;
+ }
+ else
+ {
+ if (event->x()>5 && event->x()<390 && event->y()>69 && event->y()<304)
+ moveable = false ;
+ else moveable = true;
+ }
+ dragPos = event->globalPos() - frameGeometry().topLeft();
+ event->accept();
+ }
+
+}
+
+void ChineseCalendar::mouseMoveEvent(QMouseEvent *event)
+{
+ if (event->buttons() & Qt::LeftButton && moveable == true )
+ {
+ if (map->value("6-1")->isHidden())
+ {
+ if (event->x()>5 && event->x()<390 && event->y()>69 && event->y()<304)
+ return ;
+ else move(event->globalPos() - dragPos);
+ }
+ else
+ {
+ if (event->x()>5 && event->x()<390 && event->y()>69 && event->y()<304)
+ return ;
+ else move(event->globalPos() - dragPos);
+ }
+ setWindowOpacity(0.5);
+ }
+ event->accept();
+
+}
+
+void ChineseCalendar::mouseReleaseEvent(QMouseEvent *event)
+{
+ if (event->button() == Qt::LeftButton)
+ {
+ setWindowOpacity(1);
+ }
+ event->accept();
+}
+
+void ChineseCalendar::setMonth(int month)
+{
+
+ int day=0;
+ int newmonth = month+1;
+ if(newmonth<=0)
+ {
+ newmonth = 12;
+ monthCombo->setCurrentIndex(11);
+ }
+ if(newmonth>12)
+ {
+ newmonth = 1;
+ }
+ if(newmonth ==1 || newmonth ==3 || newmonth == 5 || newmonth == 7 || newmonth == 8 || newmonth == 10 || newmonth ==12)
+ {
+ day =31;
+ }
+ else if(newmonth ==4 || newmonth==6 || newmonth ==9 || newmonth ==11)
+ {
+ day =30;
+ }
+ if(selectedDate.year()%4 ==0 && selectedDate.year()%100!=0)
+ {
+ day = 29;
+ }
+ else if(selectedDate.year()%400 ==0)
+ {
+ day = 29;
+ }
+ else
+ {
+ day = 28;
+ }
+ selectedDate = QDate(selectedDate.year(),newmonth,day);
+ setCalendar();
+}
+
+void ChineseCalendar::setYear(int year)
+{
+ selectedDate = QDate(year+1900, selectedDate.month(), selectedDate.day());
+ setCalendar();
+}
+
+void ChineseCalendar::on_TbpreviousYear_clicked()
+{
+ if(YearSelect->currentIndex() != 0)
+ YearSelect->setCurrentIndex(YearSelect->currentIndex()-1);
+}
+
+void ChineseCalendar::on_TbpreviousMonth_clicked()
+{
+ if (monthCombo->currentIndex() == 0 && YearSelect->currentIndex() != 0)
+ {
+ YearSelect->setCurrentIndex(YearSelect->currentIndex()-1);
+ monthCombo->setCurrentIndex(11);
+ }
+ else
+ monthCombo->setCurrentIndex(monthCombo->currentIndex()-1);
+}
+
+void ChineseCalendar::on_TbnextMonth_clicked()
+{
+ if (monthCombo->currentIndex() == 11 && YearSelect->currentIndex() != 150)
+ {
+ YearSelect->setCurrentIndex(YearSelect->currentIndex()+1);
+ monthCombo->setCurrentIndex(0);
+ }
+ else
+ monthCombo->setCurrentIndex(monthCombo->currentIndex()+1);
+}
+
+void ChineseCalendar::on_TbnextYear_clicked()
+{
+ if(YearSelect->currentIndex() != 150)
+ YearSelect->setCurrentIndex(YearSelect->currentIndex()+1);
+}
+
+void ChineseCalendar::showOrHide()
+{
+ if(this->isHidden())
+ {
+ this->show();
+ }else
+ this->hide();
+}
+
+void ChineseCalendar::setMode()
+{
+ if(this->actionStaysOnTop->isChecked())
+ {
+ this->setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint);
+ this->show();
+ } else if(this->actionStaysOnBottom->isChecked())
+ {
+ this->setWindowFlags(Qt::WindowStaysOnBottomHint | Qt::FramelessWindowHint);
+ this->show();
+ } else
+ {
+ this->setWindowFlags(Qt::FramelessWindowHint);
+ this->show();
+ }
+}
+
+void ChineseCalendar::slotChangeSkin()
+{
+ QAction *action = qobject_cast<QAction *>(sender());
+ QString strSkin = action->text();
+
+ if (!strSkin.isEmpty())
+ {
+ if (strSkin.toLower() == "default" || strSkin.toLower() == "black")
+ {
+ changeSkin(strSkin.toLower());
+ }
+ else
+ {
+ changeSkin(strSkin, false);
+ }
+ }
+}
+
+void ChineseCalendar::changeSkin(const QString &skin, bool bFlag)
+{
+ QString strFilename("");
+
+ if (bFlag)
+ {
+#ifdef DEBUG
+ strFilename = QCoreApplication::applicationDirPath() + QString("/skin/%1-skin.qss").arg(skin);
+#else
+ strFilename = QString("/usr/share/chinese-calendar/skin/%1-skin.qss").arg(skin);
+#endif
+ }
+ else
+ {
+ strFilename = QDir::homePath() + QString("/.local/share/chinese-calendar/skins/%1.qss").arg(skin);
+ }
+
+ QFile qss(strFilename);
+ if (qss.open(QFile::ReadOnly))
+ {
+ qApp->setStyleSheet(qss.readAll());
+ qss.close();
+ }
+}
+
+void ChineseCalendar::readSkinFiles()
+{
+ QString systemdirectory;
+ systemdirectory = QDir::homePath() + "/.local/share/chinese-calendar/skins/";
+
+ QDir dir(systemdirectory);
+ foreach(QFileInfo info, dir.entryInfoList())
+ {
+ if (info.isFile() && info.suffix() == "qss")
+ {
+ m_strFileList << info.baseName();
+ }
+ }
+}
=== added file 'chinesecalendar.h'
--- chinesecalendar.h 1970-01-01 00:00:00 +0000
+++ chinesecalendar.h 2013-05-06 14:54:28 +0000
@@ -0,0 +1,111 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#ifndef MYCALENDAR_H
+#define MYCALENDAR_H
+
+#include <QWidget>
+#include <QDate>
+#include <QSystemTrayIcon>
+#include <QMenu>
+#include <QProcess>
+#include <QGraphicsItem>
+#include <QtGui>
+#include <QMap>
+#include <QPixmap>
+#include <QSystemTrayIcon>
+#include <QMenu>
+#include <QAction>
+#include <QActionGroup>
+#include "ui_calendar.h"
+#include "ccbo.h"
+#include "dateitem.h"
+#include "cnote.h"
+class CCBO;
+class ChineseCalendar: public QWidget, private Ui::Calendar
+{
+ Q_OBJECT
+public:
+ explicit ChineseCalendar(QWidget *parent = 0);
+ virtual ~ChineseCalendar();
+ QIcon icon, icon64;
+ int clickday;
+
+private:
+ void setCalendar();
+ void cleardate();
+ void clearbackground();
+ void createTray();
+ void setItemLayout();
+ void resetItemLayout();
+ CCalendar fixshengxiao(QDate);
+ Cnote *note;
+
+ void paintEvent(QPaintEvent *);
+
+ bool moveable;
+ bool isTall;
+ QPoint dragPos;
+ QDate selectedDate;
+ CCBO *mycalendat;
+ QMap<QString, DateItem*> *map;
+
+ QPixmap *bg;
+ QSystemTrayIcon *trayIcon;
+ QMenu *trayMenu;
+ QActionGroup *ag;
+ QAction *actionShow, *actionStaysOnTop, *actionStaysOnBottom, *actionStaysNormal, *actionQuit;
+ QAction *actionDefault;
+ QAction *actionSkin;
+ QMenu *skinMenu;
+
+public slots:
+ void setMonth(int month);
+ void setYear(int year);
+ void setTime();
+ void resetcalendardate(QString);
+ void backtoday();
+ void showOrHide();
+ void setMode();
+ void savedata(QString);
+ void setclickday(QString);
+
+
+protected:
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+
+private slots:
+ void on_TbnextYear_clicked();
+ void on_TbnextMonth_clicked();
+ void on_TbpreviousMonth_clicked();
+ void on_TbpreviousYear_clicked();
+ void slotChangeSkin();
+private:
+ void changeSkin(const QString &, bool bFlag = true);
+ void readSkinFiles();
+
+ QStringList m_strFileList;
+};
+
+#endif
=== added file 'cnote.cpp'
--- cnote.cpp 1970-01-01 00:00:00 +0000
+++ cnote.cpp 2013-05-06 14:54:28 +0000
@@ -0,0 +1,89 @@
+#include "cnote.h"
+#include "ccbo.h"
+#include <QtGui>
+
+Cnote::Cnote(QWidget *parent) :
+ QDialog(parent)
+{
+ setWindowFlags(Qt::FramelessWindowHint);
+ setAttribute(Qt::WA_TranslucentBackground);
+ //pix.load(":/img/note.png",0,Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither);
+ resize(224,280);
+ textedit = new QTextEdit(this); textedit->setObjectName("textedit");
+ ok = new QPushButton(this); ok->setObjectName("ok");
+ cancel = new QPushButton(this);cancel->setObjectName("cancel");
+ datelabel = new QLabel(this);datelabel->setObjectName("datelabel");
+ clearplan = new QPushButton(this);clearplan->setObjectName("clearplan");
+ textedit->resize(155,140);
+ textedit->move(30,60);
+ ok->resize(30,30);
+ ok->move(120,210);
+ cancel->resize(30,30);
+ cancel->move(160,210);
+ clearplan->resize(70,30);
+ clearplan->setText("清空计划");
+ clearplan->move(30,210);
+ datelabel->resize(120,20);
+ datelabel->move(50,40);
+
+ //ok->setStyleSheet("QPushButton{background-color:transparent;}");
+ //cancel->setStyleSheet("QPushButton{background-color:transparent;border:0 solid}");
+ //datelabel->setStyleSheet("QLabel{background-color:transparent;border:0 solid;}");
+ //clearplan->setStyleSheet("QPushButton{background-color:transparent;}");
+ //ok->setIcon(QIcon(":/img/ok.png"));
+ //cancel->setIcon(QIcon(":/img/no.png"));
+ //textedit->setStyleSheet("QTextEdit{background-color:transparent;border:0 solid;}");
+ connect(this->ok,SIGNAL(clicked()),this,SLOT(savenote()));
+ connect(this->cancel,SIGNAL(clicked()),this,SLOT(cancelnote()));
+ connect(this->clearplan,SIGNAL(clicked()),this,SLOT(clean()));
+
+}
+
+Cnote::~Cnote()
+{
+
+}
+
+void Cnote::clean()
+{
+ this->textedit->clear();
+}
+
+void Cnote::savenote()
+{
+ emit save(this->textedit->toPlainText());
+
+ this->hide();
+ this->textedit->clear();
+}
+
+void Cnote::cancelnote()
+{
+ this->hide();
+ this->textedit->clear();
+}
+
+void Cnote::paintEvent(QPaintEvent *)
+{
+ QPainter painter(this);
+ //painter.drawPixmap(0,0,pix.scaled(this->size(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
+ QStyleOption opt;
+ opt.init(this);
+ style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
+}
+
+void Cnote::mouseMoveEvent(QMouseEvent *event)
+{
+ move(event->globalPos() - dragPos);
+ setWindowOpacity(0.5);
+}
+
+void Cnote::mousePressEvent(QMouseEvent *event)
+{
+ dragPos = event->globalPos() - frameGeometry().topLeft();
+}
+
+void Cnote::mouseReleaseEvent(QMouseEvent *event)
+{
+ setWindowOpacity(1.0);
+}
=== added file 'cnote.h'
--- cnote.h 1970-01-01 00:00:00 +0000
+++ cnote.h 2013-05-06 14:54:28 +0000
@@ -0,0 +1,39 @@
+#ifndef CNOTE_H
+#define CNOTE_H
+
+#include <QWidget>
+#include <QtGui>
+#include <QDialog>
+
+class Cnote : public QDialog
+{
+ Q_OBJECT
+public:
+ explicit Cnote(QWidget *parent = 0);
+ ~Cnote();
+ QPixmap pix;
+ void paintEvent(QPaintEvent *);
+ QPoint dragPos;
+ QTextEdit *textedit;
+ QLabel *datelabel;
+protected:
+ void mouseMoveEvent(QMouseEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+private:
+ QPushButton *ok;
+ QPushButton *cancel;
+ QPushButton *clearplan;
+public slots:
+ void savenote();
+ void cancelnote();
+ void clean();
+
+signals:
+ void save(QString);
+
+
+
+};
+
+#endif // CNOTE_H
=== added file 'dateitem.cpp'
--- dateitem.cpp 1970-01-01 00:00:00 +0000
+++ dateitem.cpp 2013-05-06 14:54:28 +0000
@@ -0,0 +1,195 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#include "dateitem.h"
+//extern Cnote *note;
+
+DateItem::DateItem(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::DateItem)
+{
+ ui->setupUi(this);
+ QFont font ;
+ font.setPointSize(15);
+ QFont font1;
+ font1.setPointSize(10);
+ ui->label->setFont(font);
+ ui->label_2->setFont(font1);
+
+ connect(ui->datemaskwidget, SIGNAL(clicked()), this, SLOT(click()));
+ connect(ui->datemaskwidget, SIGNAL(clickday()), this, SLOT(clickday()));
+
+ ui->datemaskwidget->installEventFilter(this);
+
+ this->isFocus = false;
+ this->oriItemStyle = this->styleSheet();
+ this->oriDayStyle = ui->label->styleSheet();
+ this->oriCDayStyle = ui->label_2->styleSheet();
+ this->clickiItemStyle = "QWidget{background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(238, 93, 0, 255), stop:1 rgba(255, 121, 2, 200));}";
+ this->clickDayStyle = "QLabel{color:rgb(255,255,255);}";
+ this->clickCDayStyle = "QLabel{color:rgb(255,255,255);}";
+ this->hoverItemStyle = "QWidget{background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(238, 93, 0, 155), stop:1 rgba(255, 121, 2, 100));}";
+ this->hoverDayStyle = "QLabel{color:rgb(255,255,255);}";
+ this->hoverCDayStyle = "QLabel{color:rgb(255,255,255);}";
+}
+
+DateItem::~DateItem()
+{
+ delete ui;
+}
+
+bool DateItem::eventFilter(QObject *o, QEvent *ev)
+{
+ if(o == ui->datemaskwidget){
+ if(ev->type() == QEvent::Enter){
+ this->enter();
+ }else if(ev->type() == QEvent::Leave){
+ this->leave();
+ }else{
+ return QObject::eventFilter(o,ev);
+ }
+ }
+}
+
+void DateItem::resizeItem(int x, int y)
+{
+ this->resize(x,y);
+ ui->datemaskwidget->resize(x,y);
+ if ( y == 47 )
+ {
+ ui->label->resize(55,27);
+ ui->label->move(0,0);
+ ui->label_2->resize(55,20);
+ ui->label_2->move(0,27);
+ }
+ if( y == 39 )
+ {
+ ui->label->resize(55,22);
+ ui->label->move(0,0);
+ ui->label_2->resize(55,17);
+ ui->label_2->move(0,22);
+ }
+}
+
+void DateItem::enter()
+{
+ if (!ui->label->text().isNull())
+ {
+ this->setStyleSheet(this->hoverItemStyle);
+ ui->label->setStyleSheet(this->hoverDayStyle);
+ ui->label_2->setStyleSheet(this->hoverCDayStyle);
+ }
+}
+
+void DateItem::leave()
+{
+ if(this->isFocus){
+ this->setStyleSheet(this->clickiItemStyle);
+ ui->label->setStyleSheet(this->clickDayStyle);
+ ui->label_2->setStyleSheet(this->clickCDayStyle);
+ }else{
+ this->setStyleSheet(this->oriItemStyle);
+ ui->label->setStyleSheet(this->oriDayStyle);
+ ui->label_2->setStyleSheet(this->oriCDayStyle);
+ }
+}
+
+
+void DateItem::click()
+{
+ if (!ui->label->text().isNull())
+ {
+ emit clicked(ui->label->text());
+ this->setStyleSheet(this->clickiItemStyle);
+ ui->label->setStyleSheet(this->clickDayStyle);
+ ui->label_2->setStyleSheet(this->clickCDayStyle);
+ this->isFocus = true;
+ }
+}
+
+void DateItem::clickday()
+{
+ if(!ui->label->text().isNull())
+ {
+ emit day(ui->label->text());
+// note->show();
+ }
+}
+
+void DateItem::setday(int day)
+{
+ ui->label->setText(QString::number(day));
+}
+
+void DateItem::setcday(QString cday)
+{
+ ui->label_2->setText(cday);
+}
+
+QString DateItem::day()
+{
+ return ui->label->text();
+}
+
+QString DateItem::cday()
+{
+ return ui->label_2->text();
+}
+
+void DateItem::clear()
+{
+ ui->label->clear();
+ ui->label_2->clear();
+ this->clearstyle();
+}
+
+void DateItem::clearstyle()
+{
+ this->setStyleSheet(this->oriItemStyle);
+ ui->label->setStyleSheet(this->oriDayStyle);
+ ui->label_2->setStyleSheet(this->oriCDayStyle);
+ this->isFocus = false;
+}
+
+void DateItem::setcolor()
+{
+ QPalette pa;
+ pa.setColor(QPalette::WindowText,Qt::red);
+ ui->label->setPalette(pa);
+ ui->label_2->setPalette(pa);
+}
+
+void DateItem::setToday()
+{
+ this->setStyleSheet(this->clickiItemStyle);
+ ui->label->setStyleSheet(this->clickDayStyle);
+ ui->label_2->setStyleSheet(this->clickCDayStyle);
+ this->isFocus = true;
+}
+
+void DateItem::paintEvent(QPaintEvent *)
+{
+ QPainter painter(this);
+ QStyleOption opt;
+ opt.init(this);
+ style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
+}
=== renamed file 'dateitem.cpp' => 'dateitem.cpp.moved'
=== added file 'dateitem.h'
--- dateitem.h 1970-01-01 00:00:00 +0000
+++ dateitem.h 2013-05-06 14:54:28 +0000
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#ifndef DATEITEM_H
+#define DATEITEM_H
+
+#include <QtGui>
+#include <QWidget>
+#include "datemaskwidget.h"
+#include "ui_dateitem.h"
+
+namespace Ui {
+class DateItem;
+}
+
+class DateItem : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit DateItem(QWidget *parent = 0);
+ ~DateItem();
+ int row;
+ int column;
+ void setday(int day);
+ void setcday(QString cday);
+ void clear();
+ void clearstyle();
+ void setcolor();
+ void setToday();
+ QString day();
+ QString cday();
+ void resizeItem(int x,int y);
+
+protected:
+ void paintEvent(QPaintEvent *);
+ bool eventFilter(QObject *o, QEvent *ev);
+ void enter();
+ void leave();
+
+public slots:
+ void click();
+ void clickday();
+
+signals:
+ void clicked(QString);
+ void day(QString);
+
+private:
+ Ui::DateItem *ui;
+ bool isFocus;
+ QString oriItemStyle, oriDayStyle, oriCDayStyle;
+ QString clickiItemStyle, clickDayStyle, clickCDayStyle;
+ QString hoverItemStyle, hoverDayStyle, hoverCDayStyle;
+};
+
+#endif // DATEITEM_H
=== renamed file 'dateitem.h' => 'dateitem.h.moved'
=== added file 'dateitem.ui'
--- dateitem.ui 1970-01-01 00:00:00 +0000
+++ dateitem.ui 2013-05-06 14:54:28 +0000
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DateItem</class>
+ <widget class="QWidget" name="DateItem">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>55</width>
+ <height>47</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true"/>
+ </property>
+ <widget class="QLabel" name="label">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>55</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>17</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_2">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>27</y>
+ <width>55</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>端午节</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="DateMaskWidget" name="datemaskwidget" native="true">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>55</width>
+ <height>47</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>DateMaskWidget</class>
+ <extends>QWidget</extends>
+ <header>datemaskwidget.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
=== renamed file 'dateitem.ui' => 'dateitem.ui.moved'
=== added file 'datemaskwidget.cpp'
--- datemaskwidget.cpp 1970-01-01 00:00:00 +0000
+++ datemaskwidget.cpp 2013-05-06 14:54:28 +0000
@@ -0,0 +1,41 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#include "datemaskwidget.h"
+#include <QDebug>
+#include "chinesecalendar.h"
+DateMaskWidget::DateMaskWidget(QWidget *parent) :
+ QWidget(parent)
+{
+
+}
+
+void DateMaskWidget::mousePressEvent(QMouseEvent *ev)
+{
+ if( ev->button() == Qt::LeftButton)
+ emit clicked();
+ if( ev->button() == Qt::LeftButton && ev->type() == QEvent::MouseButtonDblClick)
+ {
+ emit clickday();
+ }
+ ev->ignore();
+}
=== renamed file 'datemaskwidget.cpp' => 'datemaskwidget.cpp.moved'
=== added file 'datemaskwidget.h'
--- datemaskwidget.h 1970-01-01 00:00:00 +0000
+++ datemaskwidget.h 2013-05-06 14:54:28 +0000
@@ -0,0 +1,48 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#ifndef DATEMASKWIDGET_H
+#define DATEMASKWIDGET_H
+
+#include <QWidget>
+#include <QMouseEvent>
+#include "cnote.h"
+
+class DateMaskWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit DateMaskWidget(QWidget *parent = 0);
+
+signals:
+ void clicked();
+ void clickday();
+
+protected:
+ void mousePressEvent(QMouseEvent *ev);
+
+private:
+ QPoint mousePos;
+
+};
+
+#endif // DATEMASKWIDGET_H
=== renamed file 'datemaskwidget.h' => 'datemaskwidget.h.moved'
=== added directory 'debian'
=== added file 'debian/changelog'
--- debian/changelog 1970-01-01 00:00:00 +0000
+++ debian/changelog 2013-05-06 14:54:28 +0000
@@ -0,0 +1,57 @@
+chinese-calendar (0.7.8-1) raring; urgency=low
+
+ * add skins changing function code
+ * add default and black skin qss files
+
+ -- mutse <yyhoo2.young@xxxxxxxxx> Wed, 01 May 2013 19:11:07 +0800
+
+chinese-calendar (0.7.7-0ubuntu1) raring; urgency=low
+
+ [ abelsaber (Yes,it's true) ]
+ * Fix bug #1160698, bug #1164859, bug #1161756, bug #1155491, bug #1160698, bug #1160800.
+
+chinese-calendar (0.7.6-0ubuntu4) raring; urgency=low
+
+ * add 03-save-data-per-user.diff (LP: #1160149)
+ * remove debian/postinst, since db will be saved under
+ user's home.
+
+ -- Zhengpeng Hou <zhengpeng-hou@xxxxxxxxxx> Tue, 26 Mar 2013 22:49:47 +0800
+
+chinese-calendar (0.7.6-0ubuntu3) raring; urgency=low
+
+ * add 02-fix-write-permission.diff. (LP: #1159732)
+
+ -- Zhengpeng Hou <zhengpeng-hou@xxxxxxxxxx> Mon, 25 Mar 2013 20:12:01 +0800
+
+chinese-calendar (0.7.6-0ubuntu2) raring; urgency=low
+
+ * Add 01-fix-crash.diff to fix the crash on startup.
+
+ -- Zhengpeng Hou <zhengpeng-hou@xxxxxxxxxx> Thu, 14 Mar 2013 21:41:07 +0800
+
+chinese-calendar (0.7.6-0ubuntu1) raring; urgency=high
+
+ * Fix bug #1154063, bug #1154075, bug #1154079, bug #1154050.
+ * Modify note function.
+
+ -- abelsaber (Yes,it's true) <guiltyritter@xxxxxxxxx> Wed, 13 Mar 2013 10:12:21 +0800
+
+chinese-calendar (0.7.5) raring; urgency=high
+
+ * Fix bug #1124849, bug #1124747, bug #1124831, bug #1131516, bug #1124825, bug #1129925.
+ * Add note function.
+
+ -- abelsaber (Yes,it's true) <guiltyritter@xxxxxxxxx> Tue, 12 Mar 2013 14:25:51 +0800
+
+chinese-calendar (0.7.4) raring; urgency=low
+
+ * Optimize the display of dateitem, add systemtray.
+
+ -- abelsaber (Yes,it's true) <guiltyritter@xxxxxxxxx> Tue, 29 Jan 2013 14:33:08 +0800
+
+chinese-calendar (0.6.2-1) raring; urgency=low
+
+ * Initial release.
+
+ -- abelsaber (Yes,it's true) <guiltyritter@xxxxxxxxx> Tue, 22 Jan 2013 14:10:26 +0800
=== added file 'debian/compat'
--- debian/compat 1970-01-01 00:00:00 +0000
+++ debian/compat 2013-05-06 14:54:28 +0000
@@ -0,0 +1,1 @@
+8
=== added file 'debian/control'
--- debian/control 1970-01-01 00:00:00 +0000
+++ debian/control 2013-05-06 14:54:28 +0000
@@ -0,0 +1,17 @@
+Source: chinese-calendar
+Section: utils
+Priority: extra
+Maintainer: abel <guiltyritter@xxxxxxxxx>
+Build-Depends: debhelper (>= 8.0.0), libqt4-dev (>=4.8.1), libqt4-sql-sqlite, ttf-wqy-microhei
+Standards-Version: 3.9.2
+Homepage: https://launchpad.net/chinese-calendar
+
+Package: chinese-calendar
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Chinese lunar calendar
+ This indicator is used to show a Chinese lunar calendar which is
+ tailored for Chinese users. The calendar can show festivals and the
+ 24 solar terms, year and month is also selectable.
+ .
+ This calendar is the default application in the UbuntuKylin flavour.
=== added file 'debian/copyright'
--- debian/copyright 1970-01-01 00:00:00 +0000
+++ debian/copyright 2013-05-06 14:54:28 +0000
@@ -0,0 +1,19 @@
+Format: http://dep.debian.net/deps/dep5
+Upstream-Name: chinese-calendar
+Upstream-Contact: abel <guiltyritter@xxxxxxxxx>
+Source: https://launchpad.net/chinese-calendar
+
+Files: *
+Copyright: Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Lt
+License: GPL-3
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 3 as
+ published by the Free Software Foundation.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ On Debian/Ubuntu systems, the full text of the GPL v3 can be found in
+ `/usr/share/common-licenses/GPL-3'
=== added file 'debian/rules'
--- debian/rules 1970-01-01 00:00:00 +0000
+++ debian/rules 2013-05-06 14:54:28 +0000
@@ -0,0 +1,5 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+%:
+ dh $@
=== added directory 'debian/source'
=== added file 'debian/source/format'
--- debian/source/format 1970-01-01 00:00:00 +0000
+++ debian/source/format 2013-05-06 14:54:28 +0000
@@ -0,0 +1,1 @@
+3.0 (quilt)
=== added directory 'img'
=== renamed directory 'img' => 'img.moved'
=== added file 'img/chinesecalendar-64.png'
Binary files img/chinesecalendar-64.png 1970-01-01 00:00:00 +0000 and img/chinesecalendar-64.png 2013-05-06 14:54:28 +0000 differ
=== added file 'img/chinesecalendar.svg'
--- img/chinesecalendar.svg 1970-01-01 00:00:00 +0000
+++ img/chinesecalendar.svg 2013-05-06 14:54:28 +0000
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
+<g>
+
+ <image overflow="visible" opacity="0.55" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAACXBIWXMAAAsSAAALEgHS3X78AAAA
+GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATRJREFUeNrs27FqAkEUheHZcQ0W
+CqK9ffIC1nnyvEMKt08fEVQI2bDrGbyTnYRYBGy8/gOHu2D1zYzTnVEYVmWJxbenhGKG2ma074nN
+GHytTvlSPmx2te1CmktlpSyUh3J3bnz1yqeyVd6Ud6XNJz4x9LPypEydwQ/KRnlRjhlenvijslbm
+jq57uuY724BXs1blf3yszAy9cAYPZhtnV33hVY/OHrj463V393r/ayeAAwcOHDhw4MCBAwcOHDhw
+4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDhw4MCBAwcOHDjwa6+yodBbujDUGTys7Mm+H/D0Q6vs
+w7m44uk25DLO3oxdhqddSCW01Mdqwrm34bF+1ZgxWftcUEntnLsq3FXFtb67imX5H28dnfRfJ/89
+TwIMADtMQaNu0ySdAAAAAElFTkSuQmCC" transform="matrix(1 0 0 1 1 2)">
+ </image>
+ <g>
+ <path fill="#590100" d="M60,57c0,1.658-1.344,3-3,3H7c-1.657,0-3-1.342-3-3V7c0-1.656,1.343-3,3-3h50c1.656,0,3,1.344,3,3V57z"/>
+ </g>
+</g>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="4" y1="32" x2="60" y2="32">
+ <stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
+ <stop offset="0.5" style="stop-color:#FFFFFF"/>
+ <stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</linearGradient>
+<path opacity="0.3" fill="url(#SVGID_1_)" d="M60,57c0,1.658-1.344,3-3,3H7c-1.657,0-3-1.342-3-3V7c0-1.656,1.343-3,3-3h50
+ c1.656,0,3,1.344,3,3V57z"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="31.9995" y1="4" x2="31.9995" y2="57.2713">
+ <stop offset="0" style="stop-color:#FFA44D"/>
+ <stop offset="1" style="stop-color:#CD0100"/>
+</linearGradient>
+<path fill="url(#SVGID_2_)" d="M60,54c0,1.658-1.344,3-3,3H7c-1.657,0-3-1.342-3-3V7c0-1.656,1.343-3,3-3h50c1.656,0,3,1.344,3,3V54
+ z"/>
+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="31.9995" y1="5" x2="31.9995" y2="56.2611">
+ <stop offset="0" style="stop-color:#FF7D01"/>
+ <stop offset="1" style="stop-color:#990100"/>
+</linearGradient>
+<path fill="url(#SVGID_3_)" d="M7,56c-1.103,0-2-0.897-2-2V7c0-1.103,0.897-2,2-2h50c1.104,0,2,0.897,2,2v47c0,1.103-0.896,2-2,2H7z
+ "/>
+<g>
+ <path fill="#B35701" d="M25.624,10.926l1.377-3.801h0.966l1.335,3.801H28.48l-0.288-0.801h-1.5l-0.288,0.801H25.624z M27.987,9.488
+ l-0.514-1.623h-0.021l-0.555,1.623H27.987z"/>
+ <path fill="#B35701" d="M30.391,8.584h0.021c0.178-0.233,0.411-0.356,0.699-0.37c0.767,0.041,1.178,0.507,1.233,1.397
+ c-0.055,0.876-0.432,1.329-1.13,1.356c-0.383,0-0.65-0.137-0.801-0.411h-0.021v1.335H29.61V8.81c0-0.055,0-0.137,0-0.247
+ C29.597,8.44,29.59,8.344,29.59,8.275h0.781L30.391,8.584z M30.966,10.474c0.384,0,0.568-0.288,0.555-0.863
+ c0.013-0.589-0.171-0.884-0.555-0.884c-0.356,0.014-0.548,0.308-0.575,0.884C30.418,10.173,30.61,10.461,30.966,10.474z"/>
+ <path fill="#B35701" d="M33.556,8.275v0.493h0.021c0.15-0.37,0.452-0.541,0.904-0.514v0.699h-0.35
+ c-0.191,0.041-0.322,0.103-0.391,0.185c-0.041,0.096-0.075,0.226-0.103,0.39c0,0.042,0,0.069,0,0.083v1.315h-0.78V8.81
+ c0-0.027,0-0.089,0-0.185c-0.015-0.151-0.021-0.267-0.021-0.35H33.556z"/>
+ <path fill="#B35701" d="M35.733,7.125v0.678h-0.842V7.125H35.733z M35.713,8.275v2.651h-0.801V8.275H35.713z"/>
+ <path fill="#B35701" d="M37.172,7.125v3.801h-0.801V7.125H37.172z"/>
+</g>
+<g>
+ <path fill="#FFFFFF" d="M25.624,10.7l1.377-3.801h0.966l1.335,3.801H28.48l-0.288-0.801h-1.5L26.405,10.7H25.624z M27.987,9.261
+ l-0.514-1.623h-0.021l-0.555,1.623H27.987z"/>
+ <path fill="#FFFFFF" d="M30.391,8.357h0.021c0.178-0.233,0.411-0.356,0.699-0.37c0.767,0.041,1.178,0.507,1.233,1.397
+ c-0.055,0.876-0.432,1.329-1.13,1.356c-0.383,0-0.65-0.137-0.801-0.411h-0.021v1.335H29.61V8.583c0-0.055,0-0.137,0-0.247
+ c-0.014-0.124-0.021-0.219-0.021-0.288h0.781L30.391,8.357z M30.966,10.248c0.384,0,0.568-0.288,0.555-0.863
+ c0.013-0.589-0.171-0.884-0.555-0.884c-0.356,0.014-0.548,0.308-0.575,0.884C30.418,9.946,30.61,10.234,30.966,10.248z"/>
+ <path fill="#FFFFFF" d="M33.556,8.049v0.493h0.021c0.15-0.37,0.452-0.541,0.904-0.514v0.699h-0.35
+ c-0.191,0.041-0.322,0.103-0.391,0.185c-0.041,0.096-0.075,0.226-0.103,0.39c0,0.042,0,0.069,0,0.083V10.7h-0.78V8.583
+ c0-0.027,0-0.089,0-0.185c-0.015-0.151-0.021-0.267-0.021-0.35H33.556z"/>
+ <path fill="#FFFFFF" d="M35.733,6.898v0.678h-0.842V6.898H35.733z M35.713,8.049V10.7h-0.801V8.049H35.713z"/>
+ <path fill="#FFFFFF" d="M37.172,6.898V10.7h-0.801V6.898H37.172z"/>
+</g>
+<path fill="#B3B3B3" d="M57,51c0,1.657-1.344,3-3,3H10c-1.657,0-3-1.343-3-3V15.657c0-1.657,1.343-3,3-3h44c1.656,0,3,1.343,3,3V51z
+ "/>
+<radialGradient id="SVGID_4_" cx="31.833" cy="53.9121" r="22.9383" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="1" style="stop-color:#000000"/>
+</radialGradient>
+<path opacity="0.2" fill="url(#SVGID_4_)" d="M57,51c0,1.657-1.344,3-3,3H10c-1.657,0-3-1.343-3-3V15.657c0-1.657,1.343-3,3-3h44
+ c1.656,0,3,1.343,3,3V51z"/>
+<path fill="#D6D6D6" d="M57,49c0,1.657-1.344,3-3,3H10c-1.657,0-3-1.343-3-3V15.657c0-1.657,1.343-3,3-3h44c1.656,0,3,1.343,3,3V49z
+ "/>
+<path fill="#F5F5F5" d="M57,48c0,1.657-1.344,3-3,3H10c-1.657,0-3-1.343-3-3V15.657c0-1.657,1.343-3,3-3h44c1.656,0,3,1.343,3,3V48z
+ "/>
+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="31.9995" y1="12.5039" x2="31.9995" y2="49.9999">
+ <stop offset="0" style="stop-color:#E6E6E6"/>
+ <stop offset="1" style="stop-color:#F2F2F2"/>
+</linearGradient>
+<path fill="url(#SVGID_5_)" d="M57,47c0,1.657-1.344,3-3,3H10c-1.657,0-3-1.343-3-3V15.657c0-1.657,1.343-3,3-3h44
+ c1.656,0,3,1.343,3,3V47z"/>
+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="31.9995" y1="13.5122" x2="31.9995" y2="49">
+ <stop offset="0" style="stop-color:#CCCCCC"/>
+ <stop offset="1" style="stop-color:#F2F2F2"/>
+</linearGradient>
+<path fill="url(#SVGID_6_)" d="M10,49c-1.103,0-2-0.897-2-2V15.657c0-1.103,0.897-2,2-2h44c1.104,0,2,0.897,2,2V47
+ c0,1.103-0.896,2-2,2H10z"/>
+<radialGradient id="SVGID_7_" cx="32.125" cy="12.7036" r="22.0638" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
+</radialGradient>
+<path fill="url(#SVGID_7_)" d="M57,47c0,1.657-1.344,3-3,3H10c-1.657,0-3-1.343-3-3V15.657c0-1.657,1.343-3,3-3h44
+ c1.656,0,3,1.343,3,3V47z"/>
+<g>
+ <g>
+ <path fill="#FFFFFF" d="M24.344,49.229v-9.481c-0.941,0.854-2.05,1.666-3.332,2.435c-0.941-0.939-2.05-1.922-3.332-2.947
+ c2.819-1.451,5.125-3.245,6.919-5.382h-6.663v-2.947h8.585c0.256-0.512,0.512-1.067,0.769-1.666h-5.638v-2.947h6.791
+ c0.17-0.512,0.298-1.025,0.384-1.538h-9.866v-2.947h10.635c0.17-0.939,0.298-1.793,0.384-2.563
+ c0.597,0.086,1.494,0.214,2.691,0.384c0.427,0.086,0.725,0.128,0.897,0.128c0.682,0.172,0.811,0.557,0.385,1.153
+ c-0.174,0.172-0.258,0.3-0.258,0.384v0.256l-0.127,0.256h12.941v2.947H33.057c-0.085,0.513-0.213,1.025-0.384,1.538H43.82v2.947
+ h-5.51c0.084,0.256,0.256,0.599,0.514,1.025c0.17,0.256,0.297,0.471,0.383,0.641h8.33v2.947h-5.895
+ c1.537,1.538,3.543,2.863,6.021,3.973c-0.256,0.172-0.342,0.256-0.256,0.256c-1.453,1.197-2.434,2.137-2.947,2.819
+ c-1.197-0.77-2.307-1.538-3.332-2.307v10.123H36.9v-0.513h-8.328v1.024H24.344z M29.598,33.853
+ c-0.599,0.855-1.239,1.752-1.922,2.691h11.276c-0.855-0.939-1.623-1.836-2.307-2.691H29.598z M36.9,39.362h-8.328v1.666H36.9
+ V39.362z M36.9,43.848h-8.328v1.794H36.9V43.848z M34.723,30.905c-0.256-0.512-0.557-1.067-0.896-1.666h-2.178
+ c-0.172,0.513-0.385,1.069-0.641,1.666H34.723z"/>
+ </g>
+ <g>
+ <path fill="#1A1A1A" d="M23.511,48.422V38.94c-0.941,0.854-2.05,1.666-3.332,2.435c-0.941-0.939-2.05-1.922-3.332-2.947
+ c2.819-1.451,5.125-3.245,6.919-5.382h-6.663v-2.947h8.585c0.256-0.512,0.512-1.067,0.769-1.666H20.82v-2.947h6.791
+ c0.17-0.512,0.298-1.025,0.384-1.538h-9.866v-2.947h10.635c0.17-0.939,0.298-1.793,0.384-2.563
+ c0.597,0.086,1.494,0.214,2.691,0.384c0.426,0.086,0.725,0.128,0.897,0.128c0.683,0.172,0.81,0.557,0.384,1.153
+ c-0.172,0.172-0.256,0.3-0.256,0.384v0.256l-0.128,0.256h12.941v2.947H32.224c-0.086,0.513-0.214,1.025-0.384,1.538h11.148v2.947
+ h-5.51c0.084,0.256,0.256,0.599,0.512,1.025c0.17,0.256,0.299,0.471,0.385,0.641h8.328v2.947h-5.895
+ c1.539,1.538,3.545,2.863,6.023,3.973c-0.256,0.172-0.342,0.256-0.256,0.256c-1.455,1.197-2.436,2.137-2.947,2.819
+ c-1.197-0.77-2.307-1.538-3.332-2.307V47.91h-4.229v-0.513h-8.329v1.024H23.511z M28.765,33.046
+ c-0.599,0.855-1.239,1.752-1.922,2.691h11.277c-0.855-0.939-1.625-1.836-2.307-2.691H28.765z M36.068,38.556h-8.329v1.666h8.329
+ V38.556z M36.068,43.041h-8.329v1.794h8.329V43.041z M33.891,30.099c-0.258-0.512-0.557-1.067-0.898-1.666h-2.178
+ c-0.172,0.513-0.385,1.069-0.641,1.666H33.891z"/>
+ </g>
+</g>
+<g>
+ <ellipse fill="#FFFFFF" cx="17.032" cy="17.01" rx="4.028" ry="2.49"/>
+ <linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="17.0322" y1="14.0186" x2="17.0322" y2="19.1263">
+ <stop offset="0" style="stop-color:#020202"/>
+ <stop offset="1" style="stop-color:#636363"/>
+ </linearGradient>
+ <ellipse fill="url(#SVGID_8_)" cx="17.032" cy="16.581" rx="4.028" ry="2.49"/>
+
+ <radialGradient id="SVGID_9_" cx="17.0322" cy="9.8262" r="3.3488" gradientTransform="matrix(1 0 0 0.7209 0 2.7423)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#000000"/>
+ <stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+ </radialGradient>
+ <ellipse fill="url(#SVGID_9_)" cx="17.032" cy="9.827" rx="4.028" ry="2.49"/>
+ <g>
+
+ <radialGradient id="SVGID_10_" cx="17.0425" cy="11.5977" r="2.587" gradientTransform="matrix(1 0 0 2.1958 0 -13.869)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#000000"/>
+ <stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+ </radialGradient>
+ <polygon fill="url(#SVGID_10_)" points="19.605,11.454 19.251,17.367 14.813,17.367 14.48,11.547 14.813,5.829 19.251,5.829 "/>
+ <linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="17.0322" y1="6.9238" x2="17.0322" y2="17.3821">
+ <stop offset="0" style="stop-color:#B8BABC"/>
+ <stop offset="0.0024" style="stop-color:#B2B4B6"/>
+ <stop offset="0.0167" style="stop-color:#939497"/>
+ <stop offset="0.0316" style="stop-color:#7B7B7F"/>
+ <stop offset="0.0472" style="stop-color:#6A6A6E"/>
+ <stop offset="0.0638" style="stop-color:#605F63"/>
+ <stop offset="0.0832" style="stop-color:#5D5C60"/>
+ <stop offset="0.1083" style="stop-color:#808083"/>
+ <stop offset="0.1508" style="stop-color:#B6B6B8"/>
+ <stop offset="0.1875" style="stop-color:#DEDEDF"/>
+ <stop offset="0.2166" style="stop-color:#F6F6F6"/>
+ <stop offset="0.2344" style="stop-color:#FFFFFF"/>
+ <stop offset="0.3824" style="stop-color:#F0F2F2"/>
+ <stop offset="0.5576" style="stop-color:#9D9EA1"/>
+ <stop offset="0.5874" style="stop-color:#939497"/>
+ <stop offset="0.6675" style="stop-color:#7F8083"/>
+ <stop offset="0.7473" style="stop-color:#737477"/>
+ <stop offset="0.826" style="stop-color:#6F7073"/>
+ <stop offset="0.8886" style="stop-color:#959799"/>
+ <stop offset="0.9575" style="stop-color:#BCBEC0"/>
+ </linearGradient>
+ <rect x="15.136" y="6.667" fill="url(#SVGID_11_)" width="3.792" height="10.7"/>
+ </g>
+</g>
+<g>
+ <ellipse fill="#FFFFFF" cx="46.928" cy="17.01" rx="4.028" ry="2.49"/>
+ <linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="46.9277" y1="14.0186" x2="46.9277" y2="19.1263">
+ <stop offset="0" style="stop-color:#020202"/>
+ <stop offset="1" style="stop-color:#636363"/>
+ </linearGradient>
+ <ellipse fill="url(#SVGID_12_)" cx="46.928" cy="16.581" rx="4.028" ry="2.49"/>
+
+ <radialGradient id="SVGID_13_" cx="46.9277" cy="9.8262" r="3.3488" gradientTransform="matrix(1 0 0 0.7209 0 2.7423)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#000000"/>
+ <stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+ </radialGradient>
+ <ellipse fill="url(#SVGID_13_)" cx="46.928" cy="9.827" rx="4.028" ry="2.49"/>
+ <g>
+
+ <radialGradient id="SVGID_14_" cx="46.9375" cy="11.5977" r="2.587" gradientTransform="matrix(1 0 0 2.1958 0 -13.869)" gradientUnits="userSpaceOnUse">
+ <stop offset="0" style="stop-color:#000000"/>
+ <stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+ </radialGradient>
+ <polygon fill="url(#SVGID_14_)" points="49.5,11.454 49.146,17.367 44.709,17.367 44.375,11.547 44.709,5.829 49.146,5.829 "/>
+ <linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="46.9277" y1="6.9238" x2="46.9277" y2="17.3821">
+ <stop offset="0" style="stop-color:#B8BABC"/>
+ <stop offset="0.0024" style="stop-color:#B2B4B6"/>
+ <stop offset="0.0167" style="stop-color:#939497"/>
+ <stop offset="0.0316" style="stop-color:#7B7B7F"/>
+ <stop offset="0.0472" style="stop-color:#6A6A6E"/>
+ <stop offset="0.0638" style="stop-color:#605F63"/>
+ <stop offset="0.0832" style="stop-color:#5D5C60"/>
+ <stop offset="0.1083" style="stop-color:#808083"/>
+ <stop offset="0.1508" style="stop-color:#B6B6B8"/>
+ <stop offset="0.1875" style="stop-color:#DEDEDF"/>
+ <stop offset="0.2166" style="stop-color:#F6F6F6"/>
+ <stop offset="0.2344" style="stop-color:#FFFFFF"/>
+ <stop offset="0.3824" style="stop-color:#F0F2F2"/>
+ <stop offset="0.5576" style="stop-color:#9D9EA1"/>
+ <stop offset="0.5874" style="stop-color:#939497"/>
+ <stop offset="0.6675" style="stop-color:#7F8083"/>
+ <stop offset="0.7473" style="stop-color:#737477"/>
+ <stop offset="0.826" style="stop-color:#6F7073"/>
+ <stop offset="0.8886" style="stop-color:#959799"/>
+ <stop offset="0.9575" style="stop-color:#BCBEC0"/>
+ </linearGradient>
+ <rect x="45.031" y="6.667" fill="url(#SVGID_15_)" width="3.793" height="10.7"/>
+ </g>
+</g>
+</svg>
=== added file 'img/icon-64.png'
Binary files img/icon-64.png 1970-01-01 00:00:00 +0000 and img/icon-64.png 2013-05-06 14:54:28 +0000 differ
=== added file 'img/icon.png'
Binary files img/icon.png 1970-01-01 00:00:00 +0000 and img/icon.png 2013-05-06 14:54:28 +0000 differ
=== added file 'main.cpp'
--- main.cpp 1970-01-01 00:00:00 +0000
+++ main.cpp 2013-05-06 14:54:28 +0000
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 National University of Defense Technology(NUDT) & Kylin Ltd
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
+ * Shine Huang <hostc@xxxxxxx>
+ */
+
+#include <QtGui>
+#include <QCoreApplication>
+#include <QTranslator>
+#include <QTextCodec>
+#include <QDesktopWidget>
+#include "chinesecalendar.h"
+
+int main(int argc, char *argv[])
+{
+ QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
+ QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
+ QApplication app(argc, argv);
+ QTranslator translator;
+
+ translator.load(":/translate/i18_zh_CN.qm");
+ app.installTranslator(&translator);
+
+ // load default skin
+#ifdef DEBUG
+ QFile file(QCoreApplication::applicationDirPath() + "/skin/default-skin.qss");
+#else
+ QFile file("/usr/share/chinese-calendar/skin/default-skin.qss");
+#endif
+ file.open(QFile::ReadOnly);
+ QString stylesheet = QObject::tr(file.readAll());
+ app.setStyleSheet(stylesheet);
+
+ ChineseCalendar *window = new ChineseCalendar;
+ app.setWindowIcon(window->icon64);
+ window->setWindowFlags(Qt::FramelessWindowHint);
+
+ QDesktopWidget desktop;
+ int width = desktop.screenGeometry().width();
+ int height = desktop.screenGeometry().height();
+
+ window->setGeometry(QRect(width-525,30,520,350));
+ window->hide();
+ return app.exec();
+}
=== renamed file 'main.cpp' => 'main.cpp.moved'
=== added directory 'skin'
=== added file 'skin/README.md'
--- skin/README.md 1970-01-01 00:00:00 +0000
+++ skin/README.md 2013-05-06 14:54:28 +0000
@@ -0,0 +1,27 @@
+皮肤说明文档
+============
+
+目录结构如下:
+
+skin/
+ |
+ |-black/
+ |-black-skin.qss
+ |
+ |-blue/
+ |-blue.qss
+ |
+ |-default/
+ |-default-skin.qss
+
+其中,black-skin.qss default-skin.qss为系统皮肤文件,blue.qss为用户自己定义皮肤文件。
+
+### 用户自定义皮肤
+
+若用户想制作自己的个性皮肤,可参考blue.qss。运行程序前,将自制皮肤文件复制到 ~/.local/share/chinese-calendar/skins 目录(若无此目录,请使用 mkdir -p ~/.local/share/chinese-calendar/skins 来新建)下即可换肤。
+
+### 问题与反馈
+
+mutse(墨汁) <yyhoo2.young@xxxxxxxxx>
+
+
=== added directory 'skin/black'
=== added file 'skin/black-skin.qss'
--- skin/black-skin.qss 1970-01-01 00:00:00 +0000
+++ skin/black-skin.qss 2013-05-06 14:54:28 +0000
@@ -0,0 +1,189 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 Mutse & UbuntuKylin Members
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Author: Mutse <yyhoo2.young@xxxxxxxxx>
+ */
+
+ChineseCalendar{
+ background: url(/usr/share/chinese-calendar/skin/black/chinesecalendar.png);
+}
+
+ChineseCalendar QPushButton#TbnextMonth{
+ background-color:transparent;
+ image: url(/usr/share/chinese-calendar/skin/black/arrow-right.png);
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbnextMonth:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#TbnextYear{
+ background-color:transparent;
+ image: url(/usr/share/chinese-calendar/skin/black/arrow-right.png);
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbnextYear:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#TbpreviousMonth{
+ background-color:transparent;
+ image: url(/usr/share/chinese-calendar/skin/black/arrow-left.png);
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbpreviousMonth:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#TbpreviousYear{
+ background-color:transparent;
+ image: url(/usr/share/chinese-calendar/skin/black/arrow-left.png);
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbpreviousYear:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#backtotoday{
+ background-color:transparent;
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#backtotoday:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QComboBox#YearSelect{
+ border: 2px solid lightgray;
+ border-radius: 5px;
+ font:12pt;
+}
+
+ChineseCalendar QComboBox#monthCombo{
+ border: 2px solid lightgray;
+ border-radius: 5px;
+ font:12pt;
+}
+
+ChineseCalendar QComboBox::down-arrow {
+ image: url(/usr/share/chinese-calendar/skin/black/arrow-down.png);
+ background-color: transparent;
+}
+
+ChineseCalendar QLabel#label{
+ font:12pt;
+}
+
+ChineseCalendar QLabel#label_2{
+ font:12pt;
+}
+
+ChineseCalendar QLabel#label_3, QLabel#label_9{
+ color: rgb(112, 121, 138);
+}
+
+ChineseCalendar QLabel#label_4,
+ QLabel#label_5,
+ QLabel#label_6,
+ QLabel#label_7,
+ QLabel#label_8{
+ color: rgb(248,128,35);
+}
+
+ChineseCalendar QLabel#label_10{
+ color: rgb(248,128,35);
+}
+
+ChineseCalendar QLabel#label_11{
+ color: rgb(238,124,35);
+}
+
+ChineseCalendar QLabel#label_12,
+ QLabel#label_13, QLabel#label_14,
+ QLabel#label_15, QLabel#label_17{
+ color: rgb(112, 121, 138);
+}
+
+ChineseCalendar QLabel#label_16{
+ color: black;
+}
+
+Cnote{
+ background: url(/usr/share/chinese-calendar/skin/black/note.png);
+}
+
+Cnote QPushButton#ok{
+ image: url(/usr/share/chinese-calendar/skin/black/ok.png);
+ background-color:transparent;
+}
+
+Cnote QPushButton#ok:hover{
+ image: url(/usr/share/chinese-calendar/skin/black/ok-hover.png);
+}
+
+Cnote QPushButton#cancel{
+ image: url(/usr/share/chinese-calendar/skin/black/no.png);
+ background-color:transparent;
+
+ border:0 solid;
+}
+
+Cnote QPushButton#cancel:hover{
+ image: url(/usr/share/chinese-calendar/skin/black/no-hover.png);
+}
+
+Cnote QLabel#datelabel{
+ background-color: transparent;
+ color: rgb(133,143,162);
+ border:0 solid;
+}
+
+Cnote QPushButton#clearplan{
+ background-color: transparent;
+ color: rgb(133,143,162);
+}
+
+Cnote QTextEdit#textedit{
+ background-color: transparent;
+ color: rgb(133,143,162);
+ border:0 solid;
+}
+
+DateItem:focus{
+ background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(238, 93, 0, 255), stop:1 rgba(255, 121, 2, 200));
+}
+
+DateItem QWidget:hover{
+ background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(238, 93, 0, 155), stop:1 rgba(255, 121, 2, 100));
+}
+
+DateItem QLabel#label{
+ color:rgb(112,121,138);
+}
+
+DateItem QLabel#labe:pressed{
+ color:rgb(255, 255, 0);
+}
+
+DateItem QLabel#label_2{
+ color:rgb(112, 121, 138);
+}
=== added file 'skin/black/bg.png'
Binary files skin/black/bg.png 1970-01-01 00:00:00 +0000 and skin/black/bg.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/black/chinesecalendar.png'
Binary files skin/black/chinesecalendar.png 1970-01-01 00:00:00 +0000 and skin/black/chinesecalendar.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/black/no.png'
Binary files skin/black/no.png 1970-01-01 00:00:00 +0000 and skin/black/no.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/black/note.png'
Binary files skin/black/note.png 1970-01-01 00:00:00 +0000 and skin/black/note.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/black/ok.png'
Binary files skin/black/ok.png 1970-01-01 00:00:00 +0000 and skin/black/ok.png 2013-05-06 14:54:28 +0000 differ
=== added directory 'skin/default'
=== added file 'skin/default-skin.qss'
--- skin/default-skin.qss 1970-01-01 00:00:00 +0000
+++ skin/default-skin.qss 2013-05-06 14:54:28 +0000
@@ -0,0 +1,138 @@
+/*
+ * This file is part of the chinese-calendar project
+ * Copyright (C) 2013 Mutse & UbuntuKylin Members
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * This project is developed by "UbuntuKylin Members" team,
+ * see <https://launchpad.net/~ubuntukylin~members>
+ * Author: Mutse <yyhoo2.young@xxxxxxxxx>
+ */
+
+ChineseCalendar{
+ background: url(/usr/share/chinese-calendar/skin/default/chinesecalendarBGyellow.png);
+}
+
+ChineseCalendar QPushButton#TbnextMonth{
+ background-color:transparent;
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbnextMonth:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#TbnextYear{
+ background-color:transparent;
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbnextYear:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#TbpreviousMonth{
+ background-color:transparent;
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbpreviousMonth:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#TbpreviousYear{
+ background-color:transparent;
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#TbpreviousYear:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QPushButton#backtotoday{
+ background-color:transparent;
+ color:rgb(200,200,150);
+}
+
+ChineseCalendar QPushButton#backtotoday:hover{
+ color:rgb(255,255,255);
+}
+
+ChineseCalendar QComboBox#YearSelect{
+ border: 2px solid lightgray;
+ border-radius: 5px;
+ font:12pt;
+}
+
+ChineseCalendar QComboBox#monthCombo{
+ border: 2px solid lightgray;
+ border-radius: 5px;
+ font:12pt;
+}
+
+ChineseCalendar QLabel#label{
+ font:12pt;
+}
+
+ChineseCalendar QLabel#label_2{
+ font:12pt;
+}
+
+Cnote{
+ background: url(/usr/share/chinese-calendar/skin/default/note.png);
+}
+
+Cnote QPushButton#ok{
+ image: url(/usr/share/chinese-calendar/skin/default/ok.png);
+ background-color:transparent;
+}
+
+Cnote QPushButton#cancel{
+ image: url(/usr/share/chinese-calendar/skin/default/no.png);
+ background-color:transparent;
+ border:0 solid;
+}
+
+Cnote QLabel#datelabel{
+ background-color:transparent;
+ border:0 solid;
+}
+
+Cnote QPushButton#clearplan{
+ background-color:transparent;
+}
+
+Cnote QTextEdit#textedit{
+ background-color:transparent;
+ border:0 solid;
+}
+
+DateItem:focus{
+ background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(238, 93, 0, 255), stop:1 rgba(255, 121, 2, 200));
+}
+
+DateItem QWidget:hover{
+ background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(238, 93, 0, 155), stop:1 rgba(255, 121, 2, 100));
+}
+
+DateItem QLabel#label{
+ color:rgb(0,0,255);
+}
+
+DateItem QLabel#labe:pressed{
+ color:rgb(255,0,0);
+}
+
+DateItem QLabel#label_2{
+ color:rgb(0,0,0);
+}
=== added file 'skin/default/chinesecalendarBGyellow.png'
Binary files skin/default/chinesecalendarBGyellow.png 1970-01-01 00:00:00 +0000 and skin/default/chinesecalendarBGyellow.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/default/no.png'
Binary files skin/default/no.png 1970-01-01 00:00:00 +0000 and skin/default/no.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/default/note.png'
Binary files skin/default/note.png 1970-01-01 00:00:00 +0000 and skin/default/note.png 2013-05-06 14:54:28 +0000 differ
=== added file 'skin/default/ok.png'
Binary files skin/default/ok.png 1970-01-01 00:00:00 +0000 and skin/default/ok.png 2013-05-06 14:54:28 +0000 differ
=== added directory 'translate'
=== renamed directory 'translate' => 'translate.moved'
=== added file 'translate/i18_zh_CN.qm'
Binary files translate/i18_zh_CN.qm 1970-01-01 00:00:00 +0000 and translate/i18_zh_CN.qm 2013-05-06 14:54:28 +0000 differ
=== added file 'translate/i18_zh_CN.ts'
--- translate/i18_zh_CN.ts 1970-01-01 00:00:00 +0000
+++ translate/i18_zh_CN.ts 2013-05-06 14:54:28 +0000
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
+<context>
+ <name>Calendar</name>
+ <message>
+ <source>Calendar</source>
+ <translation type="unfinished">中国农历</translation>
+ </message>
+ <message>
+ <source>Previous Year</source>
+ <translation type="unfinished">前年</translation>
+ </message>
+ <message>
+ <source>previousYear</source>
+ <translation type="unfinished">前年</translation>
+ </message>
+ <message>
+ <source>Previous Month</source>
+ <translation type="unfinished">前一月</translation>
+ </message>
+ <message>
+ <source>previousMonth</source>
+ <translation type="unfinished">前一月</translation>
+ </message>
+ <message>
+ <source>yyyy</source>
+ <translation type="unfinished">yyyy</translation>
+ </message>
+ <message>
+ <source>Next Month</source>
+ <translation type="unfinished">后一月</translation>
+ </message>
+ <message>
+ <source>nextMonth</source>
+ <translation type="unfinished">后一月</translation>
+ </message>
+ <message>
+ <source>Next Year</source>
+ <translation type="unfinished">后年</translation>
+ </message>
+ <message>
+ <source>nextYear</source>
+ <translation type="unfinished">后年</translation>
+ </message>
+</context>
+<context>
+ <name>MyCTCalendar</name>
+ <message>
+ <source>ri</source>
+ <translation type="obsolete">日</translation>
+ </message>
+ <message>
+ <source>unknown</source>
+ <translation type="unfinished">未知</translation>
+ </message>
+ <message>
+ <source>no data</source>
+ <translation type="unfinished">无数据</translation>
+ </message>
+ <message>
+ <source>first</source>
+ <translation type="obsolete">初</translation>
+ </message>
+ <message>
+ <source>ten</source>
+ <translation type="obsolete">十</translation>
+ </message>
+ <message>
+ <source>twenty</source>
+ <translation type="obsolete">二十</translation>
+ </message>
+ <message>
+ <source>Ctwenty</source>
+ <translation type="obsolete">廿</translation>
+ </message>
+ <message>
+ <source>thirty</source>
+ <translation type="obsolete">三十</translation>
+ </message>
+ <message>
+ <source>sleek December</source>
+ <translation type="obsolete">润十二月</translation>
+ </message>
+ <message>
+ <source>sleek November</source>
+ <translation type="obsolete">润十一月</translation>
+ </message>
+ <message>
+ <source>sleek January</source>
+ <translation type="obsolete">润正月</translation>
+ </message>
+ <message>
+ <source>sleek</source>
+ <translation type="obsolete">润</translation>
+ </message>
+ <message>
+ <source>month</source>
+ <translation type="obsolete">月</translation>
+ </message>
+ <message>
+ <source>January</source>
+ <translation type="obsolete">正月</translation>
+ </message>
+</context>
+<context>
+ <name>Mycalendar</name>
+ <message>
+ <source>NongLi year</source>
+ <translation type="unfinished">农历年:</translation>
+ </message>
+ <message>
+ <source>year(</source>
+ <translation type="unfinished">年(</translation>
+ </message>
+ <message>
+ <source>NongLi Day:</source>
+ <translation type="unfinished">农历日:</translation>
+ </message>
+ <message>
+ <source>today constellation:</source>
+ <translation type="unfinished">当日星座:</translation>
+ </message>
+ <message>
+ <source>forthcoming sterm:</source>
+ <translation type="unfinished">即将到来的节气:</translation>
+ </message>
+ <message>
+ <source>holiday:</source>
+ <translation type="unfinished">公历节日:</translation>
+ </message>
+ <message>
+ <source>choliday:</source>
+ <translation type="unfinished">农历节日:</translation>
+ </message>
+ <message>
+ <source>softwarename</source>
+ <translation type="obsolete">中国农历</translation>
+ </message>
+</context>
+</TS>
Follow ups