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