kylin-weather/controller/Interaction.h

282 lines
9.1 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef INTERACTION_H
#define INTERACTION_H
#include <QObject>
#include <QPixmap>
#include <QVariant>
#include <QFileInfo>
#include <QStandardItemModel>
#include "global/corevar.h"
#include <QPersistentModelIndex>
class coreinteraction;
class Interaction : public QObject
{
Q_OBJECT
signals:
/*
* 接口功能:后端初始化后,初始化前端
* 接口场景:网络诊断完成后,初始化前端
* 接口类型:信号,需要绑定
* 参数类型:无
* 参数描述:无
*/
void toStartView();
/*
* 接口功能网络错误给ui层传递无网络信息
* 接口场景:程序启动时,检测网络连接状况
* 接口类型:信号,需要绑定
* 参数类型QString
* 参数描述:返回网络错误信息
*/
void netUiShow(QString);
/*
* 接口功能:请求服务器错误
* 接口场景:访问服务器拿数据--目前返回的是code值
* 接口类型:信号,需要绑定
* 参数类型int
* 参数描述:返回访问服务器错误信息
*/
void serverUiShow(QString);
/*
* 接口功能:数据解析
* 接口场景:服务器返回数据为空或不全
* 接口类型:信号,需要绑定
* 参数类型QString
* 参数描述:返回数据解析错误信息
*/
void dataUiShow(QString);
/*
* 接口功能:定位失败
* 接口场景:定位时
* 接口类型:信号,需要绑定
* 参数类型QString
* 参数描述:返回定位失败
*/
void geoUiShow(QString);
/*
* 接口功能:网络超时
* 接口场景:各处需要检测超时的地方
* 接口类型:信号,需要绑定
* 参数类型bool
* 参数描述:网络超时
*/
void netTimeout(QString);
/*
* 接口功能:显示生活指数信息
* 接口场景:显示生活指数信息
* 接口类型:信号,需要绑定
* 参数类型struct
* 参数描述:生活指数信息
*/
void showLifeStyle(LifeStyle m_lifeStyle); //发送信号,显示生活指数信息
/*
* 接口功能:显示当前城市信息
* 接口场景:显示当前城市信息
* 接口类型:信号,需要绑定
* 参数类型struct
* 参数描述:当前城市信息
*/
void showCurrent(CurrentWeather m_currentWeather); //发送信号,显示当前城市信息
/*
* 接口功能:显示城市预测信息
* 接口场景:显示城市预测信息
* 接口类型:信号,需要绑定
* 参数类型struct
* 参数描述:当前城市信息
*/
void showForcast(ForecastWeather forecastWeather); //发送信号,显示城市预测信息
/*
* 接口功能:显示逐小时信息
* 接口场景:显示逐小时信息
* 接口类型:信号,需要绑定
* 参数类型QVariant
* 参数描述:逐小时信息
*/
void showHourly(QVariant var); //发送信号,显示逐小时信息
/*
* 接口功能搜索错误给ui层传递无搜索结果信息
* 接口场景:输入或不输入字符,无搜索内容
* 接口类型:信号,需要绑定
* 参数类型:无
* 参数描述:返回搜索错误信息
*/
void searchNull();
/*
* 接口功能搜索结果给ui层传递搜索结果信息
* 接口场景:输入或不输入字符,有/无搜索内容
* 接口类型:信号,需要绑定
* 参数类型bool
* 参数描述:返回有/无搜索结果
*/
void searchUiShow(bool hasCity);
/*
* 接口功能:收藏城市为空
* 接口场景:判断收藏城市是否为空
* 接口类型:信号,需要绑定
* 参数类型:无
* 参数描述:无
*/
void collectNull();
/*
* 接口功能:收藏城市不为空
* 接口场景:判断收藏城市是否为空
* 接口类型:信号,需要绑定
* 参数类型:无
* 参数描述:无
*/
void collectShow();
/*
* 接口功能:关闭程序
* 接口场景:点击关闭按钮和托盘退出选项
* 接口类型:信号,需要绑定
* 参数类型:无
* 参数描述:无
*/
void closePro();
/*
* 接口功能:在屏幕中间显示
* 接口场景:显示
* 接口类型:信号,需要绑定
* 参数类型:无
* 参数描述:无
*/
void showInCenter();
public:
/*
* 接口功能单例取指针供UI层实例化接口对象
* 接口场景:程序启动时,首次调用要放到主界面构造函数的第一行
* 接口类型:函数,直接调用
* 返回类型Interaction
* 返回描述:接口对象
*/
static Interaction *getInstance();
/*
* 接口功能:初始化核心模块
* 接口场景:程序启动时,放在主界面构造函数的第二行,只需调用这一次,多次调用无效果
* 接口类型:函数,直接调用
* 参数类型QStringList
* 参数描述程序启动时传入的参数一般来自QApplication::arguments()
*/
virtual void creatCore(const QStringList &list) = 0;
/*
* 接口功能:切换城市
* 接口场景:点击城市切换主界面城市
* 接口类型:函数,直接调用
*/
virtual void changeCity(QString cityCode) = 0; //切换到目标城市
/*
* 接口功能:搜索城市
* 接口场景:在搜索框输入字符
* 接口类型:函数,直接调用
*/
virtual void searchResult(QString inputText) = 0; //切换到目标城市
/*
* 接口功能获取model指针
* 接口场景:获取城市列表
* 接口类型:函数,直接调用
* 备注对应QTabelView
*/
virtual QStandardItemModel *getCityModel() = 0; //获取搜索model指针
/*
* 接口功能获取收藏model指针
* 接口场景:获取城市列表
* 接口类型:函数,直接调用
* 备注对应QTabelView
*/
virtual QStandardItemModel *getCollectModel() = 0; //获取收藏model指针
/*
* 接口功能:从搜索列表切换城市
* 接口场景:点击城市切换主界面城市
* 接口类型:函数,直接调用
*/
virtual void changeCityFromSearch(QModelIndex index) = 0; //切换到目标城市
/*
* 接口功能:从搜索列表添加城市到收藏城市
* 接口场景:点击“+”号按钮添加城市
* 接口类型:函数,直接调用
*/
virtual void addCollectCity(QModelIndex index) = 0; //切换到目标城市
/*
* 接口功能:从收藏城市列表切换城市
* 接口场景:点击城市切换主界面城市
* 接口类型:函数,直接调用
*/
virtual void changeCityFromCollect(QModelIndex index) = 0; //切换到目标城市
/*
* 接口功能:删除收藏城市列表的城市
* 接口场景:点击删除按钮添加城市
* 接口类型:函数,直接调用
*/
virtual void delCollectCity(QModelIndex index) = 0; //切换到目标城市
/*
* 接口功能:初始化核心模块
* 接口场景:程序启动时,放在主界面构造函数的第二行,只需调用这一次,多次调用无效果
* 接口类型:函数,直接调用
* 参数类型QStringList
* 参数描述程序启动时传入的参数一般来自QApplication::arguments()
*/
virtual void test() = 0;
/*
* 接口功能:加载收藏城市列表
* 接口场景show收藏城市列表时发送此信号
* 接口类型:函数,直接调用
* 参数类型:无
* 参数描述:无
*/
virtual void loadCollectCity() = 0;
/*
* 接口功能:加载收藏城市列表
* 接口场景show收藏城市列表时发送此信号
* 接口类型:函数,直接调用
* 参数类型:无
* 参数描述:无
*/
virtual void showCenterAfter() = 0;
/*
* 接口功能:退出程序
* 接口场景:点击关闭,退出等按键
* 接口类型:函数,可直接调用
* 参数类型:无
* 参数描述:无
*/
virtual void closePrograme() = 0;
/*
* 接口功能:允许定位
* 接口场景:点击菜单栏定位选项的允许定位
* 接口类型:
* 参数类型:无
* 参数描述:无
*/
virtual void allowLocationYes() = 0;
/*
* 接口功能:不允许定位
* 接口场景:点击菜单栏定位选项的不允许定位
* 接口类型:
* 参数类型:无
* 参数描述:无
*/
virtual void allowLocationNo() = 0;
/*
* 接口功能:重试刷新网络
* 接口场景:点击网络异常界面重试按钮
* 接口类型:
* 参数类型:无
* 参数描述:无
*/
virtual void refresh() = 0;
private:
static Interaction *m_interaction; //单例指针
};
#endif // INTERACTION_H