HGGitLab

Commit 6ff349b2 authored by luoliangyi's avatar luoliangyi

增加状态栏功能

parent 81f777ff
...@@ -67,7 +67,8 @@ SOURCES += \ ...@@ -67,7 +67,8 @@ SOURCES += \
mainwindow.cpp \ mainwindow.cpp \
../../../ui/HGImgView.cpp \ ../../../ui/HGImgView.cpp \
../../../ui/HGImgThumb.cpp \ ../../../ui/HGImgThumb.cpp \
widget_imgproc_base.cpp widget_imgproc_base.cpp \
widget_statusbar.cpp
HEADERS += \ HEADERS += \
../../../ui/HGUIGlobal.h \ ../../../ui/HGUIGlobal.h \
...@@ -85,7 +86,8 @@ HEADERS += \ ...@@ -85,7 +86,8 @@ HEADERS += \
mainwindow.h \ mainwindow.h \
../../../ui/HGImgView.h \ ../../../ui/HGImgView.h \
../../../ui/HGImgThumb.h \ ../../../ui/HGImgThumb.h \
widget_imgproc_base.h widget_imgproc_base.h \
widget_statusbar.h
FORMS += \ FORMS += \
dialog_export.ui \ dialog_export.ui \
...@@ -100,7 +102,8 @@ FORMS += \ ...@@ -100,7 +102,8 @@ FORMS += \
dialog_saveas.ui \ dialog_saveas.ui \
dialog_savequality.ui \ dialog_savequality.ui \
mainwindow.ui \ mainwindow.ui \
widget_imgproc_base.ui widget_imgproc_base.ui \
widget_statusbar.ui
TRANSLATIONS += \ TRANSLATIONS += \
Scanner_zh_CN.ts Scanner_zh_CN.ts
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <QButtonGroup> #include <QButtonGroup>
#include <QMessageBox> #include <QMessageBox>
#include <algorithm> #include <algorithm>
#include <QRegExpValidator>
#include "dialog_savequality.h" #include "dialog_savequality.h"
#include "HGUIGlobal.h" #include "HGUIGlobal.h"
...@@ -39,8 +40,7 @@ Dialog_Export::Dialog_Export(int total, const std::vector<int> &selectedIndexs, ...@@ -39,8 +40,7 @@ Dialog_Export::Dialog_Export(int total, const std::vector<int> &selectedIndexs,
ui->radio_allPages->setChecked(true); ui->radio_allPages->setChecked(true);
QRegExp rx("[0-9,-]+$"); QRegExp rx("[0-9,-]+$");
m_qReg = new QRegExpValidator(rx, this); ui->lineEdit_nominatePages->setValidator(new QRegExpValidator(rx, this));
ui->lineEdit_nominatePages->setValidator(m_qReg);
ui->lab_nominatePages->setEnabled(ui->radio_nominatedPages->isChecked()); ui->lab_nominatePages->setEnabled(ui->radio_nominatedPages->isChecked());
ui->lineEdit_nominatePages->setEnabled(ui->radio_nominatedPages->isChecked()); ui->lineEdit_nominatePages->setEnabled(ui->radio_nominatedPages->isChecked());
ui->lab_warning->setVisible(false); ui->lab_warning->setVisible(false);
...@@ -48,9 +48,6 @@ Dialog_Export::Dialog_Export(int total, const std::vector<int> &selectedIndexs, ...@@ -48,9 +48,6 @@ Dialog_Export::Dialog_Export(int total, const std::vector<int> &selectedIndexs,
Dialog_Export::~Dialog_Export() Dialog_Export::~Dialog_Export()
{ {
delete m_qReg;
m_qReg = nullptr;
delete ui; delete ui;
} }
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#define DIALOG_EXPORT_H #define DIALOG_EXPORT_H
#include <QDialog> #include <QDialog>
#include <QRegExpValidator>
namespace Ui { namespace Ui {
class Dialog_Export; class Dialog_Export;
...@@ -35,7 +34,6 @@ private: ...@@ -35,7 +34,6 @@ private:
Ui::Dialog_Export *ui; Ui::Dialog_Export *ui;
int m_total; int m_total;
std::vector<int> m_selectedIndexs; std::vector<int> m_selectedIndexs;
QRegExpValidator *m_qReg;
QString m_savePath; QString m_savePath;
int m_saveQuality; int m_saveQuality;
......
...@@ -21,7 +21,7 @@ Dialog_FullScreen::Dialog_FullScreen(class MainWindow *mainWidget, const QString ...@@ -21,7 +21,7 @@ Dialog_FullScreen::Dialog_FullScreen(class MainWindow *mainWidget, const QString
connect(&m_timer_hide, SIGNAL(timeout()), this, SLOT(on_hide())); connect(&m_timer_hide, SIGNAL(timeout()), this, SLOT(on_hide()));
connect(ui->view, SIGNAL(escape()), this, SLOT(on_escape())); connect(ui->view, SIGNAL(escape()), this, SLOT(on_escape()));
connect(ui->view, SIGNAL(mouseMove(int, int)), this, SLOT(on_mouseMove(int, int))); connect(ui->view, SIGNAL(mousePos(int, int)), this, SLOT(on_mousePos(int, int)));
this->setWindowFlags(Qt::FramelessWindowHint); this->setWindowFlags(Qt::FramelessWindowHint);
this->setWindowState(Qt::WindowFullScreen); this->setWindowState(Qt::WindowFullScreen);
...@@ -195,7 +195,7 @@ void Dialog_FullScreen::on_escape() ...@@ -195,7 +195,7 @@ void Dialog_FullScreen::on_escape()
m_mainWidget->exitFullScreen(); m_mainWidget->exitFullScreen();
} }
void Dialog_FullScreen::on_mouseMove(int x, int y) void Dialog_FullScreen::on_mousePos(int x, int y)
{ {
(void)x; (void)x;
(void)y; (void)y;
......
...@@ -31,7 +31,7 @@ private slots: ...@@ -31,7 +31,7 @@ private slots:
void on_hide(); void on_hide();
void on_escape(); void on_escape();
void on_mouseMove(int x, int y); void on_mousePos(int x, int y);
private: private:
void setBtnOpacity(qreal opacity); void setBtnOpacity(qreal opacity);
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
#include <QFileDialog> #include <QFileDialog>
#include <QMessageBox> #include <QMessageBox>
#include <QDateTime> #include <QDateTime>
#include <QLineEdit>
#include <QRegExpValidator>
#include "widget_statusbar.h"
#include "dialog_openimageindex.h" #include "dialog_openimageindex.h"
#include "dialog_saveas.h" #include "dialog_saveas.h"
#include "dialog_export.h" #include "dialog_export.h"
...@@ -66,6 +69,19 @@ MainWindow::MainWindow(QWidget *parent) ...@@ -66,6 +69,19 @@ MainWindow::MainWindow(QWidget *parent)
ui->dockWidget->setTitleBarWidget(new QWidget()); ui->dockWidget->setTitleBarWidget(new QWidget());
ui->dockWidget->titleBarWidget()->setVisible(false); ui->dockWidget->titleBarWidget()->setVisible(false);
QRegExp rx("[0-9,-]+$");
m_multiPageLineEdit = new HGLineEdit(this);
m_multiPageLineEdit->setValidator(new QRegExpValidator(rx, this));
m_multiPageLineEdit->setFixedWidth(70);
m_multiPageLineEdit->setAlignment(Qt::AlignHCenter);
ui->toolBar->insertWidget(ui->act_nextPage, m_multiPageLineEdit);
m_wndStatusBar = new Widget_StatusBar(ui->act_zoomIn, ui->act_zoomOut, ui->statusBar);
ui->statusBar->addWidget(m_wndStatusBar, 1);
m_wndStatusBar->setDeviceStatusInfo(tr("disconnect"));
connect(m_view, SIGNAL(scaleChanged(double)), this, SLOT(on_viewerScale(double)));
connect(m_view, SIGNAL(mousePos(int, int)), this, SLOT(on_viewerMousePos(int, int)));
connect(m_view, SIGNAL(drop(const QString &)), this, SLOT(on_viewerDrop(const QString &))); connect(m_view, SIGNAL(drop(const QString &)), this, SLOT(on_viewerDrop(const QString &)));
connect(m_thumb, SIGNAL(itemCountChanged(int)), this, SLOT(on_itemCountChanged(int))); connect(m_thumb, SIGNAL(itemCountChanged(int)), this, SLOT(on_itemCountChanged(int)));
connect(m_thumb, SIGNAL(itemSelectingChanged()), this, SLOT(on_itemSelectingChanged())); connect(m_thumb, SIGNAL(itemSelectingChanged()), this, SLOT(on_itemSelectingChanged()));
...@@ -73,6 +89,8 @@ MainWindow::MainWindow(QWidget *parent) ...@@ -73,6 +89,8 @@ MainWindow::MainWindow(QWidget *parent)
connect(m_thumb, SIGNAL(itemDoubleClicked(int)), this, SLOT(on_itemDoubleClicked(int))); connect(m_thumb, SIGNAL(itemDoubleClicked(int)), this, SLOT(on_itemDoubleClicked(int)));
connect(m_thumb, SIGNAL(contextMenuEvent(int)), this, SLOT(on_thumbContextMenu(int))); connect(m_thumb, SIGNAL(contextMenuEvent(int)), this, SLOT(on_thumbContextMenu(int)));
connect(m_multiPageLineEdit, SIGNAL(editingFinished()), this, SLOT(on_multiPageLineEditFinished()));
m_view->enableScroll(true); m_view->enableScroll(true);
m_view->setScrollSize(16); m_view->setScrollSize(16);
m_view->setMinScrollSliderSize(20); m_view->setMinScrollSliderSize(20);
...@@ -182,6 +200,7 @@ void MainWindow::on_act_90Left_triggered() ...@@ -182,6 +200,7 @@ void MainWindow::on_act_90Left_triggered()
if (HGBASE_ERR_OK == m_view->rotateLeft()) if (HGBASE_ERR_OK == m_view->rotateLeft())
{ {
m_modify = true; m_modify = true;
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -191,6 +210,7 @@ void MainWindow::on_act_90Right_triggered() ...@@ -191,6 +210,7 @@ void MainWindow::on_act_90Right_triggered()
if (HGBASE_ERR_OK == m_view->rotateRight()) if (HGBASE_ERR_OK == m_view->rotateRight())
{ {
m_modify = true; m_modify = true;
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -200,6 +220,7 @@ void MainWindow::on_act_180_triggered() ...@@ -200,6 +220,7 @@ void MainWindow::on_act_180_triggered()
if (HGBASE_ERR_OK == m_view->rotate180()) if (HGBASE_ERR_OK == m_view->rotate180())
{ {
m_modify = true; m_modify = true;
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -265,7 +286,7 @@ void MainWindow::on_act_fullscreen_triggered() ...@@ -265,7 +286,7 @@ void MainWindow::on_act_fullscreen_triggered()
void MainWindow::on_itemCountChanged(int count) void MainWindow::on_itemCountChanged(int count)
{ {
(void)count; m_wndStatusBar->setPageInfo(count, m_currIndex);
updateActionStatus(); updateActionStatus();
} }
...@@ -323,6 +344,7 @@ void MainWindow::on_currItemChanged(int index) ...@@ -323,6 +344,7 @@ void MainWindow::on_currItemChanged(int index)
else else
{ {
m_view->clearImage(); m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
} }
...@@ -336,10 +358,15 @@ void MainWindow::on_currItemChanged(int index) ...@@ -336,10 +358,15 @@ void MainWindow::on_currItemChanged(int index)
m_multiIndex = -1; m_multiIndex = -1;
m_view->clearImage(); m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
} }
int count = 0;
m_thumb->getItemCount(&count);
m_wndStatusBar->setPageInfo(count, m_currIndex);
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
...@@ -357,6 +384,16 @@ void MainWindow::on_thumbContextMenu(int index) ...@@ -357,6 +384,16 @@ void MainWindow::on_thumbContextMenu(int index)
qDebug("show menu"); qDebug("show menu");
} }
void MainWindow::on_viewerScale(double scale)
{
m_wndStatusBar->setScale(scale);
}
void MainWindow::on_viewerMousePos(int x, int y)
{
m_wndStatusBar->setMousePosInfo(x, y);
}
void MainWindow::on_viewerDrop(const QString &fileName) void MainWindow::on_viewerDrop(const QString &fileName)
{ {
int index = -1; int index = -1;
...@@ -415,6 +452,7 @@ void MainWindow::on_viewerDrop(const QString &fileName) ...@@ -415,6 +452,7 @@ void MainWindow::on_viewerDrop(const QString &fileName)
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -430,6 +468,7 @@ void MainWindow::on_act_thumbGrid_triggered(bool checked) ...@@ -430,6 +468,7 @@ void MainWindow::on_act_thumbGrid_triggered(bool checked)
void MainWindow::on_dialog_adjust_applyToImage(HGImage img) void MainWindow::on_dialog_adjust_applyToImage(HGImage img)
{ {
m_view->addImage(img); m_view->addImage(img);
updateStatusBarPixelInfo();
} }
void MainWindow::on_dialog_multirotate_refreshImgFile(const QString &fileName) void MainWindow::on_dialog_multirotate_refreshImgFile(const QString &fileName)
...@@ -437,6 +476,38 @@ void MainWindow::on_dialog_multirotate_refreshImgFile(const QString &fileName) ...@@ -437,6 +476,38 @@ void MainWindow::on_dialog_multirotate_refreshImgFile(const QString &fileName)
m_thumb->refreshItem(fileName); m_thumb->refreshItem(fileName);
} }
void MainWindow::on_multiPageLineEditFinished()
{
if (-1 != m_currIndex && m_multiPageCount > 0)
{
int multiIndex = m_multiPageLineEdit->text().toInt() - 1;
if (multiIndex >= 0 && multiIndex < m_multiPageCount)
{
m_multiIndex = multiIndex;
HGImage img = createImage();
if (nullptr != img)
{
m_view->addImage(img);
HGBase_DestroyImage(img);
m_relation = true;
m_modify = false;
}
else
{
m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false;
m_modify = false;
}
updateStatusBarPixelInfo();
}
updateActionStatus();
}
}
void MainWindow::on_act_thumbnailBar_triggered(bool checked) void MainWindow::on_act_thumbnailBar_triggered(bool checked)
{ {
ui->dockWidget->setVisible(checked); ui->dockWidget->setVisible(checked);
...@@ -545,6 +616,29 @@ int MainWindow::getMultiPageCount() ...@@ -545,6 +616,29 @@ int MainWindow::getMultiPageCount()
return count; return count;
} }
void MainWindow::updateStatusBarPixelInfo()
{
HGImage img = nullptr;
m_view->getImage(&img);
if (nullptr == img)
{
m_wndStatusBar->setPixelInfo(0, 0, 0);
}
else
{
HGImageInfo imgInfo;
HGBase_GetImageInfo(img, &imgInfo);
int bpp = 0;
if (HGBASE_IMGTYPE_GRAY == imgInfo.type)
bpp = 8;
else if (HGBASE_IMGTYPE_BGR == imgInfo.type || HGBASE_IMGTYPE_RGB == imgInfo.type)
bpp = 24;
else
bpp = 32;
m_wndStatusBar->setPixelInfo(imgInfo.width, imgInfo.height, bpp);
}
}
void MainWindow::updateActionStatus() void MainWindow::updateActionStatus()
{ {
HGImage img = nullptr; HGImage img = nullptr;
...@@ -576,6 +670,8 @@ void MainWindow::updateActionStatus() ...@@ -576,6 +670,8 @@ void MainWindow::updateActionStatus()
ui->act_nextPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && -1 != m_multiIndex && m_multiIndex < m_multiPageCount - 1); ui->act_nextPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && -1 != m_multiIndex && m_multiIndex < m_multiPageCount - 1);
ui->act_firstPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && 0 != m_multiIndex); ui->act_firstPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && 0 != m_multiIndex);
ui->act_lastPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && m_multiIndex != m_multiPageCount - 1); ui->act_lastPage->setEnabled(-1 != m_currIndex && m_multiPageCount > 0 && m_multiIndex != m_multiPageCount - 1);
m_multiPageLineEdit->setText(QString("%1/%2").arg(m_multiIndex + 1).arg(m_multiPageCount));
ui->toolBar->actions().at(15)->setVisible(-1 != m_currIndex && m_multiPageCount > 1 && -1 != m_multiIndex);
ui->act_zoomIn->setEnabled(nullptr != img); ui->act_zoomIn->setEnabled(nullptr != img);
ui->act_zoomOut->setEnabled(nullptr != img); ui->act_zoomOut->setEnabled(nullptr != img);
...@@ -626,10 +722,12 @@ void MainWindow::on_act_previousPage_triggered() ...@@ -626,10 +722,12 @@ void MainWindow::on_act_previousPage_triggered()
else else
{ {
m_view->clearImage(); m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
} }
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -651,10 +749,12 @@ void MainWindow::on_act_nextPage_triggered() ...@@ -651,10 +749,12 @@ void MainWindow::on_act_nextPage_triggered()
else else
{ {
m_view->clearImage(); m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
} }
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -676,10 +776,12 @@ void MainWindow::on_act_firstPage_triggered() ...@@ -676,10 +776,12 @@ void MainWindow::on_act_firstPage_triggered()
else else
{ {
m_view->clearImage(); m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
} }
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -701,10 +803,12 @@ void MainWindow::on_act_lastPage_triggered() ...@@ -701,10 +803,12 @@ void MainWindow::on_act_lastPage_triggered()
else else
{ {
m_view->clearImage(); m_view->clearImage();
m_wndStatusBar->setMousePosInfo(0, 0);
m_relation = false; m_relation = false;
m_modify = false; m_modify = false;
} }
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
...@@ -724,12 +828,14 @@ void MainWindow::on_act_adjust_triggered() ...@@ -724,12 +828,14 @@ void MainWindow::on_act_adjust_triggered()
{ {
m_view->addImage(dlg.getAfterImage()); m_view->addImage(dlg.getAfterImage());
m_modify = true; m_modify = true;
updateActionStatus();
} }
else else
{ {
m_view->addImage(dlg.getBeforeImage()); m_view->addImage(dlg.getBeforeImage());
} }
updateStatusBarPixelInfo();
updateActionStatus();
disconnect(&dlg, SIGNAL(applyToImage(HGImage)), this, SLOT(on_dialog_adjust_applyToImage(HGImage))); disconnect(&dlg, SIGNAL(applyToImage(HGImage)), this, SLOT(on_dialog_adjust_applyToImage(HGImage)));
} }
...@@ -1187,8 +1293,9 @@ void MainWindow::on_act_autoCrop_triggered() ...@@ -1187,8 +1293,9 @@ void MainWindow::on_act_autoCrop_triggered()
{ {
m_view->addImage(destImage); m_view->addImage(destImage);
HGBase_DestroyImage(destImage); HGBase_DestroyImage(destImage);
m_modify = true; m_modify = true;
updateStatusBarPixelInfo();
updateActionStatus(); updateActionStatus();
} }
} }
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
#define MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include <QMainWindow>
#include <QLineEdit>
#include "HGImgView.h" #include "HGImgView.h"
#include "HGImgThumb.h" #include "HGImgThumb.h"
...@@ -9,6 +10,30 @@ QT_BEGIN_NAMESPACE ...@@ -9,6 +10,30 @@ QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; } namespace Ui { class MainWindow; }
QT_END_NAMESPACE QT_END_NAMESPACE
class HGLineEdit : public QLineEdit
{
Q_OBJECT
public:
HGLineEdit(QWidget* parent)
: QLineEdit(parent)
{
}
protected:
void focusInEvent(QFocusEvent* e)
{
(void)e;
QString text = this->text();
QStringList list = text.split("/");
text = list.first();
this->setText(text);
this->selectAll();
QLineEdit::focusInEvent(e);
}
};
class MainWindow : public QMainWindow class MainWindow : public QMainWindow
{ {
Q_OBJECT Q_OBJECT
...@@ -50,10 +75,13 @@ private slots: ...@@ -50,10 +75,13 @@ private slots:
void on_currItemChanged(int index); void on_currItemChanged(int index);
void on_itemDoubleClicked(int index); void on_itemDoubleClicked(int index);
void on_thumbContextMenu(int index); void on_thumbContextMenu(int index);
void on_viewerScale(double scale);
void on_viewerMousePos(int x, int y);
void on_viewerDrop(const QString &fileName); void on_viewerDrop(const QString &fileName);
void on_act_thumbGrid_triggered(bool checked); void on_act_thumbGrid_triggered(bool checked);
void on_dialog_adjust_applyToImage(HGImage img); void on_dialog_adjust_applyToImage(HGImage img);
void on_dialog_multirotate_refreshImgFile(const QString &fileName); void on_dialog_multirotate_refreshImgFile(const QString &fileName);
void on_multiPageLineEditFinished();
void on_act_thumbnailBar_triggered(bool checked); void on_act_thumbnailBar_triggered(bool checked);
...@@ -105,6 +133,7 @@ protected: ...@@ -105,6 +133,7 @@ protected:
private: private:
HGImage createImage(); HGImage createImage();
int getMultiPageCount(); int getMultiPageCount();
void updateStatusBarPixelInfo();
void updateActionStatus(); void updateActionStatus();
private: private:
...@@ -120,6 +149,8 @@ private: ...@@ -120,6 +149,8 @@ private:
bool m_relation; // m_view上的图像是否关联到m_thumb bool m_relation; // m_view上的图像是否关联到m_thumb
bool m_modify; // m_view上面的图像是否改变 bool m_modify; // m_view上面的图像是否改变
class HGLineEdit* m_multiPageLineEdit;
class Widget_StatusBar *m_wndStatusBar;
class Dialog_FullScreen *m_dlgFullScreen; class Dialog_FullScreen *m_dlgFullScreen;
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H
#include "widget_statusbar.h"
#include "ui_widget_statusbar.h"
#include <QToolBar>
Widget_StatusBar::Widget_StatusBar(QAction *zoomIn, QAction *zoomOut, QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget_StatusBar)
{
ui->setupUi(this);
QToolBar *toolBar = new QToolBar(this);
toolBar->setFixedHeight(20);
m_lbl_scale = new QLabel("0%", toolBar);
m_lbl_scale->setFixedWidth(40);
m_lbl_scale->setAlignment(Qt::AlignHCenter);
toolBar->addAction(zoomIn);
toolBar->addWidget(m_lbl_scale);
toolBar->addAction(zoomOut);
reinterpret_cast<QHBoxLayout*>(this->layout())->addWidget(toolBar, 0, Qt::AlignRight);
}
Widget_StatusBar::~Widget_StatusBar()
{
qDebug("~Widget_StatusBar");
delete ui;
}
void Widget_StatusBar::setPageInfo(int total, int page)
{
ui->lbl_page->setText(QString("%1/%2").arg(page + 1).arg(total));
}
void Widget_StatusBar::setPixelInfo(int width, int height, int bpp)
{
ui->lbl_size->setText(QString("%1*%2*%3").arg(width).arg(height).arg(bpp));
}
void Widget_StatusBar::setMousePosInfo(int x, int y)
{
ui->lbl_mousePos->setText(QString("X:%1, Y:%2").arg(x).arg(y));
}
void Widget_StatusBar::setScale(double scale)
{
m_lbl_scale->setText(QString("%1%").arg((int)(scale * 100.0)));
}
void Widget_StatusBar::setDeviceStatusInfo(const QString &info)
{
ui->lbl_devSts->setText(info);
m_devStatusInfos.append(info);
}
#ifndef WIDGET_STATUSBAR_H
#define WIDGET_STATUSBAR_H
#include <QWidget>
#include <QLabel>
namespace Ui {
class Widget_StatusBar;
}
class Widget_StatusBar : public QWidget
{
Q_OBJECT
public:
explicit Widget_StatusBar(QAction *zoomIn, QAction *zoomOut, QWidget *parent = nullptr);
~Widget_StatusBar();
void setPageInfo(int total, int page);
void setPixelInfo(int width, int height, int bpp);
void setMousePosInfo(int x, int y);
void setScale(double scale);
void setDeviceStatusInfo(const QString &info);
private:
Ui::Widget_StatusBar *ui;
QLabel* m_lbl_scale;
QStringList m_devStatusInfos;
};
#endif // WIDGET_STATUSBAR_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget_StatusBar</class>
<widget class="QWidget" name="Widget_StatusBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>603</width>
<height>50</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,0,0,0,0,0,0">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="lbl_devSts">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="lbl_page">
<property name="text">
<string>0/0</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_size">
<property name="text">
<string>0*0*0</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lbl_mousePos">
<property name="text">
<string>X:0, Y:0</string>
</property>
</widget>
</item>
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::VLine</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
...@@ -1360,7 +1360,6 @@ void HGImgView::mouseMoveEvent(QMouseEvent* e) ...@@ -1360,7 +1360,6 @@ void HGImgView::mouseMoveEvent(QMouseEvent* e)
else else
{ {
assert(0 == m_operate); assert(0 == m_operate);
emit mouseMove(e->pos().x(), e->pos().y());
MouseStatus mouseStatus = getMouseStatus(e->pos()); MouseStatus mouseStatus = getMouseStatus(e->pos());
if (nullptr != m_image && m_showImage && !m_draging if (nullptr != m_image && m_showImage && !m_draging
...@@ -1398,11 +1397,13 @@ void HGImgView::mouseMoveEvent(QMouseEvent* e) ...@@ -1398,11 +1397,13 @@ void HGImgView::mouseMoveEvent(QMouseEvent* e)
} }
else else
{ {
emit mousePos(0, 0);
QToolTip::hideText(); QToolTip::hideText();
} }
} }
else else
{ {
emit mousePos(0, 0);
QToolTip::hideText(); QToolTip::hideText();
} }
...@@ -1481,6 +1482,7 @@ void HGImgView::leaveEvent(QEvent *e) ...@@ -1481,6 +1482,7 @@ void HGImgView::leaveEvent(QEvent *e)
m_mouseOn = false; m_mouseOn = false;
m_mouseMoveStatus = MouseStatus_Null; m_mouseMoveStatus = MouseStatus_Null;
Show(); Show();
emit mousePos(0, 0);
} }
void HGImgView::paintEvent(QPaintEvent* e) void HGImgView::paintEvent(QPaintEvent* e)
......
...@@ -46,7 +46,6 @@ public: ...@@ -46,7 +46,6 @@ public:
signals: signals:
void escape(); void escape();
void mouseMove(int x, int y);
void mousePos(int x, int y); void mousePos(int x, int y);
void scaleChanged(double scale); void scaleChanged(double scale);
void drop(const QString &fileName); void drop(const QString &fileName);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment