feat: remember video rect

This commit is contained in:
rankun 2020-03-09 10:14:24 +08:00
parent dd26218ce4
commit d25a6b648a
5 changed files with 48 additions and 0 deletions

View file

@ -71,6 +71,7 @@ Device::~Device()
delete m_vb;
}
if (m_videoForm) {
m_videoForm->close();
delete m_videoForm;
}
emit deviceDisconnect(m_params.serial);
@ -218,6 +219,11 @@ void Device::initSignals()
if (m_videoForm) {
m_videoForm->setWindowTitle(deviceName);
m_videoForm->updateShowSize(size);
QRect rc = Config::getInstance().getRect(getSerial());
if (rc.isValid()) {
m_videoForm->setGeometry(rc);
}
}
// init recorder

View file

@ -430,6 +430,15 @@ void VideoForm::resizeEvent(QResizeEvent *event)
}
}
void VideoForm::closeEvent(QCloseEvent *event)
{
Q_UNUSED(event)
if (!m_device) {
return;
}
Config::getInstance().setRect(m_device->getSerial(), geometry());
}
void VideoForm::dragEnterEvent(QDragEnterEvent *event)
{
event->acceptProposedAction();

View file

@ -49,6 +49,7 @@ protected:
void paintEvent(QPaintEvent *);
void showEvent(QShowEvent *event);
void resizeEvent(QResizeEvent *event);
void closeEvent(QCloseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dragMoveEvent(QDragMoveEvent *event);

View file

@ -44,6 +44,12 @@
#define COMMON_RECORD_FORMAT_INDEX_KEY "RecordFormatIndex"
#define COMMON_RECORD_FORMAT_INDEX_DEF 0
#define SERIAL_WINDOW_RECT_KEY_X "WindowRectX"
#define SERIAL_WINDOW_RECT_KEY_Y "WindowRectY"
#define SERIAL_WINDOW_RECT_KEY_W "WindowRectW"
#define SERIAL_WINDOW_RECT_KEY_H "WindowRectH"
#define SERIAL_WINDOW_RECT_KEY_DEF -1
// 最大尺寸 录制格式
QString Config::s_configPath = "";
@ -140,6 +146,29 @@ void Config::setRecordFormatIndex(int recordFormatIndex)
m_userData->endGroup();
}
void Config::setRect(const QString &serial, const QRect &rc)
{
m_userData->beginGroup(serial);
m_userData->setValue(SERIAL_WINDOW_RECT_KEY_X, rc.left());
m_userData->setValue(SERIAL_WINDOW_RECT_KEY_Y, rc.top());
m_userData->setValue(SERIAL_WINDOW_RECT_KEY_W, rc.width());
m_userData->setValue(SERIAL_WINDOW_RECT_KEY_H, rc.height());
m_userData->endGroup();
m_userData->sync();
}
QRect Config::getRect(const QString &serial)
{
QRect rc;
m_userData->beginGroup(serial);
rc.setX(m_userData->value(SERIAL_WINDOW_RECT_KEY_X, SERIAL_WINDOW_RECT_KEY_DEF).toInt());
rc.setY(m_userData->value(SERIAL_WINDOW_RECT_KEY_Y, SERIAL_WINDOW_RECT_KEY_DEF).toInt());
rc.setWidth(m_userData->value(SERIAL_WINDOW_RECT_KEY_W, SERIAL_WINDOW_RECT_KEY_DEF).toInt());
rc.setHeight(m_userData->value(SERIAL_WINDOW_RECT_KEY_H, SERIAL_WINDOW_RECT_KEY_DEF).toInt());
m_userData->endGroup();
return rc;
}
QString Config::getServerVersion()
{
QString server;

View file

@ -3,6 +3,7 @@
#include <QObject>
#include <QPointer>
#include <QRect>
class QSettings;
class Config : public QObject
@ -29,6 +30,8 @@ public:
void setMaxSizeIndex(int maxSizeIndex);
int getRecordFormatIndex();
void setRecordFormatIndex(int recordFormatIndex);
void setRect(const QString &serial, const QRect &rc);
QRect getRect(const QString &serial);
private:
explicit Config(QObject *parent = nullptr);