forked from openkylin/ukui-system-appwidget
Fix: 解决平板桌面拖动状态下时间小插件的AM/PM与上午/下午偶现来回跳动的问题
This commit is contained in:
parent
34b61a2dcf
commit
cb6f507159
|
@ -1,25 +1,11 @@
|
|||
#include "timeprovider.h"
|
||||
#include <ukui/kappwidgetmanager.h>
|
||||
#include <unistd.h>
|
||||
#define UKUI_CONTROL_CENTER_SERVER "org.freedesktop.Accounts"
|
||||
//#define UKUI_CONTROL_CENTER_PATH "/org/freedesktop/Accounts/User1000"
|
||||
#define UKUI_CONTROL_CENTER_INTERFACE "org.freedesktop.Accounts.User"
|
||||
#define PROPERTIES_NAME "FormatsLocale"
|
||||
|
||||
TimeProvider::TimeProvider(QString providername, QObject *parent)
|
||||
: KAppWidgetProvider(providername, parent)
|
||||
{
|
||||
QString UKUI_CONTROL_CENTER_PATH = "/org/freedesktop/Accounts/User" + QString("%1").arg(QString::number(getuid()));
|
||||
m_interface = new QDBusInterface(UKUI_CONTROL_CENTER_SERVER,
|
||||
UKUI_CONTROL_CENTER_PATH,
|
||||
UKUI_CONTROL_CENTER_INTERFACE,
|
||||
QDBusConnection::systemBus());
|
||||
m_local = m_interface->property(PROPERTIES_NAME);
|
||||
qDebug() << "当前FormatsLocale为:" << m_local;
|
||||
|
||||
}
|
||||
TimeProvider::~TimeProvider()
|
||||
{
|
||||
delete m_manager;
|
||||
}
|
||||
void TimeProvider::appWidgetRecevie(const QString &eventname,
|
||||
const QString &widgetname,
|
||||
|
@ -31,12 +17,7 @@ void TimeProvider::appWidgetRecevie(const QString &eventname,
|
|||
}
|
||||
void TimeProvider::appWidgetUpdate()
|
||||
{
|
||||
QVariantMap m;
|
||||
m.insert("FormatsLocale", m_local);
|
||||
if(m_manager) {
|
||||
m_manager->updateAppWidget("time", m);
|
||||
qDebug() <<"更新时间小插件";
|
||||
}
|
||||
|
||||
}
|
||||
void TimeProvider::appWidgetDisable()
|
||||
{
|
||||
|
@ -48,15 +29,7 @@ void TimeProvider::appWidgetDeleted()
|
|||
}
|
||||
void TimeProvider::appWidgetEnable()
|
||||
{
|
||||
if(!m_manager) {
|
||||
m_manager = new AppWidget::KAppWidgetManager(this);
|
||||
}
|
||||
QVariantMap m;
|
||||
m.insert("FormatsLocale" , m_local);
|
||||
if(m_manager) {
|
||||
m_manager->updateAppWidget("time", m);
|
||||
qDebug() <<"更新时间小插件";
|
||||
}
|
||||
|
||||
}
|
||||
void TimeProvider::appWidgetClicked(const QString &widgetname, const QDBusVariant &value)
|
||||
{
|
||||
|
|
|
@ -16,10 +16,6 @@ public:
|
|||
void appWidgetDeleted();
|
||||
void appWidgetEnable();
|
||||
void appWidgetClicked(const QString &widgetname, const QDBusVariant &value);
|
||||
private:
|
||||
AppWidget::KAppWidgetManager * m_manager = nullptr;
|
||||
QDBusInterface *m_interface = nullptr;
|
||||
QVariant m_local;
|
||||
};
|
||||
|
||||
#endif // TIMEPROVIDER_H
|
||||
|
|
|
@ -14,7 +14,6 @@ AppWidget {
|
|||
property double scalefactor: 1.00
|
||||
property string timeformat: "12";
|
||||
property string dateformat: "cn";
|
||||
property string locale: "zh_CN.UTF-8"
|
||||
property string hour;
|
||||
property string minute;
|
||||
property int hournumber;
|
||||
|
@ -36,23 +35,10 @@ AppWidget {
|
|||
appwidget.minute = Qt.formatTime(new Date(),"mm");
|
||||
if(appwidget.timeformat === "12") {
|
||||
appwidget.hournumber = Number(appwidget.hour);
|
||||
ampm.text = Qt.formatTime(new Date(), "AP")
|
||||
if(appwidget.hournumber > 12) {
|
||||
if(appwidget.locale == "zh_CN.UTF-8") {
|
||||
ampm.text = "下午"
|
||||
}
|
||||
else if(appwidget.locale == "en_US.UTF-8") {
|
||||
ampm.text = "PM"
|
||||
}
|
||||
appwidget.hournumber -= 12;
|
||||
}
|
||||
else {
|
||||
if(appwidget.locale == "zh_CN.UTF-8") {
|
||||
ampm.text = "上午"
|
||||
}
|
||||
else if(appwidget.locale == "en_US.UTF-8") {
|
||||
ampm.text = "AM"
|
||||
}
|
||||
}
|
||||
|
||||
if(appwidget.hournumber < 10) {
|
||||
time1rec.width = 244*appwidget.scalefactor
|
||||
|
@ -286,8 +272,6 @@ AppWidget {
|
|||
|
||||
initScalefactor()
|
||||
gettime.start();
|
||||
|
||||
appwidget.update.connect(appwidget.onupdate);
|
||||
userStatusChangedSignal.connect(onUserStatusChanged)
|
||||
console.log("qml 接收到数据更新信号");
|
||||
|
||||
|
@ -310,19 +294,6 @@ AppWidget {
|
|||
console.log("qml 窗口高度改变,重新计算缩放比");
|
||||
initScalefactor()
|
||||
}
|
||||
|
||||
|
||||
function onupdate()
|
||||
{
|
||||
for (var i in appwidget.datavalue)
|
||||
{
|
||||
var info = appwidget.datavalue[i];
|
||||
if( i === "FormatsLocale") {
|
||||
console.log("date", info);
|
||||
appwidget.locale = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
function onGsettingUpdate(key, value)
|
||||
{
|
||||
if(key === "hoursystem")
|
||||
|
|
Loading…
Reference in New Issue