#include "MediatorFileTree.h" /* 文件夹对比界面的中介者,使用中介者是为了让消息经过中介对象统一调度,避免左右互相依赖导致交互混乱 */ MediatorFileTree::MediatorFileTree() :QObject(nullptr) { } MediatorFileTree::~MediatorFileTree() { } void MediatorFileTree::setLeftScrollValue(int value) { m_leftScrollValue = value; //如果左右不相等,则推动对方去同步 if (m_leftScrollValue != m_rightScrollValue) { emit syncCurScrollValue(0); } } void MediatorFileTree::setRightScrollValue(int value) { m_rightScrollValue = value; if (m_leftScrollValue != m_rightScrollValue) { emit syncCurScrollValue(1); } } int MediatorFileTree::getLeftScrollValue() { return m_leftScrollValue; } int MediatorFileTree::getRightScrollValue() { return m_rightScrollValue; } //设置item。中介本身不保存ITEM,因为太多,发送消息给外面空间 void MediatorFileTree::setLeftItemStatus(QString name, int status) { emit syncExpandStatus(name, RC_LEFT, status); } void MediatorFileTree::setRightItemStatus(QString name, int status) { emit syncExpandStatus(name, RC_RIGHT, status); }