← Back to team overview

ubuntukylin-members team mailing list archive

[Merge] lp:~jinlj/chinese-calendar/chinese-calendar into lp:chinese-calendar

 

jinlj has proposed merging lp:~jinlj/chinese-calendar/chinese-calendar into lp:chinese-calendar.

Requested reviews:
  Ubuntu Kylin Members (ubuntukylin-members)

For more details, see:
https://code.launchpad.net/~jinlj/chinese-calendar/chinese-calendar/+merge/332978

Add support for Qt5 (on Ubuntu 16.04)
-- 
Your team Ubuntu Kylin Members is requested to review the proposed merge of lp:~jinlj/chinese-calendar/chinese-calendar into lp:chinese-calendar.
=== modified file 'ccbo.cpp'
--- ccbo.cpp	2014-03-18 13:37:25 +0000
+++ ccbo.cpp	2017-10-30 07:41:12 +0000
@@ -19,6 +19,9 @@
  * see <https://launchpad.net/~ubuntukylin~members>
  * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
  *                 Shine Huang <hostc@xxxxxxx>
+ *
+ * Modified @ 2017.10.30 14:09:58 CST
+ * Jinlj <jincsu@xxxxxxx>
  */
 /*
 * Chinese Tradional Calendar Library
@@ -40,18 +43,18 @@
       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==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);
+      else
+    return(-1);
     }
   }
-  
+
   if(opt==2)
     return(1);
   return(0);
@@ -91,8 +94,8 @@
     if(x<=d || i==12){
       m=i;
       break;
-    }else{ 
-       x-=d; 
+    }else{
+       x-=d;
     }
   }
   return 100*m+x;
@@ -118,7 +121,7 @@
 {
   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) : 
+  double jd=(type!=0) ? (ctcl_standard_days(y,m,d)+1721425+jt) :
     (ctcl_standard_days(y,m,d)+1721425+jt);
   return jd;
 }
@@ -133,7 +136,7 @@
   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) ) 
+  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)
@@ -166,7 +169,7 @@
 
 int CCBO::ctcl_year_ganzhi(int y,int m,int d,int h)
 {
-  if ( (ctcl_date_to_days(y,m,d)+h/24.0) 
+  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) );
@@ -189,11 +192,11 @@
   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);
+         0.0000333/rpi,0.00000347/rpi);
   double ab0=ang(ms,t,7.171366127999999e-2,306.0253/rpi,
-		 -0.0107306/rpi,-0.00001236/rpi);
+         -0.0107306/rpi,-0.00001236/rpi);
   double ac0=ang(ms,t,0.08519585128,21.2964/rpi,
-		 0.0016528/rpi,0.00000239/rpi);
+         0.0016528/rpi,0.00000239/rpi);
   int i;
   for(i=-1;i<=13;i+=1){
     double aa=aa0+0.507984293*i;
@@ -205,20 +208,20 @@
     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';
+    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)
@@ -229,21 +232,21 @@
   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;
-  
+          -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<=-255) non_leap++;
   if(y<=-256) non_leap+=2;
   if(y<=-722) non_leap++;
 
@@ -256,7 +259,7 @@
     lunar_month++;
   else lunar_month=ctcl_round(ctcl_rem(lunar_month-1,12)+1);
 
-  return lunar_month;  
+  return lunar_month;
 }
 QString CCBO::ctcl_displaydata(int y, int m, int d)
 {
@@ -279,10 +282,10 @@
     if(textedit.isEmpty()&&note.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);    
+    {   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);        
+        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);
    }
 }
@@ -292,7 +295,13 @@
   int r,i;
   char buf[10];
        ::qsnprintf(buf, 10, "%02d%02d", m,d);
+
+#if QT_VERSION < 0x050000
   QString MD = QString::fromAscii(buf);
+#else
+  QString MD = QString::fromLatin1(buf);
+#endif
+
   QString QueryStr;
 
   QueryStr=QString("select Ji from yiji where Year=%1 and Month=%2 and Day=%3").arg(y).arg(m).arg(d);
@@ -301,11 +310,11 @@
   ctc->yi=ctcl_common_query("yiji",QueryStr);
 
 
-  QueryStr=QString("select VALUE from holiday where DATA='"+MD+"'"); 
+  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); 
+  QueryStr=QString("select VALUE from caltype where ID=%1").arg(type);
   ctc->caltype=ctcl_common_query("caltype",QueryStr);
 
   if(type==-1)return -1;
@@ -405,9 +414,15 @@
    ::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 QT_VERSION < 0x050000
+  MD = QString::fromAscii(buf);
+#else
+  MD = QString::fromLatin1(buf);
+#endif
+
    if(ctc->month>0){
-    QueryStr=QString("select VALUE from choliday where DATA='"+MD+"'"); 
+    QueryStr=QString("select VALUE from choliday where DATA='"+MD+"'");
     ctc->choliday=ctcl_common_query("choliday",QueryStr);
     //logSqlError("choliday",QueryStr);
     }
@@ -459,26 +474,26 @@
     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();
+    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); 
+    query.prepare(querystr);
     if(!query.exec())
       logSqlError(type,query.lastError().text());
     if (query.last()) {

=== modified file 'ccbo.h'
--- ccbo.h	2014-03-18 13:37:25 +0000
+++ ccbo.h	2017-10-30 07:41:12 +0000
@@ -19,6 +19,9 @@
  * see <https://launchpad.net/~ubuntukylin~members>
  * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
  *                 Shine Huang <hostc@xxxxxxx>
+ *
+ * Modified @ 2017.10.30 14:09:58 CST
+ * Jinlj <jincsu@xxxxxxx>
  */
 /*
 * Chinese Tradional Calendar Library
@@ -26,7 +29,13 @@
 * Copyright (C) 2003      donaldzju@xxxxxxxxxx
 */
 
-#pragma once
+#ifndef CCBO_H
+#define CCBO_H
+
+#ifdef QT5XX
+#include <QtWidgets>
+#endif
+
 #include <math.h>
 #include <QByteArray>
 #include <QFile>
@@ -93,12 +102,12 @@
     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);
+    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);
+    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);
@@ -106,3 +115,4 @@
 
 
 };
+#endif

=== added file 'chinese-calendar'
Binary files chinese-calendar	1970-01-01 00:00:00 +0000 and chinese-calendar	2017-10-30 07:41:12 +0000 differ
=== modified file 'chinese-calendar.pro'
--- chinese-calendar.pro	2016-04-06 03:10:18 +0000
+++ chinese-calendar.pro	2017-10-30 07:41:12 +0000
@@ -1,5 +1,5 @@
 TEMPLATE = app
-TARGET += 
+TARGET +=
 DEPENDPATH += $$PWD/
 INCLUDEPATH += $$PWD/
 
@@ -14,18 +14,18 @@
 inst4.files += chinese-calendar-autostart
 inst4.path = /usr/bin
 default_skin.files += skin/default/chinesecalendarBGyellow.png \
-	skin/default/no.png \
-	skin/default/note.png \
-	skin/default/ok.png
+    skin/default/no.png \
+    skin/default/note.png \
+    skin/default/ok.png
 default_skin.path = /usr/share/chinese-calendar/skin/default
 blue_skin.files += skin/blue/yijibg.png \
-	skin/blue/no.png \
-	skin/blue/note.png \
-	skin/blue/ok.png \
-	skin/blue/left-1.png \
-	skin/blue/left-2.png \
-	skin/blue/right-1.png \
-	skin/blue/right-2.png \
+    skin/blue/no.png \
+    skin/blue/note.png \
+    skin/blue/ok.png \
+    skin/blue/left-1.png \
+    skin/blue/left-2.png \
+    skin/blue/right-1.png \
+    skin/blue/right-2.png \
         skin/blue/normaldate.png \
         skin/blue/corner1.png \
         skin/blue/corner2.png \
@@ -33,18 +33,18 @@
         skin/blue/corner4.png
 blue_skin.path = /usr/share/chinese-calendar/skin/blue
 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
+    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/blue-skin.qss \
-	skin/black.qss
+    skin/blue-skin.qss \
+    skin/black.qss
 qss.path = /usr/share/chinese-calendar/skin
 readme.files += skin/README.md
 readme.path = /usr/share/chinese-calendar/skin
@@ -69,7 +69,11 @@
     sql \
     svg
 
-HEADERS += \  
+
+greaterThan(4, QT_MAJOR_VERSION): QT += widgets
+
+
+HEADERS += \
     dateitem.h \
     datemaskwidget.h \
     chinesecalendar.h \

=== modified file 'chinesecalendar.h'
--- chinesecalendar.h	2014-03-18 13:37:25 +0000
+++ chinesecalendar.h	2017-10-30 07:41:12 +0000
@@ -42,6 +42,10 @@
 #include "cnote.h"
 #include "aboutdialog.h"
 
+#if QT_VERSION >= 0x050000
+#include <QtWidgets>
+#endif
+
 class CCBO;
 class ChineseCalendar: public QWidget, private Ui::Calendar
 {

=== modified file 'cnote.h'
--- cnote.h	2014-10-10 09:26:49 +0000
+++ cnote.h	2017-10-30 07:41:12 +0000
@@ -3,6 +3,11 @@
 
 #include <QWidget>
 #include <QtGui>
+
+#if QT_VERSION >= 0x050000
+#include <QtWidgets>
+#endif
+
 #include <QDialog>
 
 class Cnote : public QDialog

=== modified file 'dateitem.h'
--- dateitem.h	2016-04-06 03:10:18 +0000
+++ dateitem.h	2017-10-30 07:41:12 +0000
@@ -28,6 +28,10 @@
 #include "datemaskwidget.h"
 #include "ui_dateitem.h"
 
+#ifdef QT5XX
+#include <QtWidgets>
+#endif
+
 namespace Ui {
 class DateItem;
 }
@@ -35,7 +39,7 @@
 class DateItem : public QWidget
 {
     Q_OBJECT
-    
+
 public:
     explicit DateItem(QWidget *parent = 0);
     ~DateItem();
@@ -60,7 +64,7 @@
 public slots:
     void click();
     void clickday();
-    
+
 signals:
     void clicked(QString);
     void day(QString);

=== modified file 'datemaskwidget.h'
--- datemaskwidget.h	2014-03-18 13:37:25 +0000
+++ datemaskwidget.h	2017-10-30 07:41:12 +0000
@@ -18,6 +18,9 @@
  * see <https://launchpad.net/~ubuntukylin~members>
  * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
  *                 Shine Huang <hostc@xxxxxxx>
+ *
+ * Modified @ 2017.10.30 14:09:58 CST
+ * Jinlj <jincsu@xxxxxxx>
  */
 
 #ifndef DATEMASKWIDGET_H
@@ -27,12 +30,17 @@
 #include <QMouseEvent>
 #include "cnote.h"
 
+
+#if QT_VERSION >= 0x050000
+#include <QtWidgets>
+#endif
+
 class DateMaskWidget : public QWidget
 {
     Q_OBJECT
 public:
     explicit DateMaskWidget(QWidget *parent = 0);
-    
+
 signals:
     void clicked();
     void clickday();
@@ -42,7 +50,7 @@
 
 private:
     QPoint mousePos;
-    
+
 };
 
 #endif // DATEMASKWIDGET_H

=== modified file 'main.cpp'
--- main.cpp	2016-03-30 02:52:48 +0000
+++ main.cpp	2017-10-30 07:41:12 +0000
@@ -18,6 +18,9 @@
  * see <https://launchpad.net/~ubuntukylin~members>
  * Authors: Abel Liu <guiltyritter@xxxxxxxxx>
  *                 Shine Huang <hostc@xxxxxxx>
+ *
+ * Modified @ 2017.10.30 14:09:58 CST
+ * Jinlj <jincsu@xxxxxxx>
  */
 
 #include <QtGui>
@@ -30,14 +33,18 @@
 
 int main(int argc, char *argv[])
 {
+    printf("First, you should copy database to `/usr/share/chinese-calendar/db/KylinLunar.db`\n\n");
     //单程序运行处理
     QtSingleApplication app(argc, argv);
     if (app.isRunning())
         return 0;
 
+#if QT_VERSION < 0x050000
     QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
 //    QApplication app(argc, argv);
+#endif
+
     QTranslator translator;
     QTranslator translatorMenu;
 

=== modified file 'qtsingleapplication/src/qtlocalpeer.cpp'
--- qtsingleapplication/src/qtlocalpeer.cpp	2014-02-12 02:40:32 +0000
+++ qtsingleapplication/src/qtlocalpeer.cpp	2017-10-30 07:41:12 +0000
@@ -43,6 +43,8 @@
 #include <QCoreApplication>
 #include <QTime>
 
+#include <QDataStream>
+
 #if defined(Q_OS_WIN)
 #include <QLibrary>
 #include <qt_windows.h>


Follow ups