Skip to content

Commit

Permalink
format
Browse files Browse the repository at this point in the history
  • Loading branch information
jared2020 committed May 6, 2023
1 parent 25f8a32 commit 762e12d
Show file tree
Hide file tree
Showing 12 changed files with 84 additions and 74 deletions.
16 changes: 8 additions & 8 deletions 3rdparty/TaoCommon/demo/ExampleLog/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@ using namespace Logger;
using namespace std;
const int N = 17;

//原子计数器。不要用普通的int,多线程情况下不准确。
// 原子计数器。不要用普通的int,多线程情况下不准确。
static atomic_int gCount(0);
static QString currentThreadId()
{
stringstream ss;
ss << this_thread::get_id();
return QString::fromStdString(ss.str());
}
//输出log的函数,随便打印一点信息
// 输出log的函数,随便打印一点信息
static void showSomeLogger()
{
//在文件本身的编码是utf-8的前提下,以下三种方式都可以直接输出中文。
// u8是c++11标准支持的字符串字面量写法,可以参考https://zh.cppreference.com/w/cpp/language/string_literal
// QStringLiteral是Qt特有的宏,用来在编译期生成字符串字面量
// QString::fromLocal8Bit可以在运行过程中,动态处理中文字符串。
// 在文件本身的编码是utf-8的前提下,以下三种方式都可以直接输出中文。
// u8是c++11标准支持的字符串字面量写法,可以参考https://zh.cppreference.com/w/cpp/language/string_literal
// QStringLiteral是Qt特有的宏,用来在编译期生成字符串字面量
// QString::fromLocal8Bit可以在运行过程中,动态处理中文字符串。
for (int i = 0; i < 1000; ++i)
{
gCount++;
Expand All @@ -44,7 +44,7 @@ static void logThread()
{
vector<std::thread> threads;

//创建N个线程
// 创建N个线程
for (unsigned long long i = 0; i < N; ++i)
{
threads.emplace_back(thread(showSomeLogger));
Expand All @@ -66,7 +66,7 @@ int main(int argc, char* argv[])

LOG_INFO << currentThreadId() << u8"故事就是从这里开始的";

//延迟创建 logger
// 延迟创建 logger
QTimer::singleShot(2000, [&]() {
std::thread logger(logThread);
logger.detach();
Expand Down
6 changes: 3 additions & 3 deletions 3rdparty/TaoCommon/src/TaoCommon/Common/ObjectMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
namespace TaoCommon
{

//对象存储器
// 对象存储器
template <typename Key, typename Value>
class ObjectMap
{
Expand Down Expand Up @@ -54,7 +54,7 @@ class ObjectMap
protected:
std::unordered_map<Key, Value> m_objMap;
};
//智能对象存储器。自动生成key,自动管理对象。
// 智能对象存储器。自动生成key,自动管理对象。
template <typename ObjectType>
class CObjectMap
{
Expand Down Expand Up @@ -98,7 +98,7 @@ class CObjectMap
protected:
ObjectMap<std::type_index, std::shared_ptr<ObjectType>> m_objMap;
};
//优先级对象存储器。自动生成key,自动管理对象。支持按优先级处理
// 优先级对象存储器。自动生成key,自动管理对象。支持按优先级处理
template <typename ObjectType>
class CLevelObjectMap
{
Expand Down
12 changes: 6 additions & 6 deletions 3rdparty/TaoCommon/src/TaoCommon/Common/Package.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
#include <QByteArrayList>
#include <QDataStream>
#include <QIODevice>
//简易的封包、拆包。主要用在socket中传输连续的数据时,处理粘在一起的问题。
//这段代码是经过很多实际项目验证的,可放心使用。
//适用的场景很简单,就是前面4个字节是头部,表示数据的长度,紧跟着就是那么长的数据。头和数据,加起来就是一个包。
// 简易的封包、拆包。主要用在socket中传输连续的数据时,处理粘在一起的问题。
// 这段代码是经过很多实际项目验证的,可放心使用。
// 适用的场景很简单,就是前面4个字节是头部,表示数据的长度,紧跟着就是那么长的数据。头和数据,加起来就是一个包。

//假定头部占一个uint32的长度
// 假定头部占一个uint32的长度
const int static headerLength = sizeof(quint32);

//封包。 入参为数据,返回值是 数据前面加一个头. 这就是一个数据包了
// 封包。 入参为数据,返回值是 数据前面加一个头. 这就是一个数据包了
static QByteArray pack(const QByteArray& data)
{
QByteArray header(headerLength, 0);
QDataStream os(&header, QIODevice::WriteOnly);
os << static_cast<quint32>(data.length());
return header + data;
}
//拆包。入参为连续的数据,返回值是拆出来的所有包列表
// 拆包。入参为连续的数据,返回值是拆出来的所有包列表
static QByteArrayList unpack(const QByteArray& data)
{
QByteArrayList list;
Expand Down
22 changes: 11 additions & 11 deletions 3rdparty/TaoCommon/src/TaoCommon/Common/PropertyHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
#include <QObject>
#include <QtGlobal>

//比较器的 声明
// 比较器的 声明
template <typename T>
struct Compare;

//通用比较器
// 通用比较器
template <typename T>
struct Compare
{
Expand Down Expand Up @@ -37,14 +37,14 @@ struct Compare<double>
// 成员变量
#define PROP_MEM(T, NAME, InitValue) T m_##NAME = InitValue;

//普通 get 函数
// 普通 get 函数
#define MEM_GET(T, NAME) \
const T& NAME() const \
{ \
return m_##NAME; \
}

//普通 set 函数
// 普通 set 函数
#define MEM_SET(T, NAME) \
void set_##NAME(const T& value) \
{ \
Expand All @@ -61,13 +61,13 @@ private:

//**********************************QObject 属性**********************************

//属性 change 信号
// 属性 change 信号
#define PROP_CHANGE(T, NAME) Q_SIGNAL void NAME##Changed(const T& value);

//属性 get 函数 (和普通get没区别)
// 属性 get 函数 (和普通get没区别)
#define PROP_GET(T, NAME) MEM_GET(T, NAME)

//属性 set 函数 (比普通set 多 changeCheck,change 时发信号. check 时处理 float 和 double 数据的精度)
// 属性 set 函数 (比普通set 多 changeCheck,change 时发信号. check 时处理 float 和 double 数据的精度)
#define PROP_SET(T, NAME) \
void set_##NAME(const T& value) \
{ \
Expand Down Expand Up @@ -135,10 +135,10 @@ class AppInfo : public QObject

//**********************************QObject 属性 二进制兼容版, 头文件声明 与 源文件定义 分离**********************************

//属性 get 函数声明
// 属性 get 函数声明
#define PROP_GET_DECL(T, NAME) const T& NAME() const;

//属性 set 函数声明
// 属性 set 函数声明
#define PROP_SET_DECL(T, NAME) void set_##NAME(const T& value);

// d 指针类型名
Expand All @@ -159,13 +159,13 @@ private:
// d 类的成员
#define D_MEM(T, NAME, InitValue) PROP_MEM(T, NAME, InitValue)

//属性 get 函数定义
// 属性 get 函数定义
#define PROP_GET_IMPL(ClasName, T, NAME) \
const T& ClasName::NAME() const \
{ \
return D_NAME->m_##NAME; \
}
//属性 set 函数定义
// 属性 set 函数定义
#define PROP_SET_IMPL(ClasName, T, NAME) \
void ClasName::set_##NAME(const T& value) \
{ \
Expand Down
24 changes: 12 additions & 12 deletions 3rdparty/TaoCommon/src/TaoCommon/Common/Subject.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
#include <vector>
namespace TaoCommon
{
//观察者模式,Subject-Observer。
// Subject 事件或消息的主体。模板参数为观察者类型
// 观察者模式,Subject-Observer。
// Subject 事件或消息的主体。模板参数为观察者类型
template <typename ObserverType>
class Subject
{
Expand All @@ -14,7 +14,7 @@ class Subject
{
m_obsList.clear();
}
//订阅
// 订阅
void subscibe(ObserverType* obs)
{
auto itor = std::find(m_obsList.begin(), m_obsList.end(), obs);
Expand All @@ -23,28 +23,28 @@ class Subject
m_obsList.push_back(obs);
}
}
//取消订阅
// 取消订阅
void unSubscibe(ObserverType* obs)
{
m_obsList.erase(std::remove(m_obsList.begin(), m_obsList.end(), obs));
}
//发布。这里的模板参数为函数类型。
// 发布。这里的模板参数为函数类型。
template <typename FuncType>
void publish(FuncType func)
{
for (auto obs : m_obsList)
{
//调用回调函数,将obs作为第一个参数传递
// 调用回调函数,将obs作为第一个参数传递
func(obs);
}
}
//发布。支持过滤观察者。通常用在 观察者触发消息发布时,过滤观察者自己。
// 发布。支持过滤观察者。通常用在 观察者触发消息发布时,过滤观察者自己。
template <typename FuncType>
void publish(FuncType func, ObserverType* exceptObs)
{
for (auto obs : m_obsList)
{
//调用回调函数,将obs作为第一个参数传递
// 调用回调函数,将obs作为第一个参数传递
if (obs != exceptObs)
{
func(obs);
Expand All @@ -56,7 +56,7 @@ class Subject
std::vector<ObserverType*> m_obsList;
};

//优先级观察者模式,Subject-Observer。
// 优先级观察者模式,Subject-Observer。
template <typename ObserverType>
class LevelSubject
{
Expand All @@ -65,7 +65,7 @@ class LevelSubject
{
m_obsMap.clear();
}
//订阅
// 订阅
void subscibe(ObserverType* obs, uint32_t level)
{
auto& vec = m_obsMap[level];
Expand All @@ -75,15 +75,15 @@ class LevelSubject
vec.push_back(obs);
}
}
//取消订阅
// 取消订阅
void unSubscibe(ObserverType* obs)
{
for (auto& obsPair : m_obsMap)
{
obsPair.second.erase(std::remove(obsPair.second.begin(), obsPair.second.end(), obs));
}
}
//发布。这里的模板参数为函数类型。
// 发布。这里的模板参数为函数类型。
template <typename FuncType>
void publish(FuncType func)
{
Expand Down
4 changes: 2 additions & 2 deletions 3rdparty/TaoCommon/src/TaoCommon/Frameless/TaoFrameLessView.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
#include <QQuickView>
#include <QRegion>

//无边框窗口,主要用来实现自定义标题栏。
// 无边框窗口,主要用来实现自定义标题栏。
// Windows平台支持拖动和改变大小,支持Aero效果
//非Windows平台,去掉边框,不做其它处理。由Qml模拟resize和拖动。
// 非Windows平台,去掉边框,不做其它处理。由Qml模拟resize和拖动。
class TaoFrameLessViewPrivate;
class TAO_API TaoFrameLessView : public QQuickView
{
Expand Down
30 changes: 16 additions & 14 deletions 3rdparty/TaoCommon/src/TaoCommon/Frameless/TaoFrameLessView_win.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
#include <QScreen>
#include <QWindow>

#include <windows.h>

#include <VersionHelpers.h>
#include <WinUser.h>
#include <dwmapi.h>
#include <objidl.h> // Fixes error C2504: 'IUnknown' : base class undefined
#include <windows.h>

#include <windowsx.h>
#include <wtypes.h>
#pragma comment(lib, "Dwmapi.lib") // Adds missing library, fixes error LNK2019: unresolved
Expand Down Expand Up @@ -136,9 +138,9 @@ TaoFrameLessView::TaoFrameLessView(QWindow* parent)
: QQuickView(parent)
, d(new TaoFrameLessViewPrivate)
{
//此处不需要设置flags
// setFlags(Qt::CustomizeWindowHint | Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint | Qt::WindowTitleHint |
// Qt::WindowSystemMenuHint);
// 此处不需要设置flags
// setFlags(Qt::CustomizeWindowHint | Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint | Qt::WindowTitleHint |
// Qt::WindowSystemMenuHint);
setResizeMode(SizeRootObjectToView);

setIsMax(windowState() == Qt::WindowMaximized);
Expand All @@ -154,19 +156,19 @@ void TaoFrameLessView::showEvent(QShowEvent* e)
if (d->m_firstRun)
{
d->m_firstRun = false;
//第一次show的时候,设置无边框。不在构造函数中设置。取winId会触发QWindowsWindow::create,直接创建win32窗口,引起错乱(win7 或者虚拟机启动即黑屏)。
// 第一次show的时候,设置无边框。不在构造函数中设置。取winId会触发QWindowsWindow::create,直接创建win32窗口,引起错乱(win7 或者虚拟机启动即黑屏)。
d->setBorderLess((HWND)(winId()), d->borderless);
{
// Qt 5.15.2 的bug; 问题复现及解决方法:当使用WM_NCCALCSIZE 修改非客户区大小后,移动窗口到其他屏幕时,qwindows.dll 源码 qwindowswindow.cpp:2447
// updateFullFrameMargins() 函数 处会调用qwindowswindow.cpp:2453 的
// calculateFullFrameMargins函数重新获取默认的非客户区大小,导致最外层窗口移动屏幕时会触发resize消息,引起40像素左右的黑边;故此处创建Menu
// 使其调用qwindowswindow.cpp:2451 的 QWindowsContext::forceNcCalcSize() 函数计算非客户区大小

//已知负面效果: 引入win32 MENU后,Qt程序中如果有alt开头的快捷键,会不生效,被Qt滤掉了,需要修改Qt源码
// QWindowsKeyMapper::translateKeyEventInternal 中的
// if (msgType == WM_SYSKEYDOWN && (nModifiers & AltAny) != 0 && GetMenu(msg.hwnd) != nullptr)
// return false;
// 这两行屏蔽掉
// 已知负面效果: 引入win32 MENU后,Qt程序中如果有alt开头的快捷键,会不生效,被Qt滤掉了,需要修改Qt源码
// QWindowsKeyMapper::translateKeyEventInternal 中的
// if (msgType == WM_SYSKEYDOWN && (nModifiers & AltAny) != 0 && GetMenu(msg.hwnd) != nullptr)
// return false;
// 这两行屏蔽掉

d->mMenuHandler = ::CreateMenu();
::SetMenu((HWND)winId(), d->mMenuHandler);
Expand Down Expand Up @@ -262,8 +264,8 @@ bool TaoFrameLessView::nativeEvent(const QByteArray& eventType, void* message, l
const long border_width = 4;
if (!result)
{
//防御式编程
//一般不会发生这种情况,win7一些极端情况,会传空指针进来。解决方案是升级驱动、切换到basic主题。
// 防御式编程
// 一般不会发生这种情况,win7一些极端情况,会传空指针进来。解决方案是升级驱动、切换到basic主题。
return false;
}

Expand All @@ -287,7 +289,7 @@ bool TaoFrameLessView::nativeEvent(const QByteArray& eventType, void* message, l
if (mode == TRUE && d->borderless)
{
*result = WVR_REDRAW;
//规避 拖动border进行resize时界面闪烁
// 规避 拖动border进行resize时界面闪烁
if (!isMaxWin(this) && !isFullWin(this))
{
if (clientRect->top != 0)
Expand Down Expand Up @@ -331,7 +333,7 @@ bool TaoFrameLessView::nativeEvent(const QByteArray& eventType, void* message, l

*result = 0;
if (!isMaxWin(this) && !isFullWin(this))
{ //非最大化、非全屏时,进行命中测试,处理边框拖拽
{ // 非最大化、非全屏时,进行命中测试,处理边框拖拽
*result = hitTest(winrect, x, y, border_width);
if (0 != *result)
{
Expand Down
12 changes: 6 additions & 6 deletions 3rdparty/TaoCommon/src/TaoCommon/Logger/Logger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ static void outputMessageAsync(QtMsgType type, const QMessageLogContext& context
Q_UNUSED(context)
QDateTime dt = QDateTime::currentDateTime();

//每小时一个文件
// 每小时一个文件
QString fileNameDt = dt.toString(QStringLiteral("yyyy-MM-dd_hh"));

//每分钟一个文件
// QString fileNameDt = dt.toString("yyyy-MM-dd_hh_mm");
// 每分钟一个文件
// QString fileNameDt = dt.toString("yyyy-MM-dd_hh_mm");

QString contentDt = dt.toString(QStringLiteral("yyyy-MM-dd hh:mm:ss"));
QString message = QStringLiteral("%1 %2").arg(contentDt).arg(msg);
Expand Down Expand Up @@ -116,11 +116,11 @@ static void outputMessage(QtMsgType type, const QMessageLogContext& context, con
Q_UNUSED(context)
QDateTime dt = QDateTime::currentDateTime();

//每小时一个文件
// 每小时一个文件
QString fileNameDt = dt.toString(QStringLiteral("yyyy-MM-dd_hh"));

//每分钟一个文件
// QString fileNameDt = dt.toString("yyyy-MM-dd_hh_mm");
// 每分钟一个文件
// QString fileNameDt = dt.toString("yyyy-MM-dd_hh_mm");

QString contentDt = dt.toString(QStringLiteral("yyyy-MM-dd hh:mm:ss"));
QString message = QStringLiteral("%1 %2").arg(contentDt).arg(msg);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,3 @@ QuickListItemBase::QuickListItemBase(QObject* parent)
}

QuickListItemBase::~QuickListItemBase() { }

Loading

0 comments on commit 762e12d

Please sign in to comment.