void QTabWidgetPrivate::init() { Q_Q(QTabWidget); stack = new QStackedWidget(q); stack->setObjectName(QLatin1String("qt_tabwidget_stackedwidget")); stack->setLineWidth(0); // hack so that QMacStyle::layoutSpacing() can detect tab widget pages stack->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::TabWidget)); QObject::connect(stack, SIGNAL(widgetRemoved(int)), q, SLOT(_q_removeTab(int))); QTabBar *tabBar = new QTabBar(q); tabBar->setObjectName(QLatin1String("qt_tabwidget_tabbar")); tabBar->setDrawBase(false); q->setTabBar(tabBar); q->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding, QSizePolicy::TabWidget)); #ifdef QT_KEYPAD_NAVIGATION if (QApplication::keypadNavigationEnabled()) q->setFocusPolicy(Qt::NoFocus); else #endif q->setFocusPolicy(Qt::TabFocus); q->setFocusProxy(tabs); q->setTabPosition(static_cast<QTabWidget::TabPosition> (q->style()->styleHint( QStyle::SH_TabWidget_DefaultTabPosition, 0, q ))); }
HomeWindow::HomeWindow(MainWindow *mainWindow, QString name, QString /* windowtitle */) : GcWindow(mainWindow), mainWindow(mainWindow), name(name), active(false), clicked(NULL), dropPending(false), chartCursor(-2), loaded(false) { setInstanceName("Home Window"); // setup control area QWidget *cw = new QWidget(this); cw->setContentsMargins(0,0,0,0); QVBoxLayout *cl = new QVBoxLayout(cw); cl->setSpacing(0); cl->setContentsMargins(0,0,0,0); QLabel *titleLabel = new QLabel("Title", this); QHBoxLayout *hl = new QHBoxLayout; hl->setSpacing(5); hl->setContentsMargins(0,0,0,0); titleEdit = new QLineEdit(this); titleEdit->setEnabled(false); controlStack = new QStackedWidget(this); controlStack->setContentsMargins(0,0,0,0); hl->addWidget(titleLabel); hl->addWidget(titleEdit); cl->addLayout(hl); cl->addSpacing(15); cl->addWidget(controlStack); setControls(cw); setProperty("isManager", true); setAcceptDrops(true); QVBoxLayout *layout = new QVBoxLayout(this); QFont bigandbold; bigandbold.setPointSize(bigandbold.pointSize() + 2); bigandbold.setWeight(QFont::Bold); QHBoxLayout *titleBar = new QHBoxLayout; QLabel *space = new QLabel("", this); space->setFixedHeight(20); titleBar->addWidget(space); style = new QStackedWidget(this); style->setAutoFillBackground(false); layout->setSpacing(0); layout->setContentsMargins(0,0,0,0); layout->addWidget(style); QPalette palette; palette.setBrush(backgroundRole(), QColor("#B3B4B6")); setAutoFillBackground(false); // each style has its own container widget QWidget *tabArea = new QWidget(this); tabArea->setContentsMargins(20,20,20,20); QVBoxLayout *tabLayout = new QVBoxLayout(tabArea); tabLayout->setContentsMargins(0,0,0,0); tabLayout->setSpacing(0); tabbed = new QTabWidget(this); #ifdef Q_OS_MAC tabbed->setAttribute(Qt::WA_MacShowFocusRect, 0); #endif tabbed->setContentsMargins(0,0,0,0); tabbed->setTabsClosable(false); tabbed->setPalette(palette); tabbed->setDocumentMode(false); tabbed->setMovable(true); tabbed->setElideMode(Qt::ElideNone); tabbed->setUsesScrollButtons(true); QTabBar *tb = tabbed->findChild<QTabBar*>(QLatin1String("qt_tabwidget_tabbar")); tb->setShape(QTabBar::RoundedSouth); tb->setDrawBase(false); tabbed->setStyleSheet("QTabWidget::tab-bar { alignment: center; }" "QTabWidget::pane { top: 20px; }"); tabLayout->addWidget(tabbed); style->addWidget(tabArea); // tiled tileWidget = new QWidget(this); tileWidget->setAutoFillBackground(false); tileWidget->setPalette(palette); tileWidget->setContentsMargins(0,0,0,0); tileGrid = new QGridLayout(tileWidget); tileGrid->setSpacing(0); tileArea = new QScrollArea(this); tileArea->setAutoFillBackground(false); tileArea->setPalette(palette); tileArea->setWidgetResizable(true); tileArea->setWidget(tileWidget); tileArea->setFrameStyle(QFrame::NoFrame); tileArea->setContentsMargins(0,0,0,0); style->addWidget(tileArea); winWidget = new QWidget(this); winWidget->setAutoFillBackground(false); winWidget->setContentsMargins(0,0,0,0); winWidget->setPalette(palette); winFlow = new GcWindowLayout(winWidget, 0, tileSpacing, tileSpacing); winFlow->setContentsMargins(tileMargin,tileMargin,tileMargin,tileMargin); winArea = new QScrollArea(this); winArea->setAutoFillBackground(false); winArea->setPalette(palette); winArea->setWidgetResizable(true); winArea->setWidget(winWidget); winArea->setFrameStyle(QFrame::NoFrame); winArea->setContentsMargins(0,0,0,0); style->addWidget(winArea); winWidget->installEventFilter(this); // to draw cursor winWidget->setMouseTracking(true); // to draw cursor // enable right click to add a chart winArea->setContextMenuPolicy(Qt::CustomContextMenu); tabArea->setContextMenuPolicy(Qt::CustomContextMenu); connect(winArea,SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(rightClick(const QPoint &))); connect(tabArea,SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(rightClick(const QPoint &))); currentStyle=-1; styleChanged(2); connect(this, SIGNAL(rideItemChanged(RideItem*)), this, SLOT(rideSelected())); connect(this, SIGNAL(dateRangeChanged(DateRange)), this, SLOT(dateRangeChanged(DateRange))); connect(mainWindow, SIGNAL(configChanged()), this, SLOT(configChanged())); connect(tabbed, SIGNAL(currentChanged(int)), this, SLOT(tabSelected(int))); connect(tabbed, SIGNAL(tabCloseRequested(int)), this, SLOT(removeChart(int))); connect(tb, SIGNAL(tabMoved(int,int)), this, SLOT(tabMoved(int,int))); connect(titleEdit, SIGNAL(textChanged(const QString&)), SLOT(titleChanged())); installEventFilter(this); application->installEventFilter(this); }