|
| 1 | +#include "mainwindow.h" |
| 2 | + |
| 3 | +#include "ui_mainwindow.h" |
| 4 | + |
| 5 | +#include <QWidgetAction> |
| 6 | +#include <QLabel> |
| 7 | +#include <QCalendarWidget> |
| 8 | +#include <QTreeView> |
| 9 | +#include <QFileSystemModel> |
| 10 | +#include <QTableWidget> |
| 11 | +#include <QHBoxLayout> |
| 12 | +#include <QRadioButton> |
| 13 | +#include <QPushButton> |
| 14 | +#include <QInputDialog> |
| 15 | +#include <QFileDialog> |
| 16 | +#include <QSettings> |
| 17 | +#include <QMessageBox> |
| 18 | + |
| 19 | +#include "DockAreaWidget.h" |
| 20 | +#include "DockAreaTitleBar.h" |
| 21 | +#include "DockAreaTabBar.h" |
| 22 | +#include "FloatingDockContainer.h" |
| 23 | +#include "DockComponentsFactory.h" |
| 24 | + |
| 25 | +using namespace ads; |
| 26 | + |
| 27 | +CMainWindow::CMainWindow(QWidget *parent) |
| 28 | + : QMainWindow(parent) |
| 29 | + , ui(new Ui::CMainWindow) |
| 30 | +{ |
| 31 | + ui->setupUi(this); |
| 32 | + CDockManager::setConfigFlag(CDockManager::OpaqueSplitterResize, true); |
| 33 | + CDockManager::setConfigFlag(CDockManager::XmlCompressionEnabled, false); |
| 34 | + DockManager = new CDockManager(this); |
| 35 | + |
| 36 | + // Set central widget |
| 37 | + QCalendarWidget* calendar = new QCalendarWidget(); |
| 38 | + CDockWidget* CentralDockWidget = new CDockWidget("CentralWidget"); |
| 39 | + CentralDockWidget->setWidget(calendar); |
| 40 | + auto* CentralDockArea = DockManager->setCentralWidget(CentralDockWidget); |
| 41 | + CentralDockArea->setAllowedAreas(DockWidgetArea::OuterDockAreas); |
| 42 | + |
| 43 | + // create other dock widgets |
| 44 | + QTreeView* fileTree = new QTreeView(); |
| 45 | + fileTree->setFrameShape(QFrame::NoFrame); |
| 46 | + QFileSystemModel* fileModel = new QFileSystemModel(fileTree); |
| 47 | + fileModel->setRootPath(QDir::currentPath()); |
| 48 | + fileTree->setModel(fileModel); |
| 49 | + CDockWidget* DataDockWidget = new CDockWidget("File system"); |
| 50 | + DataDockWidget->setWidget(fileTree); |
| 51 | + DataDockWidget->resize(150, 250); |
| 52 | + DataDockWidget->setMinimumSize(100, 250); |
| 53 | + auto* fileArea = DockManager->addDockWidget(DockWidgetArea::LeftDockWidgetArea, DataDockWidget, CentralDockArea); |
| 54 | + ui->menuView->addAction(DataDockWidget->toggleViewAction()); |
| 55 | + |
| 56 | + QTableWidget* table = new QTableWidget(); |
| 57 | + table->setColumnCount(3); |
| 58 | + table->setRowCount(10); |
| 59 | + CDockWidget* TableDockWidget = new CDockWidget("Table"); |
| 60 | + TableDockWidget->setWidget(table); |
| 61 | + TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget); |
| 62 | + TableDockWidget->resize(250, 150); |
| 63 | + TableDockWidget->setMinimumSize(200,150); |
| 64 | + DockManager->addDockWidget(DockWidgetArea::BottomDockWidgetArea, TableDockWidget, fileArea); |
| 65 | + ui->menuView->addAction(TableDockWidget->toggleViewAction()); |
| 66 | + |
| 67 | + QTableWidget* propertiesTable = new QTableWidget(); |
| 68 | + table->setColumnCount(3); |
| 69 | + table->setRowCount(10); |
| 70 | + CDockWidget* PropertiesDockWidget = new CDockWidget("Properties"); |
| 71 | + PropertiesDockWidget->setWidget(propertiesTable); |
| 72 | + PropertiesDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget); |
| 73 | + PropertiesDockWidget->resize(250, 150); |
| 74 | + PropertiesDockWidget->setMinimumSize(200,150); |
| 75 | + DockManager->addDockWidget(DockWidgetArea::RightDockWidgetArea, PropertiesDockWidget, CentralDockArea); |
| 76 | + ui->menuView->addAction(PropertiesDockWidget->toggleViewAction()); |
| 77 | +} |
| 78 | + |
| 79 | +CMainWindow::~CMainWindow() |
| 80 | +{ |
| 81 | + delete ui; |
| 82 | +} |
| 83 | + |
0 commit comments