RasterProcessTool/RasterMainWidgetGUI/RasterMainWidget/RasterMainWidget.h

105 lines
2.2 KiB
C++

#pragma once
#include "LAMPMainWidgetAPI.h"
#include <QMainWindow>
#include <QVector>
#include <QLabel>
#include <QLineEdit>
#include <QWidget>
#include <QActionGroup>
#include <QListWidgetItem>
#include <QHash>
#include <QTableWidget>
#include <mapcanvas.h>
#include <maplayer.h>
#include "QApplicationSettingManager.h"
#include "ToolBoxWidget.h"
namespace Ui {
class RasterMainWidget;
}
namespace LAMPMainWidget {
class RasterMainWidget : public QMainWindow {
Q_OBJECT
friend class TaskWindow;
friend class DownloadTask;
public slots:
void changeTaskTable(int row, int col, QString text);
public:
RasterMainWidget(QWidget* parent = nullptr);
~RasterMainWidget() override;
protected:
void setupWindow();
void setupActions();
void setupStatusBar();
void setupLayers();
void setupTaskWindow();
void initMaps();
void setRightToolbox();
void initToolbox();
void setupShowMessage();
protected:
/// 各处处理函数
void panHandle(bool checked);
void zoomInHandle(bool checked);
void zoomOutHandle(bool checked);
void drawlineHandle(bool checked);
void sponsorHandle(bool checked);
void refreshHandle(bool checked);
void selectHandle(bool checked);
void zoomChangedHandle(int zoom);
void clickedHandle(PointXY pos);
void centerChangedHandle(PointXY pos);
void leftTopClickedHandle();
void rightBottomClickedHandle();
void createDownloadTask();
void layerChanged(QListWidgetItem* current, QListWidgetItem* previous);
private:
QWidget* spacerWiget(int width) const;
private slots:
void on_drawArea_triggered();
void on_addPlaneaction_triggered();
void onactioncloseAllRasterFile_triggered();
private:
Ui::RasterMainWidget* mUi;
MapCanvas* mMapConvas;//地图容器
QLineEdit* mScaleText;
QLabel* mScaleLabel;
QLineEdit* mCenterText;
QLabel* mCenterLabel;
QLineEdit* mZoomText;
QLabel* mZoomLabel;
QActionGroup* mMapActionGroup;
bool mSetLeftTop;
QVector<QListWidgetItem*> mLayerList;
PointXY mLeftTop;
PointXY mRightBottom;
QDockWidget* toolboxDockWidget;
ToolBoxWidget* toolBoxWidget;
private:
static QHash<QString, MapLayer*> mMaps;
public:
QTableWidget* getTaskTable();
};
}