代码拉取完成,页面将自动刷新
同步操作将从 爬山虎/ndd 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "MediatorDisplay.h"
//这里如果直接让左右互相同步,互相影响,可能导致混乱。需要一个中间调停者模式,作为中间人去控制同步消息
//中介者模式意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
//主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。
//之前不使用该模式时,左右显示同步互相交互,时而发生消息混乱
MediatorDisplay::MediatorDisplay():QObject(nullptr)
{
m_leftLineNum = 0;
m_rightLineNum = 0;
m_leftScrollValue = 0;
m_rightScrollValue = 0;
}
MediatorDisplay::~MediatorDisplay()
{
}
void MediatorDisplay::setLeftNum(int value)
{
m_leftLineNum = value;
if (m_leftLineNum != m_rightLineNum)
{
emit syncCurLineNum(0);
}
}
void MediatorDisplay::setRightNum(int value)
{
m_rightLineNum = value;
if (m_leftLineNum != m_rightLineNum)
{
emit syncCurLineNum(1);
}
}
int MediatorDisplay::getLeftNum()
{
return m_leftLineNum;
}
int MediatorDisplay::getRightNum()
{
return m_rightLineNum;
}
void MediatorDisplay::setLeftScrollValue(int value)
{
if (m_leftScrollValue != value)
{
m_leftScrollValue = value;
}
//如果左右不相等,则推动对方去同步
if (m_leftScrollValue != m_rightScrollValue)
{
emit syncCurScrollValue(0);
}
}
void MediatorDisplay::setRightScrollValue(int value)
{
if (m_rightScrollValue != value)
{
m_rightScrollValue = value;
}
if (m_leftScrollValue != m_rightScrollValue)
{
emit syncCurScrollValue(1);
}
}
int MediatorDisplay::getLeftScrollValue()
{
return m_leftScrollValue;
}
int MediatorDisplay::getRightScrollValue()
{
return m_rightScrollValue;
}
void MediatorDisplay::setLeftScrollXValue(int value)
{
if (m_leftScrollXValue != value)
{
m_leftScrollXValue = value;
}
//如果左右不相等,则推动对方去同步
if (m_leftScrollXValue != m_rightScrollXValue)
{
emit syncCurScrollXValue(0);
}
}
void MediatorDisplay::setRightScrollXValue(int value)
{
if (m_rightScrollXValue != value)
{
m_rightScrollXValue = value;
}
if (m_leftScrollXValue != m_rightScrollXValue)
{
emit syncCurScrollXValue(1);
}
}
int MediatorDisplay::getLeftScrollXValue()
{
return m_leftScrollXValue;
}
int MediatorDisplay::getRightScrollXValue()
{
return m_rightScrollXValue;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。