Replaced tabbed pages in MainWindow with a stacked widget.
This commit is contained in:
+68
-9
@@ -29,6 +29,8 @@
|
|||||||
#include <QMenuBar>
|
#include <QMenuBar>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
|
#include <QListWidget>
|
||||||
|
#include <QStackedWidget>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
@@ -61,27 +63,67 @@ MainWindow::MainWindow()
|
|||||||
createActions();
|
createActions();
|
||||||
createMenus();
|
createMenus();
|
||||||
createToolBars();
|
createToolBars();
|
||||||
|
createStatusBar();
|
||||||
|
|
||||||
|
// Build pages
|
||||||
QWidget* propertiesPage = createPropertiesPage();
|
QWidget* propertiesPage = createPropertiesPage();
|
||||||
QWidget* editorPage = createEditorPage();
|
QWidget* editorPage = createEditorPage();
|
||||||
QWidget* mergePage = createMergePage();
|
QWidget* mergePage = createMergePage();
|
||||||
QWidget* printPage = createPrintPage();
|
QWidget* printPage = createPrintPage();
|
||||||
|
|
||||||
mNotebook = new QTabWidget();
|
// Table of contents widget
|
||||||
mNotebook->addTab( propertiesPage, "Properties" );
|
mContents = new QListWidget();
|
||||||
mNotebook->addTab( editorPage, "Editor" );
|
mContents->setViewMode(QListView::ListMode);
|
||||||
mNotebook->addTab( mergePage, "Merge" );
|
mContents->setMovement(QListView::Static);
|
||||||
mNotebook->addTab( printPage, "Print" );
|
mContents->setMinimumWidth(96);
|
||||||
mNotebook->setEnabled( false );
|
mContents->setMaximumWidth(96);
|
||||||
|
mContents->setSpacing(6);
|
||||||
|
mContents->setEnabled( false );
|
||||||
|
|
||||||
setCentralWidget( mNotebook );
|
// Pages widget
|
||||||
|
mPages = new QStackedWidget();
|
||||||
|
mPages->setEnabled( false );
|
||||||
|
|
||||||
createStatusBar();
|
// Add "Properties" page
|
||||||
|
mPages->addWidget( propertiesPage );
|
||||||
|
QListWidgetItem *propertiesButton = new QListWidgetItem(mContents);
|
||||||
|
propertiesButton->setText(tr("Properties"));
|
||||||
|
propertiesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||||
|
|
||||||
|
// Add "Editor" page
|
||||||
|
mPages->addWidget( editorPage );
|
||||||
|
QListWidgetItem *editorButton = new QListWidgetItem(mContents);
|
||||||
|
editorButton->setText(tr("Editor"));
|
||||||
|
editorButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||||
|
|
||||||
|
// Add "Merge" page
|
||||||
|
mPages->addWidget( mergePage );
|
||||||
|
QListWidgetItem *mergeButton = new QListWidgetItem(mContents);
|
||||||
|
mergeButton->setText(tr("Merge"));
|
||||||
|
mergeButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||||
|
|
||||||
|
// Add "Print" page
|
||||||
|
mPages->addWidget( printPage );
|
||||||
|
QListWidgetItem *printButton = new QListWidgetItem(mContents);
|
||||||
|
printButton->setText(tr("Print"));
|
||||||
|
printButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
|
||||||
|
|
||||||
|
// Create central widget
|
||||||
|
QWidget *centralWidget = new QWidget();
|
||||||
|
QHBoxLayout *hLayout = new QHBoxLayout();
|
||||||
|
hLayout->setContentsMargins( 0, 0, 0, 0 );
|
||||||
|
hLayout->addWidget( mContents );
|
||||||
|
hLayout->addWidget( mPages );
|
||||||
|
centralWidget->setLayout( hLayout );
|
||||||
|
setCentralWidget( centralWidget );
|
||||||
|
|
||||||
setDocVerbsEnabled( false );
|
setDocVerbsEnabled( false );
|
||||||
setPasteVerbsEnabled( false );
|
setPasteVerbsEnabled( false );
|
||||||
setTitle();
|
setTitle();
|
||||||
|
|
||||||
|
// Connect
|
||||||
|
connect( mContents, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
|
||||||
|
this, SLOT(changePage(QListWidgetItem*,QListWidgetItem*)));
|
||||||
connect( mLabelEditor, SIGNAL(zoomChanged()), this, SLOT(onZoomChanged()) );
|
connect( mLabelEditor, SIGNAL(zoomChanged()), this, SLOT(onZoomChanged()) );
|
||||||
#if 0
|
#if 0
|
||||||
connect( mLabelEditor, SIGNAL(pointerMoved(double, double)),
|
connect( mLabelEditor, SIGNAL(pointerMoved(double, double)),
|
||||||
@@ -124,7 +166,8 @@ void MainWindow::setModel( LabelModel *label )
|
|||||||
mObjectEditor->setModel( mModel );
|
mObjectEditor->setModel( mModel );
|
||||||
mPrintView->setModel( mModel );
|
mPrintView->setModel( mModel );
|
||||||
|
|
||||||
mNotebook->setEnabled( true );
|
mContents->setEnabled( true );
|
||||||
|
mPages->setEnabled( true );
|
||||||
setDocVerbsEnabled( true );
|
setDocVerbsEnabled( true );
|
||||||
setSelectionVerbsEnabled( false );
|
setSelectionVerbsEnabled( false );
|
||||||
setMultiSelectionVerbsEnabled( false );
|
setMultiSelectionVerbsEnabled( false );
|
||||||
@@ -637,10 +680,12 @@ QWidget* MainWindow::createEditorPage()
|
|||||||
mLabelEditorScrollArea->setWidget( mLabelEditor );
|
mLabelEditorScrollArea->setWidget( mLabelEditor );
|
||||||
|
|
||||||
QVBoxLayout* editorVLayout = new QVBoxLayout;
|
QVBoxLayout* editorVLayout = new QVBoxLayout;
|
||||||
|
editorVLayout->setContentsMargins( 0, 0, 0, 0 );
|
||||||
editorVLayout->addWidget( editorToolBar );
|
editorVLayout->addWidget( editorToolBar );
|
||||||
editorVLayout->addWidget( mLabelEditorScrollArea );
|
editorVLayout->addWidget( mLabelEditorScrollArea );
|
||||||
|
|
||||||
QHBoxLayout* editorHLayout = new QHBoxLayout;
|
QHBoxLayout* editorHLayout = new QHBoxLayout;
|
||||||
|
editorHLayout->setContentsMargins( 0, 0, 0, 0 );
|
||||||
editorHLayout->addLayout( editorVLayout );
|
editorHLayout->addLayout( editorVLayout );
|
||||||
editorHLayout->addWidget( mObjectEditor );
|
editorHLayout->addWidget( mObjectEditor );
|
||||||
|
|
||||||
@@ -844,6 +889,20 @@ void MainWindow::writeSettings()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Change page
|
||||||
|
///
|
||||||
|
void MainWindow::changePage(QListWidgetItem *current, QListWidgetItem *previous)
|
||||||
|
{
|
||||||
|
if (!current)
|
||||||
|
{
|
||||||
|
current = previous;
|
||||||
|
}
|
||||||
|
|
||||||
|
mPages->setCurrentIndex(mContents->row(current));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// File->New Action
|
/// File->New Action
|
||||||
///
|
///
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ class QMenuBar;
|
|||||||
class QMenu;
|
class QMenu;
|
||||||
class QToolBar;
|
class QToolBar;
|
||||||
class QLabel;
|
class QLabel;
|
||||||
|
class QListWidget;
|
||||||
|
class QListWidgetItem;
|
||||||
|
class QStackedWidget;
|
||||||
class QScrollArea;
|
class QScrollArea;
|
||||||
|
|
||||||
|
|
||||||
@@ -79,6 +82,8 @@ protected:
|
|||||||
// Slots
|
// Slots
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
private slots:
|
private slots:
|
||||||
|
void changePage(QListWidgetItem *current, QListWidgetItem *previous);
|
||||||
|
|
||||||
void fileNew();
|
void fileNew();
|
||||||
void fileOpen();
|
void fileOpen();
|
||||||
void fileSave();
|
void fileSave();
|
||||||
@@ -197,7 +202,8 @@ private:
|
|||||||
QToolBar* fileToolBar;
|
QToolBar* fileToolBar;
|
||||||
QToolBar* editorToolBar;
|
QToolBar* editorToolBar;
|
||||||
|
|
||||||
QTabWidget* mNotebook;
|
QListWidget* mContents;
|
||||||
|
QStackedWidget* mPages;
|
||||||
LabelModel* mModel;
|
LabelModel* mModel;
|
||||||
PropertiesView* mPropertiesView;
|
PropertiesView* mPropertiesView;
|
||||||
QScrollArea* mLabelEditorScrollArea;
|
QScrollArea* mLabelEditorScrollArea;
|
||||||
|
|||||||
Reference in New Issue
Block a user