int main(int argc,char **argv) { QApplication app(argc,argv); QGraphicsScene scene; // 要把widget嵌入到QGraphicsScene內,必需要透過QGraphicsProxyWidget才可以 // addWidget回傳的是QGraphicsProxyWidget,由QGraphicsWidget繼承 QGraphicsWidget *textEdit = scene.addWidget(new QTextEdit); QGraphicsWidget *pushButton = scene.addWidget(new QPushButton); QGraphicsGridLayout *layout = new QGraphicsGridLayout; // QGraphicsGridLayout的addItem函數必需是QGraphicsWidget layout->addItem(textEdit, 0, 0); layout->addItem(pushButton, 0, 1); QGraphicsWidget *form = new QGraphicsWidget; form->setLayout(layout); scene.addItem(form); QGraphicsView view(&scene); view.show(); return app.exec(); }
void KBItemWidget::setDetailsShown(const bool show) { if (show == (m_detailsWidget != 0)) { return; } if (show) { m_detailsWidget = new QGraphicsWidget(this); QGraphicsGridLayout *lay = new QGraphicsGridLayout(m_detailsWidget); Plasma::IconWidget *avatar = new Plasma::IconWidget(m_detailsWidget); lay->addItem(avatar, 0,0); if (!m_pixmap.isNull()) { avatar->setIcon(m_pixmap); } else { avatar->setIcon(KIcon("system-users")); } connect(avatar, SIGNAL(clicked()), this, SLOT(openProfile())); Plasma::TextBrowser *question = new Plasma::TextBrowser(m_detailsWidget); question->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); question->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); lay->addItem(question, 0, 1); question->setText(i18n("<body><b>Question:</b> %1</body>" ,m_ocsData["Description"].toString())); question->nativeWidget()->document()->setDefaultStyleSheet(Plasma::Theme::defaultTheme()->styleSheet()); question->setText(i18n("<body><b>Question:</b> %1</body>" ,m_ocsData["Description"].toString())); question->nativeWidget()->setTextInteractionFlags(Qt::NoTextInteraction); Plasma::TextBrowser *answer = new Plasma::TextBrowser(m_detailsWidget); answer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); answer->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); lay->addItem(answer, 1, 0, 1, 2); answer->nativeWidget()->document()->setDefaultStyleSheet(Plasma::Theme::defaultTheme()->styleSheet()); QString answerText = m_ocsData["Answer"].toString(); if (answerText.length() > 0) { answer->setText(i18n("<body><b>Answer:</b> %1</body>", answerText)); } else { answer->setText(i18n("<body><b>Not answered yet</b> </body>")); } answer->nativeWidget()->setTextInteractionFlags(Qt::NoTextInteraction); m_layout->addItem(m_detailsWidget); } else { m_layout->removeItem(m_detailsWidget); m_detailsWidget->deleteLater(); m_detailsWidget = 0; } emit detailsVisibilityChanged(this, show); }
int HGLayout::insertItem(QGraphicsLayoutItem* item, const HLayoutConfig& conf) { if (!layout()) return -1; switch (layoutType()) { case HEnums::kVBox: case HEnums::kHBox: { QGraphicsLinearLayout* l = static_cast<QGraphicsLinearLayout*>(layout()); l->insertItem(conf.index(),item); l->setAlignment(item,alignment()); break; } case HEnums::kGrid: { QGraphicsGridLayout* l = static_cast<QGraphicsGridLayout*>(layout()); l->addItem(item,conf.row(),conf.column(),alignment()); break; } case HEnums::kAnchor: { //anchor layout can't add item here, add item in setAnchor QGraphicsAnchorLayout* l = static_cast<QGraphicsAnchorLayout*>(layout()); Q_UNUSED(l); return -1; } default: return -1; } return 0; }
DialPage::DialPage() { QGraphicsGridLayout* mainLayout = new QGraphicsGridLayout(); setLayout(mainLayout); currentNumber = new Plasma::Frame(this); currentNumber->setText("Dial"); currentNumber->setFrameShadow(Plasma::Frame::Sunken); currentNumber->setMinimumSize(0,50); currentNumber->setStyleSheet("background-color:#AAAAFF;border-size:2px;border-style:sunken;"); //currentNumber->setEnabledBorders(FrameSvg::EnabledBorders::Raised); mainLayout->addItem(currentNumber,0,0,1,6); QString numbers[12] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "0", "#"}; QString texts[12] = { "" , "abc", "def" , "ghi" , "jkl", "mno" , "pqrs", "tuv", "wxyz", "" , "" , "" }; for(int i = 0 ; i < 12 ; i++) { DialButton* newButton = new DialButton(this); newButton->setMinimumHeight(40); newButton->setLetter(numbers[i]); newButton->setText(numbers[i]+((!texts[i].isEmpty())?("\n"+texts[i]):"")); mainLayout->addItem(newButton,1+i/3,2*(i%3),1,2); connect(newButton,SIGNAL(typed(QString)),this, SLOT(charTyped(QString))); } Plasma::PushButton* newButton = new Plasma::PushButton(this); newButton->setText("Call"); newButton->setIcon(KIcon("/usr/share/kde4/apps/sflphone-plasmoid/icons/outgoing.svg")); mainLayout->addItem(newButton,5,0,1,3); Plasma::PushButton* cancelButton = new Plasma::PushButton(this); cancelButton->setText("Cancel"); cancelButton->setIcon(KIcon("/usr/share/kde4/apps/sflphone-plasmoid/icons/hang_up.svg")); mainLayout->addItem(cancelButton,5,3,1,3); connect(newButton, SIGNAL(clicked()), this, SLOT(call())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancel())); }
// NOTE: The QGraphicsLayout stuff is not based on QGraphicsItem nor // QObject. This makes it difficult to check types safely and, much // worse, there is no easy way to manage their memory. See notes in // Reference.cpp. SEXP qt_qaddItem_QGraphicsGridLayout(SEXP rself, SEXP ritem, SEXP rrow, SEXP rcol, SEXP rrowSpan, SEXP rcolSpan) { QGraphicsGridLayout *layout = unwrapPointer(rself, QGraphicsGridLayout); QGraphicsLayoutItem *item = unwrapPointer(ritem, QGraphicsLayoutItem); layout->addItem(item, asInteger(rrow), asInteger(rcol), asInteger(rrowSpan), asInteger(rcolSpan)); return rself; }
void StelMainGraphicsView::init(QSettings* conf) { Q_ASSERT(glWidget->isValid()); glWidget->makeCurrent(); // Create the main widget for stellarium, which in turn creates the main StelApp instance. mainSkyItem = new StelAppGraphicsWidget(); mainSkyItem->setZValue(-10); mainSkyItem->setContentsMargins(0,0,0,0); QGraphicsGridLayout* l = new QGraphicsGridLayout(backItem); l->setSpacing(0); l->setContentsMargins(0,0,0,0); l->addItem(mainSkyItem, 0, 0); backItem->setLayout(l); scene()->addItem(backItem); // Activate the resizing caused by the layout QCoreApplication::processEvents(); mainSkyItem->setFocus(); flagInvertScreenShotColors = conf->value("main/invert_screenshots_colors", false).toBool(); setFlagCursorTimeout(conf->value("gui/flag_mouse_cursor_timeout", false).toBool()); setCursorTimeout(conf->value("gui/mouse_cursor_timeout", 10.f).toFloat()); maxfps = conf->value("video/maximum_fps",10000.f).toFloat(); minfps = conf->value("video/minimum_fps",10000.f).toFloat(); StelPainter::initSystemGLInfo(glContext); QPainter qPainter(glWidget); StelPainter::setQPainter(&qPainter); // Initialize the core, including the StelApp instance. mainSkyItem->init(conf); // Prevent flickering on mac Leopard/Snow Leopard glWidget->setAutoFillBackground (false); #ifndef DISABLE_SCRIPTING scriptAPIProxy = new StelMainScriptAPIProxy(this); scriptMgr = new StelScriptMgr(this); #endif // Look for a static GUI plugins. foreach (QObject *plugin, QPluginLoader::staticInstances()) { StelGuiPluginInterface* pluginInterface = qobject_cast<StelGuiPluginInterface*>(plugin); if (pluginInterface) { gui = pluginInterface->getStelGuiBase(); } break; }
void FoursquareAuthPage::createContent(void) { MApplicationPage::createContent(); setStyleName("CommonApplicationPage"); setPannable(false); MAction *cancelAction = new MAction(tr("Cancel"), this); cancelAction->setLocation(MAction::ToolBarLocation); connect(cancelAction, SIGNAL(triggered()), this, SLOT(dismiss())); addAction(cancelAction); QGraphicsAnchorLayout *layout = new QGraphicsAnchorLayout(); layout->setContentsMargins(0, 0, 0, 0); m_header = new ViewHeader(tr("Foursquare authentication")); layout->addCornerAnchors(m_header, Qt::TopLeftCorner, layout, Qt::TopLeftCorner); layout->addCornerAnchors(m_header, Qt::TopRightCorner, layout, Qt::TopRightCorner); QGraphicsGridLayout *subLayout = new QGraphicsGridLayout(); layout->addCornerAnchors(subLayout, Qt::TopLeftCorner, m_header, Qt::BottomLeftCorner); layout->addCornerAnchors(subLayout, Qt::BottomRightCorner, layout, Qt::BottomRightCorner); m_view = new QGraphicsWebView(); m_view->setResizesToContents(false); m_view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored); connect(m_view, SIGNAL(loadStarted()), this, SLOT(pageLoadStarted())); connect(m_view, SIGNAL(loadFinished(bool)), this, SLOT(pageLoadFinished(bool))); subLayout->addItem(m_view, 0, 0); m_nam = new FoursquareAuthNetworkAccessManager(m_view->page()->networkAccessManager(), REDIRECT_URL, this); connect(m_nam, SIGNAL(tokenReceived(QString)), this, SLOT(tokenReceived(QString))); m_view->page()->setNetworkAccessManager(m_nam); centralWidget()->setLayout(layout); Q_EMIT(created()); }
WelcomeBox::WelcomeBox(QWidget *parentWidget, QGraphicsItem *parentItem) : QGraphicsWidget(parentItem) { m_parentWidget = parentWidget; setMinimumSize(BOX_W, BOX_H); setMaximumSize(BOX_W, BOX_H); m_width = static_cast<int>(BOX_W) - 2; m_height = static_cast<int>(BOX_H) - 2; QGraphicsWidget *topEmpty = new QGraphicsWidget; topEmpty->setMinimumSize(BOX_W, TEXT_BOX_H + 40); topEmpty->setMaximumSize(topEmpty->minimumSize()); QGraphicsWidget *leftEmpty = new QGraphicsWidget; leftEmpty->setMinimumSize(25, 20); leftEmpty->setMaximumSize(leftEmpty->minimumSize()); QGraphicsWidget *centerEmpty = new QGraphicsWidget; centerEmpty->setMinimumSize(100, 20); centerEmpty->setMaximumSize(centerEmpty->minimumSize()); QGraphicsWidget *rightEmpty = new QGraphicsWidget; rightEmpty->setMinimumSize(25, 20); rightEmpty->setMaximumSize(rightEmpty->minimumSize()); QGraphicsGridLayout *layout = new QGraphicsGridLayout; layout->addItem(topEmpty, 0, 0, 1, 5); layout->addItem(leftEmpty, 1, 0); layout->addItem(centerEmpty, 1, 2); layout->addItem(rightEmpty, 1, 4); GUIManager *gm = GUIManager::instance(); connect(this, SIGNAL(modeChanged(int)), gm, SLOT(setMode(int))); // Modes QList<Mode> modes = ModeManager::modes(); Mode mode; QAction *act; int i = 1; foreach (mode, modes) { if (mode.id != ModeManager::ID_WELCOME) { act = new QAction(this); act->setText(mode.name); act->setData(mode.id); connect(act, SIGNAL(triggered()), this, SLOT(setMode())); layout->addItem(new WelcomeLink(act), i, 1); i++; } } // about act = new QAction(this); act->setText(tr("About Bmin")); connect(act, SIGNAL(triggered()), this, SLOT(showAbout())); layout->addItem(new WelcomeLink(act), 1, 3); // setting layout setLayout(layout); }
QGraphicsLayout *DrillDownListItem::createLayout() { QGraphicsGridLayout *layout = new QGraphicsGridLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->addItem(titleLabelWidget(), 0, 0, Qt::AlignLeft | Qt::AlignVCenter); imageWidget()->setStyleName("CommonDrillDownIcon"); layout->addItem(imageWidget(), 0, 1, Qt::AlignCenter); if (MApplication::instance()->objectName() == "widgetsgallery") { setStyleName("CommonBasicListItem"); titleLabelWidget()->setStyleName("CommonSingleTitle"); imageWidget()->setImage("icon-m-common-drilldown-arrow"); } else { setStyleName("CommonBasicListItemInverted"); titleLabelWidget()->setStyleName("CommonSingleTitleInverted"); imageWidget()->setImage("icon-m-common-drilldown-arrow-inverse"); } return layout; }
void NowPlaying::layoutPlanar() { if (m_currentLayout != PlanarLayout) { setAspectRatioMode(Plasma::IgnoreAspectRatio); setMinimumSize(200, 100); Plasma::ToolTipManager::self()->unregisterWidget(this); QGraphicsGridLayout* layout = new QGraphicsGridLayout(); m_textPanel->show(); layout->addItem(m_textPanel, 0, 0); setLayout(layout); m_currentLayout = PlanarLayout; } }
Window::Window(QGraphicsWidget *parent) : QGraphicsWidget(parent, Qt::Window) { //! [0] QGraphicsLinearLayout *windowLayout = new QGraphicsLinearLayout(Qt::Vertical); QGraphicsLinearLayout *linear = new QGraphicsLinearLayout(windowLayout); LayoutItem *item = new LayoutItem; linear->addItem(item); linear->setStretchFactor(item, 1); //! [0] //! [1] item = new LayoutItem; linear->addItem(item); linear->setStretchFactor(item, 3); windowLayout->addItem(linear); //! [1] //! [2] QGraphicsGridLayout *grid = new QGraphicsGridLayout(windowLayout); item = new LayoutItem; grid->addItem(item, 0, 0, 4, 1); item = new LayoutItem; item->setMaximumHeight(item->minimumHeight()); grid->addItem(item, 0, 1, 2, 1, Qt::AlignVCenter); item = new LayoutItem; item->setMaximumHeight(item->minimumHeight()); grid->addItem(item, 2, 1, 2, 1, Qt::AlignVCenter); item = new LayoutItem; grid->addItem(item, 0, 2); item = new LayoutItem; grid->addItem(item, 1, 2); item = new LayoutItem; grid->addItem(item, 2, 2); item = new LayoutItem; grid->addItem(item, 3, 2); windowLayout->addItem(grid); //! [2] //! [3] setLayout(windowLayout); setWindowTitle(tr("Basic Graphics Layouts Example")); //! [3] }
int main(int argc, char **argv) { MApplication app(argc, argv); MTheme::loadCSS("layout_inside_layout.css"); MApplicationWindow window; MApplicationPage page; /* Create a MLayout that we set the policies for */ MLayout *layout = new MLayout; MLinearLayoutPolicy *portraitPolicy = new MLinearLayoutPolicy(layout, Qt::Horizontal); MLinearLayoutPolicy *landscapePolicy = new MLinearLayoutPolicy(layout, Qt::Horizontal); for (int i = 0; i < 3; ++i) { MLabel *label = new MLabel(QString("Item %1").arg(i + 1)); label->setAlignment(Qt::AlignCenter); label->setObjectName("item"); //Set CSS name for styling portraitPolicy->addItem(label); landscapePolicy->addItem(label); } /* Create a widget to hold the inner layout and to put inside the policy */ QGraphicsWidget *widget = new QGraphicsWidget; /* Create an inner layout. A QGraphicsGridLayout is used since we don't require * multiple policies here, but using a MLayout would also work. */ QGraphicsGridLayout *innerLayout = new QGraphicsGridLayout(widget); for (int i = 0; i < 4; ++i) { MLabel *label = new MLabel(QString("Inner Item %1").arg(i + 1)); label->setAlignment(Qt::AlignCenter); label->setObjectName("inneritem"); //Set CSS name for styling innerLayout->addItem(label, i / 2, i % 2); } /* Now add the widget to the landscape policy only, so that the innerLayout is hidden when device is rotated */ landscapePolicy->addItem(widget); layout->setLandscapePolicy(landscapePolicy); layout->setPortraitPolicy(portraitPolicy); /* Attach the layout to the page */ page.centralWidget()->setLayout(layout); page.appear(&window); window.show(); return app.exec(); }
void graphics_maze_scene_private::add_maze_locations(const maze_interface_type maze_data) { int size_x = maze_data->get_size_x(); int size_y = maze_data->get_size_y(); for (int x = 0; x < size_x; ++x) { for (int y = 0; y < size_y; ++y) { boost::optional<location> maze_location = maze_data->get_location(x, y); if (!maze_location) { printLog(eDebug, eWarningLogLevel, str(boost::format("Can't get location for ( %1%, %2% )") % x % y)); continue; } CGraphicsMazeLocation* draw_location = new CGraphicsMazeLocation; draw_location->setLocationData(maze_location.get()); draw_location->setLocationPos(x, y); main_grid_layout->addItem(draw_location, y, x); m_mCords2Locations.insert( std::make_pair(std::make_pair(x, y), draw_location)); } } }
MColorListViewPrivate::MColorListViewPrivate(MColorListView *p, MColorList *controller) : q_ptr(p), controller(controller), landscapePolicy(0), portraitPolicy(0), buttonGroup(0) { QGraphicsGridLayout *layout = new QGraphicsGridLayout(); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); controller->setLayout(layout); MStylableWidget* container = new MStylableWidget(); container->setStyleName("ColorSelectionContainer"); MLayout *containerLayout = new MLayout(); container->setLayout(containerLayout); landscapePolicy = new MGridLayoutPolicy(containerLayout); landscapePolicy->setContentsMargins(0, 0, 0, 0); landscapePolicy->setSpacing(0); containerLayout->setLandscapePolicy(landscapePolicy); portraitPolicy = new MGridLayoutPolicy(containerLayout); portraitPolicy->setContentsMargins(0, 0, 0, 0); portraitPolicy->setSpacing(0); containerLayout->setPortraitPolicy(portraitPolicy); layout->addItem(container, 0, 0); // Current color list colors << QColor(0x95, 0xE8, 0x5D); colors << QColor(0x73, 0xC0, 0xF5); colors << QColor(0xCB, 0xA4, 0xDE); colors << QColor(0xE9, 0x48, 0xA3); colors << QColor(0xFF, 0x9E, 0x9E); colors << QColor(0xFF, 0xF6, 0x57); colors << QColor(0x9C, 0x9C, 0x9C); colors << QColor(0x74, 0xD9, 0x41); colors << QColor(0x31, 0xB0, 0xDE); colors << QColor(0xBC, 0x79, 0xDE); colors << QColor(0xE9, 0x48, 0xA3); colors << QColor(0xFF, 0x79, 0x4D); colors << QColor(0xFB, 0xFF, 0x14); colors << QColor(0x80, 0x80, 0x80); colors << QColor(0x55, 0xD5, 0x00); colors << QColor(0x00, 0x88, 0xE6); colors << QColor(0xAE, 0x4E, 0xDE); colors << QColor(0xE9, 0x48, 0xA3); colors << QColor(0xFF, 0x40, 0x00); colors << QColor(0xFF, 0xE6, 0x00); colors << QColor(0x4D, 0x4D, 0x4D); colors << QColor(0x45, 0x90, 0x27); colors << QColor(0x00, 0x6F, 0xBA); colors << QColor(0x89, 0x3D, 0xAF); colors << QColor(0xE9, 0x48, 0xA3); colors << QColor(0xCC, 0x33, 0x00); colors << QColor(0xFF, 0x90, 0x00); colors << QColor(0x33, 0x33, 0x33); colors << QColor(0x00, 0x73, 0x00); colors << QColor(0x00, 0x41, 0x82); colors << QColor(0x5E, 0x2A, 0x78); colors << QColor(0xE9, 0x48, 0xA3); colors << QColor(0xB5, 0x2D, 0x00); colors << QColor(0xFF, 0x6A, 0x00); colors << QColor(0x1A, 0x1A, 0x1A); }
SendMessageWidget::SendMessageWidget(DataEngine* engine, QGraphicsWidget* parent) : Frame(parent), m_engine(engine), m_personWatch(engine) { m_updateTimer.setInterval(1000); m_updateTimer.setSingleShot(true); int avatarSize = KIconLoader::SizeMedium; int actionSize = KIconLoader::SizeSmallMedium; Label* title = new Label; title->setText(i18n("<b>Send message</b>")); // Recipient m_image = new ContactImage(m_engine); m_image->setMinimumHeight(avatarSize); m_image->setMinimumWidth(avatarSize); m_image->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); m_toLabel = new Label; m_toEdit = new LineEdit; QGraphicsGridLayout* toLayout = new QGraphicsGridLayout; toLayout->setColumnFixedWidth(0, avatarSize * 1.2); toLayout->addItem(m_image, 0, 0, 2, 1); toLayout->addItem(m_toLabel, 0, 1); toLayout->addItem(m_toEdit, 1, 1); Label* subjectLabel = new Label; subjectLabel->setText(i18n("Subject:")); m_subject = new LineEdit; Label* bodyLabel = new Label; bodyLabel->setText(i18n("Message:")); Frame* bodyFrame = new Frame(this); bodyFrame->setFrameShadow(Sunken); bodyFrame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_body = new TextEdit; (new QGraphicsLinearLayout(bodyFrame))->addItem(m_body); Plasma::IconWidget* cancel = new Plasma::IconWidget; cancel->setIcon("go-previous-view"); cancel->setToolTip(i18n("Back")); cancel->setMinimumHeight(actionSize); cancel->setMaximumHeight(actionSize); cancel->setMinimumWidth(actionSize); cancel->setMaximumWidth(actionSize); m_submit = new Plasma::IconWidget; m_submit->setIcon("mail-send"); m_submit->setToolTip(i18n("Send")); m_submit->setMinimumHeight(actionSize); m_submit->setMaximumHeight(actionSize); m_submit->setMinimumWidth(actionSize); m_submit->setMaximumWidth(actionSize); m_submit->setEnabled(false); QGraphicsLinearLayout* buttonLayout = new QGraphicsLinearLayout(Qt::Horizontal); buttonLayout->addItem(cancel); buttonLayout->addStretch(); buttonLayout->addItem(m_submit); QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(Qt::Vertical, this); layout->addItem(title); layout->addItem(toLayout); layout->addItem(subjectLabel); layout->addItem(m_subject); layout->addItem(bodyLabel); layout->addItem(bodyFrame); layout->addItem(buttonLayout); connect(m_submit, SIGNAL(clicked()), SLOT(send())); connect(cancel, SIGNAL(clicked()), SIGNAL(done())); connect(&m_updateTimer, SIGNAL(timeout()), SLOT(updateTo())); connect(m_toEdit, SIGNAL(editingFinished()), SLOT(updateTo())); connect(m_toEdit, SIGNAL(textEdited(QString)), SLOT(updateSendAction())); connect(m_toEdit, SIGNAL(textEdited(QString)), SLOT(toChanged(QString))); connect(m_toEdit, SIGNAL(returnPressed()), SLOT(switchToSubject())); connect(&m_personWatch, SIGNAL(updated()), SLOT(personUpdated())); connect(m_subject, SIGNAL(textEdited(QString)), SLOT(updateSendAction())); connect(m_subject, SIGNAL(returnPressed()), SLOT(switchToBody())); connect(m_body, SIGNAL(textChanged()), SLOT(updateSendAction())); }
void Ut_MGridLayoutPolicy::testHeightForWidthInSubLayout() { QFETCH(bool, useMLayout); QFETCH(bool, useInnerMLayout); QFETCH(bool, putInnerWidgetInWidget); QGraphicsWidget *form = new QGraphicsWidget; MGridLayoutPolicy *mpolicy = NULL; QGraphicsGridLayout *qlayout = NULL; if (useMLayout) { MLayout *mlayout = new MLayout(form); mlayout->setContentsMargins(0, 0, 0, 0); mpolicy = new MGridLayoutPolicy(mlayout); mpolicy->setSpacing(0); } else { qlayout = new QGraphicsGridLayout(form); qlayout->setContentsMargins(0, 0, 0, 0); qlayout->setSpacing(0); } QGraphicsWidget *topSpacer = createSpacer(); QGraphicsWidget *leftSpacer = createSpacer(); QGraphicsWidget *rightSpacer = createSpacer(); leftSpacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); rightSpacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); QGraphicsWidget *square = new SquareWidget; QGraphicsLayout *innerLayout = NULL; if (useInnerMLayout) { innerLayout = new MLayout(); MLinearLayoutPolicy *policy = new MLinearLayoutPolicy(static_cast<MLayout *>(innerLayout), Qt::Horizontal); policy->addItem(square); } else { innerLayout = new QGraphicsLinearLayout(Qt::Horizontal); static_cast<QGraphicsLinearLayout *>(innerLayout)->addItem(square); } innerLayout->setContentsMargins(0,0,0,0); QGraphicsLayoutItem *innerItem; if (putInnerWidgetInWidget) { QGraphicsWidget *innerWidget = new QGraphicsWidget; innerWidget->setLayout(innerLayout); innerItem = innerWidget; } else { innerItem = innerLayout; } if (useMLayout) { mpolicy->addItem(topSpacer, 0, 1); mpolicy->addItem(leftSpacer, 1, 0); mpolicy->addItem(rightSpacer, 1, 2); mpolicy->addItem(innerItem, 1, 1); } else { qlayout->addItem(topSpacer, 0, 1); qlayout->addItem(leftSpacer, 1, 0); qlayout->addItem(rightSpacer, 1, 2); qlayout->addItem(innerItem, 1, 1); } QCOMPARE(form->preferredSize(), QSizeF(500,500)); QCOMPARE(form->effectiveSizeHint(Qt::PreferredSize, QSizeF(100,-1)), QSizeF(100,100)); delete form; }
void ScreenShotPage::createContent() { TemplatePage::createContent(); QGraphicsWidget *panel = centralWidget(); panel->setContentsMargins(0,0,0,0); setContentsMargins(0,0,0,0); layout = new MLayout(panel); layoutPolicy = new MLinearLayoutPolicy(layout, Qt::Vertical); layoutPolicy->setSpacing(0); layoutPolicy->setContentsMargins(0,0,0,0); layout->setPortraitPolicy(layoutPolicy); layout->setLandscapePolicy(layoutPolicy); MLayout * elementsLayout = new MLayout; MLinearLayoutPolicy* elementsPolicyL = new MLinearLayoutPolicy(elementsLayout,Qt::Vertical); elementsLayout->setLandscapePolicy(elementsPolicyL); elementsPolicyL->setSpacing(0); elementsPolicyL->setContentsMargins(0, 0, 0, 0); MLinearLayoutPolicy* elementsPolicyP = new MLinearLayoutPolicy(elementsLayout,Qt::Vertical); elementsLayout->setLandscapePolicy(elementsPolicyP); elementsPolicyP->setSpacing(0); elementsPolicyP->setContentsMargins(0, 0, 0, 0); label1 = new MLabel ("Take a screenshot"); label1->setObjectName("label1"); label1->setStyleName(inv("CommonApplicationHeader")); elementsPolicyL->addItem(label1); elementsPolicyP->addItem(label1); labelDescription = new MLabel (); labelDescription->setObjectName("descriptionLabel"); labelDescription->setWordWrap(true); labelDescription->setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); labelDescription->setStyleName(inv("CommonBodyText")); elementsPolicyL->addItem(labelDescription); elementsPolicyP->addItem(labelDescription); QGraphicsGridLayout * gridSecs = new QGraphicsGridLayout(); entrySeconds = new MTextEdit(MTextEditModel::SingleLine,""); entrySeconds->setObjectName("secondsTextEntry"); entrySeconds->setMaxLength(2); entrySeconds->setStyleName(inv("CommonSingleInputField")); entrySeconds->setContentType(M::NumberContentType); entrySeconds->setText("8"); entrySeconds->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); MLabel * secsLabel = new MLabel(); secsLabel->setObjectName("secsLabel"); secsLabel->setText("seconds"); secsLabel->setStyleName(inv("CommonSingleTitle")); gridSecs->addItem(entrySeconds, 0 , 0 , Qt::AlignVCenter); gridSecs->addItem(secsLabel, 0 , 1, Qt::AlignVCenter); elementsPolicyL->addItem(gridSecs); elementsPolicyP->addItem(gridSecs); buttonScreenshot = new MButton("Take it!"); buttonScreenshot->setObjectName("screenshotButton"); buttonScreenshot->setStyleName(inv("CommonSingleButton")); elementsPolicyL->addItem(buttonScreenshot); elementsPolicyP->addItem(buttonScreenshot); connect(buttonScreenshot, SIGNAL(clicked()), this, SLOT(screenshotDelay())); elementsPolicyL->addStretch(); elementsPolicyP->addStretch(); layoutPolicy->addItem(elementsLayout); retranslateUi(); }
UpcomingEventsWidget::UpcomingEventsWidget( const LastFmEventPtr &event, QGraphicsItem *parent, Qt::WindowFlags wFlags ) : QGraphicsWidget( parent, wFlags ) , m_mapButton( 0 ) , m_urlButton( 0 ) , m_image( new QLabel ) , m_event( event ) { setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Maximum ); m_image->setText( i18n("Loading picture...") ); m_image->setAttribute( Qt::WA_NoSystemBackground ); m_image->setAlignment( Qt::AlignCenter ); m_image->setFixedSize( 128, 128 ); QGraphicsProxyWidget *imageProxy = new QGraphicsProxyWidget( this ); imageProxy->setWidget( m_image ); m_attendance = createLabel(); m_date = createLabel(); m_location = createLabel(); m_name = createLabel(); m_participants = createLabel(); m_tags = createLabel(); m_venue = createLabel(); QGraphicsLinearLayout *buttonsLayout = new QGraphicsLinearLayout( Qt::Horizontal ); buttonsLayout->setSizePolicy( QSizePolicy::Maximum, QSizePolicy::Fixed ); if( event && event->venue() && event->venue()->location ) { QPointF geo( event->venue()->location->longitude, event->venue()->location->latitude ); if( !geo.isNull() ) { m_mapButton = new Plasma::PushButton( this ); m_mapButton->setMaximumSize( QSizeF( 22, 22 ) ); m_mapButton->setIcon( KIcon("edit-find") ); // TODO: a map icon would be nice m_mapButton->setToolTip( i18n( "View map" ) ); buttonsLayout->addItem( m_mapButton ); } } if( event && event->url().isValid() ) { m_urlButton = new Plasma::PushButton( this ); m_urlButton->setMaximumSize( QSizeF( 22, 22 ) ); m_urlButton->setIcon( KIcon("applications-internet") ); m_urlButton->setToolTip( i18n( "Open Last.fm webpage for this event" ) ); connect( m_urlButton, SIGNAL(clicked()), this, SLOT(openUrl()) ); buttonsLayout->addItem( m_urlButton ); } QSizePolicy::Policy minPol = QSizePolicy::Minimum; QGraphicsWidget *supportLabel, *venueLabel, *locationLabel, *dateLabel, *attendLabel, *tagsLabel; supportLabel = createLabel( i18nc("@label:textbox Supporing acts for an event", "Supporting:"), minPol ); venueLabel = createLabel( i18nc("@label:textbox", "Venue:"), minPol ); locationLabel = createLabel( i18nc("@label:textbox", "Location:"), minPol ); dateLabel = createLabel( i18nc("@label:textbox", "Date:"), minPol ); attendLabel = createLabel( i18nc("@label:textbox", "Attending:"), minPol ); tagsLabel = createLabel( i18nc("@label:textbox", "Tags:"), minPol ); QGraphicsGridLayout *infoLayout = new QGraphicsGridLayout; infoLayout->addItem( supportLabel, 0, 0 ); infoLayout->addItem( venueLabel, 1, 0 ); infoLayout->addItem( locationLabel, 2, 0 ); infoLayout->addItem( dateLabel, 3, 0 ); infoLayout->addItem( attendLabel, 4, 0 ); infoLayout->addItem( tagsLabel, 5, 0 ); infoLayout->addItem( m_participants, 0, 1 ); infoLayout->addItem( m_venue, 1, 1 ); infoLayout->addItem( m_location, 2, 1 ); infoLayout->addItem( m_date, 3, 1 ); infoLayout->addItem( m_attendance, 4, 1 ); infoLayout->addItem( m_tags, 5, 1 ); QGraphicsGridLayout *layout = new QGraphicsGridLayout; layout->addItem( imageProxy, 0, 0, 2, 1, Qt::AlignCenter ); layout->addItem( m_name, 0, 1 ); layout->addItem( buttonsLayout, 0, 2, Qt::AlignRight ); layout->addItem( infoLayout, 1, 1, 1, 2 ); setLayout( layout ); QString name = event->name(); if( event->isCancelled() ) name = i18nc( "@label:textbox Title for a canceled upcoming event", "<s>%1</s> (Canceled)", name ); setName( name ); setDate( event->date() ); setLocation( event->venue()->location ); setVenue( event->venue() ); setAttendance( event->attendance() ); setParticipants( event->participants() ); setTags( event->tags() ); setImage( event->imageUrl(LastFmEvent::Large) ); }
QGraphicsLayout * RightArrowItem::createLayout() { QGraphicsGridLayout *layout; MWidget *spacer; MLabel *titleLabel; MLabel *subTitleLabel = 0; MImageWidget *iconWidget = 0; MImageWidget *drillIconWidget; Qt::Alignment textAlignment = getTextAlignment (); layout = new QGraphicsGridLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); titleLabel = titleLabelWidget (); titleLabel->setWordWrap (true); drillIconWidget = new MImageWidget ("icon-m-common-drilldown-arrow-inverse"); drillIconWidget->setStyleName ("CommonDrillDownIcon"); titleLabel->setStyleName(m_TitleStyleName); switch (itemStyle()) { case TitleWithSubtitle: SYS_DEBUG ("TitleWithSubtitle"); /* * The title label. */ layout->addItem (titleLabel, 0, 0); layout->setAlignment(titleLabel, Qt::AlignLeft | Qt::AlignVCenter); /* * The sub-title label. */ subTitleLabel = subtitleLabelWidget (); subTitleLabel->setStyleName("CommonSubTitleInverted"); layout->addItem (subTitleLabel, 1, 0); layout->setAlignment (subTitleLabel, Qt::AlignLeft | Qt::AlignVCenter); spacer = new MWidget; layout->addItem (spacer, 2, 0); /* * The drill down icon. */ layout->addItem(drillIconWidget, 0, 1, 3, 1); layout->setAlignment (drillIconWidget, Qt::AlignVCenter | Qt::AlignRight); break; case IconWithTitleAndSubtitle: SYS_DEBUG ("IconWithTitleAndSubtitle"); /* * The left side icon. */ iconWidget = imageWidget(); layout->addItem (iconWidget, 0, 0, 2, 1); layout->setAlignment (iconWidget, Qt::AlignVCenter | Qt::AlignRight); /* * The title label. */ layout->addItem (titleLabel, 0, 1); layout->setAlignment (titleLabel, Qt::AlignLeft | Qt::AlignVCenter); /* * The sub-title label. */ subTitleLabel = subtitleLabelWidget (); subTitleLabel->setStyleName("CommonSubTitleInverted"); layout->addItem (subTitleLabel, 1, 1, Qt::AlignLeft | Qt::AlignVCenter); /* * The drill down icon. */ layout->addItem(drillIconWidget, 0, 2, 2, 1); layout->setAlignment (drillIconWidget, Qt::AlignVCenter | Qt::AlignRight); break; case IconWithTitle: SYS_DEBUG ("IconWithTitle"); /* * The left side icon. */ iconWidget = imageWidget(); layout->addItem (iconWidget, 0, 0); layout->setAlignment (iconWidget, Qt::AlignVCenter | Qt::AlignRight); /* * The title label. */ titleLabel->setAlignment (textAlignment | Qt::AlignVCenter); layout->addItem (titleLabel, 0, 1); layout->setAlignment (titleLabel, Qt::AlignLeft | Qt::AlignVCenter); /* * The drill down icon. */ layout->addItem(drillIconWidget, 0, 2); layout->setAlignment (drillIconWidget, Qt::AlignVCenter | Qt::AlignRight); break; default: SYS_WARNING ("itemStyle not supported."); } setStyleName ("CommonPanelInverted"); return layout; }
void StelGui::init(QGraphicsWidget *atopLevelGraphicsWidget) { qDebug() << "Creating GUI ..."; StelGuiBase::init(atopLevelGraphicsWidget); skyGui = new SkyGui(atopLevelGraphicsWidget); locationDialog = new LocationDialog(atopLevelGraphicsWidget); helpDialog = new HelpDialog(atopLevelGraphicsWidget); dateTimeDialog = new DateTimeDialog(atopLevelGraphicsWidget); searchDialog = new SearchDialog(atopLevelGraphicsWidget); viewDialog = new ViewDialog(atopLevelGraphicsWidget); shortcutsDialog = new ShortcutsDialog(atopLevelGraphicsWidget); configurationDialog = new ConfigurationDialog(this, atopLevelGraphicsWidget); #ifdef ENABLE_SCRIPT_CONSOLE scriptConsole = new ScriptConsole(atopLevelGraphicsWidget); #endif astroCalcDialog = new AstroCalcDialog(atopLevelGraphicsWidget); bookmarksDialog = new BookmarksDialog(atopLevelGraphicsWidget); /////////////////////////////////////////////////////////////////////// // Create all the main actions of the program, associated with shortcuts /////////////////////////////////////////////////////////////////////// // Connect all the GUI actions signals with the Core of Stellarium StelActionMgr* actionsMgr = StelApp::getInstance().getStelActionManager(); // XXX: this should probably go into the script manager. QString datetimeGroup = N_("Date and Time"); QString windowsGroup = N_("Windows"); QString miscGroup = N_("Miscellaneous"); actionsMgr->addAction("actionQuit_Global", miscGroup, N_("Quit"), this, "quit()", "Ctrl+Q", "Ctrl+X"); actionsMgr->addAction("actionIncrease_Script_Speed", datetimeGroup, N_("Speed up the script execution rate"), this, "increaseScriptSpeed()"); actionsMgr->addAction("actionDecrease_Script_Speed", datetimeGroup, N_("Slow down the script execution rate"), this, "decreaseScriptSpeed()"); actionsMgr->addAction("actionSet_Real_Script_Speed", datetimeGroup, N_("Set the normal script execution rate"), this, "setRealScriptSpeed()"); actionsMgr->addAction("actionStop_Script", datetimeGroup, N_("Stop script execution"), this, "stopScript()", "Ctrl+D, S"); actionsMgr->addAction("actionPause_Script", datetimeGroup, N_("Pause script execution"), this, "pauseScript()", "Ctrl+D, P"); actionsMgr->addAction("actionResume_Script", datetimeGroup, N_("Resume script execution"), this, "resumeScript()", "Ctrl+D, R"); #ifdef ENABLE_SCRIPT_CONSOLE actionsMgr->addAction("actionShow_ScriptConsole_Window_Global", windowsGroup, N_("Script console window"), scriptConsole, "visible", "F12", "", true); #endif actionsMgr->addAction("actionShow_Help_Window_Global", windowsGroup, N_("Help window"), helpDialog, "visible", "F1", "", true); actionsMgr->addAction("actionShow_Configuration_Window_Global", windowsGroup, N_("Configuration window"), configurationDialog, "visible", "F2", "", true); actionsMgr->addAction("actionShow_Search_Window_Global", windowsGroup, N_("Search window"), searchDialog, "visible", "F3", "Ctrl+F", true); actionsMgr->addAction("actionShow_SkyView_Window_Global", windowsGroup, N_("Sky and viewing options window"), viewDialog, "visible", "F4", "", true); actionsMgr->addAction("actionShow_DateTime_Window_Global", windowsGroup, N_("Date/time window"), dateTimeDialog, "visible", "F5", "", true); actionsMgr->addAction("actionShow_Location_Window_Global", windowsGroup, N_("Location window"), locationDialog, "visible", "F6", "", true); actionsMgr->addAction("actionShow_Shortcuts_Window_Global", windowsGroup, N_("Shortcuts window"), shortcutsDialog, "visible", "F7", "", true); actionsMgr->addAction("actionShow_AstroCalc_Window_Global", windowsGroup, N_("AstroCalc window"), astroCalcDialog, "visible", "F10", "Alt+A", true); actionsMgr->addAction("actionShow_Bookmarks_Window_Global", windowsGroup, N_("Bookmarks window"), bookmarksDialog, "visible", "Alt+B", "", true); actionsMgr->addAction("actionSave_Copy_Object_Information_Global", miscGroup, N_("Copy selected object information to clipboard"), this, "copySelectedObjectInfo()", "Ctrl+C", "", true); QSettings* conf = StelApp::getInstance().getSettings(); Q_ASSERT(conf); setAutoHideHorizontalButtonBar(conf->value("gui/auto_hide_horizontal_toolbar", true).toBool()); setAutoHideVerticalButtonBar(conf->value("gui/auto_hide_vertical_toolbar", true).toBool()); actionsMgr->addAction("actionAutoHideHorizontalButtonBar", miscGroup, N_("Auto hide horizontal button bar"), this, "autoHideHorizontalButtonBar"); actionsMgr->addAction("actionAutoHideVerticalButtonBar", miscGroup, N_("Auto hide vertical button bar"), this, "autoHideVerticalButtonBar"); setGuiVisible(conf->value("gui/flag_show_gui", true).toBool()); actionsMgr->addAction("actionToggle_GuiHidden_Global", miscGroup, N_("Toggle visibility of GUI"), this, "visible", "Ctrl+T", "", true); #ifndef DISABLE_SCRIPTING StelScriptMgr* scriptMgr = &StelApp::getInstance().getScriptMgr(); connect(scriptMgr, SIGNAL(scriptRunning()), this, SLOT(scriptStarted())); connect(scriptMgr, SIGNAL(scriptStopped()), this, SLOT(scriptStopped())); #endif /////////////////////////////////////////////////////////////////////////// //// QGraphicsView based GUI /////////////////////////////////////////////////////////////////////////// // Add everything QPixmap pxmapDefault; QPixmap pxmapGlow(":/graphicGui/glow.png"); QPixmap pxmapOn(":/graphicGui/2-on-location.png"); QPixmap pxmapOff(":/graphicGui/2-off-location.png"); StelButton* b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, "actionShow_Location_Window_Global"); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/1-on-time.png"); pxmapOff = QPixmap(":/graphicGui/1-off-time.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, "actionShow_DateTime_Window_Global"); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/5-on-labels.png"); pxmapOff = QPixmap(":/graphicGui/5-off-labels.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, "actionShow_SkyView_Window_Global"); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/6-on-search.png"); pxmapOff = QPixmap(":/graphicGui/6-off-search.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, "actionShow_Search_Window_Global"); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/8-on-settings.png"); pxmapOff = QPixmap(":/graphicGui/8-off-settings.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, "actionShow_Configuration_Window_Global"); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/9-on-help.png"); pxmapOff = QPixmap(":/graphicGui/9-off-help.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, "actionShow_Help_Window_Global"); skyGui->winBar->addButton(b); QPixmap pxmapGlow32x32(":/graphicGui/glow32x32.png"); pxmapOn = QPixmap(":/graphicGui/btConstellationLines-on.png"); pxmapOff = QPixmap(":/graphicGui/btConstellationLines-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Constellation_Lines"); skyGui->buttonBar->addButton(b, "010-constellationsGroup"); pxmapOn = QPixmap(":/graphicGui/btConstellationLabels-on.png"); pxmapOff = QPixmap(":/graphicGui/btConstellationLabels-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Constellation_Labels"); skyGui->buttonBar->addButton(b, "010-constellationsGroup"); pxmapOn = QPixmap(":/graphicGui/btConstellationArt-on.png"); pxmapOff = QPixmap(":/graphicGui/btConstellationArt-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Constellation_Art"); skyGui->buttonBar->addButton(b, "010-constellationsGroup"); pxmapOn = QPixmap(":/graphicGui/btEquatorialGrid-on.png"); pxmapOff = QPixmap(":/graphicGui/btEquatorialGrid-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Equatorial_Grid"); skyGui->buttonBar->addButton(b, "020-gridsGroup"); pxmapOn = QPixmap(":/graphicGui/btAzimuthalGrid-on.png"); pxmapOff = QPixmap(":/graphicGui/btAzimuthalGrid-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Azimuthal_Grid"); skyGui->buttonBar->addButton(b, "020-gridsGroup"); pxmapOn = QPixmap(":/graphicGui/btGround-on.png"); pxmapOff = QPixmap(":/graphicGui/btGround-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Ground"); skyGui->buttonBar->addButton(b, "030-landscapeGroup"); pxmapOn = QPixmap(":/graphicGui/btCardinalPoints-on.png"); pxmapOff = QPixmap(":/graphicGui/btCardinalPoints-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Cardinal_Points"); skyGui->buttonBar->addButton(b, "030-landscapeGroup"); pxmapOn = QPixmap(":/graphicGui/btAtmosphere-on.png"); pxmapOff = QPixmap(":/graphicGui/btAtmosphere-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Atmosphere"); skyGui->buttonBar->addButton(b, "030-landscapeGroup"); pxmapOn = QPixmap(":/graphicGui/btNebula-on.png"); pxmapOff = QPixmap(":/graphicGui/btNebula-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Nebulas"); skyGui->buttonBar->addButton(b, "040-nebulaeGroup"); pxmapOn = QPixmap(":/graphicGui/btPlanets-on.png"); pxmapOff = QPixmap(":/graphicGui/btPlanets-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Planets_Labels"); skyGui->buttonBar->addButton(b, "040-nebulaeGroup"); pxmapOn = QPixmap(":/graphicGui/btEquatorialMount-on.png"); pxmapOff = QPixmap(":/graphicGui/btEquatorialMount-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionSwitch_Equatorial_Mount"); skyGui->buttonBar->addButton(b, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btGotoSelectedObject-on.png"); pxmapOff = QPixmap(":/graphicGui/btGotoSelectedObject-off.png"); buttonGotoSelectedObject = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionGoto_Selected_Object"); skyGui->buttonBar->addButton(buttonGotoSelectedObject, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btNightView-on.png"); pxmapOff = QPixmap(":/graphicGui/btNightView-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionShow_Night_Mode"); skyGui->buttonBar->addButton(b, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btFullScreen-on.png"); pxmapOff = QPixmap(":/graphicGui/btFullScreen-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionSet_Full_Screen_Global"); skyGui->buttonBar->addButton(b, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeRewind-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeRewind-off.png"); buttonTimeRewind = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionDecrease_Time_Speed"); skyGui->buttonBar->addButton(buttonTimeRewind, "070-timeGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeRealtime-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeRealtime-off.png"); pxmapDefault = QPixmap(":/graphicGui/btTimePause-on.png"); buttonTimeRealTimeSpeed = new StelButton(NULL, pxmapOn, pxmapOff, pxmapDefault, pxmapGlow32x32, "actionSet_Real_Time_Speed"); skyGui->buttonBar->addButton(buttonTimeRealTimeSpeed, "070-timeGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeNow-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeNow-off.png"); buttonTimeCurrent = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionReturn_To_Current_Time"); skyGui->buttonBar->addButton(buttonTimeCurrent, "070-timeGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeForward-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeForward-off.png"); buttonTimeForward = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, "actionIncrease_Time_Speed"); skyGui->buttonBar->addButton(buttonTimeForward, "070-timeGroup"); skyGui->buttonBar->setGroupMargin("070-timeGroup", 32, 0); pxmapOn = QPixmap(":/graphicGui/btQuit.png"); b = new StelButton(NULL, pxmapOn, pxmapOn, pxmapGlow32x32, "actionQuit_Global"); skyGui->buttonBar->addButton(b, "080-quitGroup"); // add the flip buttons if requested in the config setFlagShowFlipButtons(conf->value("gui/flag_show_flip_buttons", false).toBool()); setFlagShowNebulaBackgroundButton(conf->value("gui/flag_show_nebulae_background_button", false).toBool()); /////////////////////////////////////////////////////////////////////// // Create the main base widget skyGui->init(this); QGraphicsGridLayout* l = new QGraphicsGridLayout(); l->setContentsMargins(0,0,0,0); l->setSpacing(0); l->addItem(skyGui, 0, 0); atopLevelGraphicsWidget->setLayout(l); setStelStyle(StelApp::getInstance().getCurrentStelStyle()); skyGui->setGeometry(atopLevelGraphicsWidget->geometry()); skyGui->updateBarsPos(); // The disabled text for checkboxes is embossed with the QPalette::Light setting for the ColorGroup Disabled. // It doesn't appear to be possible to set this from the stylesheet. Instead we'll make it 100% transparent // and set the text color for disabled in the stylesheets. QPalette p = QGuiApplication::palette(); p.setColor(QPalette::Disabled, QPalette::Light, QColor(0,0,0,0)); // And this is for the focus... apparently the focus indicator is the inverted value for Active/Button. p.setColor(QPalette::Active, QPalette::Button, QColor(255,255,255)); QGuiApplication::setPalette(p); // FIXME: Workaround for set UI language when app is started --AW updateI18n(); StelApp *app = &StelApp::getInstance(); connect(app, SIGNAL(languageChanged()), this, SLOT(updateI18n())); connect(app, SIGNAL(colorSchemeChanged(const QString&)), this, SLOT(setStelStyle(const QString&))); initDone = true; }
void GraphicalTimetableLine::init() { if ( !m_svg.hasElement("background") ) { setFailedToLaunch( true, i18n("No 'background' element found in the SVG") ); } m_zoomInButton = new Plasma::ToolButton( this ); m_zoomOutButton = new Plasma::ToolButton( this ); m_zoomInButton->setIcon( KIcon("zoom-in") ); m_zoomOutButton->setIcon( KIcon("zoom-out") ); m_zoomInButton->setZValue( 999999 ); m_zoomOutButton->setZValue( 999999 ); connect( m_zoomInButton, SIGNAL(clicked()), this, SLOT(zoomIn()) ); connect( m_zoomOutButton, SIGNAL(clicked()), this, SLOT(zoomOut()) ); m_title = new Plasma::Label( this ); QFont font = Plasma::Theme::defaultTheme()->font( Plasma::Theme::DefaultFont ); font.setPixelSize( 14 ); font.setBold( true ); m_title->setFont( font ); m_title->setWordWrap( false ); m_title->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); m_title->setZValue( 999999 ); m_courtesy = new Plasma::Label; m_courtesy->setAlignment( Qt::AlignVCenter | Qt::AlignRight ); connect( m_courtesy, SIGNAL(linkActivated(QString)), KToolInvocation::self(), SLOT(invokeBrowser(QString)) ); QLabel *labelInfo = m_courtesy->nativeWidget(); labelInfo->setOpenExternalLinks( true ); labelInfo->setWordWrap( true ); m_courtesy->setText( courtesyText() ); m_courtesy->setZValue( 999999 ); m_departureView = new QGraphicsWidget( this ); m_departureView->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); m_departureView->translate( 0, -m_title->size().height() - 25 ); QGraphicsGridLayout *l = new QGraphicsGridLayout( this ); l->addItem( m_zoomInButton, 0, 0 ); l->addItem( m_zoomOutButton, 0, 1 ); l->addItem( m_title, 0, 2 ); l->addItem( m_departureView, 1, 0, 1, 3 ); l->addItem( m_courtesy, 2, 0, 1, 3 ); m_stopSettings.set( ServiceProviderSetting, config().readEntry(QLatin1String("serviceProvider"), QString()) ); m_stopSettings.set( StopNameSetting, config().readEntry(QLatin1String("stopName"), QString()) ); m_timelineLength = config().readEntry( QLatin1String("timelineLength"), 10 ); m_showTimetable = config().readEntry( QLatin1String("showTimetable"), true ); m_drawTransportLine = config().readEntry( QLatin1String("drawTransportLine"), true ); QVariantList vehicleTypes = config().readEntry( QLatin1String("vehicleTypes"), QVariantList() ); if ( vehicleTypes.isEmpty() ) { m_vehicleTypes << UnknownVehicleType << Tram << Bus << TrolleyBus << InterurbanTrain << Subway << Metro << RegionalTrain << RegionalExpressTrain << InterregionalTrain << IntercityTrain << HighSpeedTrain << Ship << Plane << Feet; } else { foreach ( const QVariant &vehicleType, vehicleTypes ) { m_vehicleTypes << static_cast<VehicleType>( vehicleType.toInt() ); } } if ( m_stopSettings.stopList().isEmpty() ) { setConfigurationRequired( true, i18n("Please select a stop name") ); } else if ( m_stopSettings.get<QString>(ServiceProviderSetting).isEmpty() ) { setConfigurationRequired( true, i18n("Please select a service provider") ); } else { setConfigurationRequired( false ); } if ( !configurationRequired() ) { m_sourceName = QString("Departures %1|stop=%2|timeoffset=0") .arg(m_stopSettings.get<QString>(ServiceProviderSetting)) .arg(m_stopSettings.stop(0).nameOrId()); dataEngine("publictransport")->connectSource( m_sourceName, this, 60000, Plasma::AlignToMinute ); } createTooltip(); }
SeasideListItemLarge::SeasideListItemLarge(MWidget *parent): MWidgetController(parent) { priv = new SeasideListItemLargePriv; setObjectName("SeasideListItemLarge"); QGraphicsGridLayout *grid = new QGraphicsGridLayout; grid->setContentsMargins(0, 0, 0, 0); grid->setSpacing(0); setLayout(grid); priv->image = new MImageWidget(); priv->image->setObjectName("SeasideListItemLargeThumbnail"); priv->image->setPreferredSize(64, 64); priv->image->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->image, 0, 0, 2, 2); priv->name = new SeasideLabel; priv->name->setObjectName("SeasideListItemLargeName"); priv->name->setPreferredWidth(SCREEN_WIDTH); priv->name->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum); grid->addItem(priv->name, 0, 2, 1, 1); priv->detail = new SeasideLabel; priv->detail->setObjectName("SeasideListItemLargeDetail"); priv->name->setPreferredWidth(SCREEN_WIDTH); priv->name->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); grid->addItem(priv->detail, 1, 2, 1, 1); priv->status = new SeasideLabel; priv->status->setObjectName("SeasideListItemLargeStatus"); priv->name->setPreferredWidth(SCREEN_WIDTH); priv->name->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); grid->addItem(priv->status, 2, 2, 1, 1); priv->favorite = new MImageWidget(); priv->favorite->setObjectName("SeasideListItemLargeFavorite"); priv->favorite->setPreferredSize(25, 25); priv->favorite->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->favorite, 2, 1, 1, 1); priv->presence = new MImageWidget(); priv->presence->setObjectName("SeasideListItemLargePresence"); priv->presence->setPreferredSize(25, 25); priv->presence->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->presence, 2, 0, 1, 1); priv->button = new MButton(); priv->button->setObjectName("SeasideListItemLargeButton"); priv->button->setPreferredSize(70, 70); priv->button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->button, 0, 4, 4, 4); QObject::connect(priv->button, SIGNAL(clicked()), this, SIGNAL(buttonClicked())); priv->email = new MImageWidget(); priv->email->setObjectName("SeasideListItemLargeEmail"); priv->email->setPreferredSize(25, 25); priv->email->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->email, 2, 5, 1, 1); priv->sms = new MImageWidget(); priv->sms->setObjectName("SeasideListItemLargeSMS"); priv->sms->setPreferredSize(25, 25); priv->sms->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->sms, 2,4, 1, 1); priv->im = new MImageWidget(); priv->im->setObjectName("SeasideListItemLargeIM"); priv->im->setPreferredSize(25, 25); priv->im->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->im, 2, 3, 1, 1); priv->call = new MImageWidget(); priv->call->setObjectName("SeasideListItemLargeCall"); priv->call->setPreferredSize(25, 25); priv->call->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); grid->addItem(priv->call, 2, 6, 1, 1); }
void Dialog::buildDialog() { QGraphicsGridLayout *gridLayout = new QGraphicsGridLayout(this); setLayout(gridLayout); int row = 0; m_navIcon = new Plasma::IconWidget(this); m_navIcon->setIcon("go-next"); m_navIcon->setMaximumSize(22, 22); m_navIcon->setMinimumSize(22, 22); gridLayout->addItem(m_navIcon, row, 0); m_lineEdit = new Plasma::LineEdit(this); gridLayout->addItem(m_lineEdit, row, 1); m_searchButton = new Plasma::IconWidget(this); m_searchButton->setIcon("system-search"); m_searchButton->setMaximumSize(22, 22); m_searchButton->setMinimumSize(22, 22); gridLayout->addItem(m_searchButton, row, 2); row++; m_tabBar = new Plasma::TabBar(this); m_dashBoard = new DashBoard(m_tabBar); m_tabBar->addTab(KIcon("nepomuk"), i18n("Dashboard"), m_dashBoard); //m_resultsView = new Crystal::ResultWebView(this); m_resultsView = new Crystal::ResultWidget(m_tabBar); m_tabBar->addTab(KIcon("system-search"), i18n("Results"), m_resultsView); m_tabBar->setTabBarShown(false); /* // TODO: filtering by types QGraphicsWidget* typesWidget = new QGraphicsWidget(this); typesWidget->setMaximumHeight(32); QGraphicsLinearLayout* typesLayout = new QGraphicsLinearLayout(typesWidget); m_typeFolder = new Plasma::PushButton(typesWidget); m_typeFolder->setCheckable(true); m_typeFolder->setIcon(KIcon("folder")); typesLayout->addItem(m_typeFolder); m_typePerson = new Plasma::PushButton(typesWidget); m_typePerson->setCheckable(true); m_typePerson->setIcon(KIcon("user-identity")); typesLayout->addItem(m_typePerson); m_typeImage = new Plasma::PushButton(typesWidget); m_typeImage->setCheckable(true); m_typeImage->setIcon(KIcon("image-x-generic")); typesLayout->addItem(m_typeImage); // Default type filters: m_typePerson->setChecked(true); m_typeImage->setChecked(true); gridLayout->addItem(typesWidget, row, 0, 1, 3); row++; */ gridLayout->addItem(m_tabBar, row, 0, 1, 3); row++; m_statusBar = new Plasma::Label(this); //m_statusBar->setText("status"); m_statusBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); m_statusBar->setMaximumHeight(22); m_statusBar->setFont(KGlobalSettings::smallestReadableFont()); gridLayout->addItem(m_statusBar, row, 0, 1, 3); connect(m_lineEdit, SIGNAL(returnPressed()), SLOT(search())); connect(m_lineEdit, SIGNAL(returnPressed()), m_searchButton, SLOT(setPressed())); connect(m_searchButton, SIGNAL(clicked()), SLOT(search())); connect(m_dashBoard, SIGNAL(search(const QString&)), SLOT(search(const QString&))); connect(m_tabBar, SIGNAL(currentChanged(int)), SLOT(updateNavIcon(int))); connect(m_navIcon, SIGNAL(clicked()), SLOT(toggleTab())); // connect query clients connect(m_queryClient, SIGNAL(newEntries(const QList<Nepomuk::Query::Result> &)), m_resultsView, SLOT(newEntries(const QList<Nepomuk::Query::Result> &))); connect(m_queryClient, SIGNAL(finishedListing()), this, SLOT(searchFinished())); connect(m_fileQueryClient, SIGNAL(newEntries(const QList<Nepomuk::Query::Result> &)), m_resultsView, SLOT(newEntries(const QList<Nepomuk::Query::Result> &))); connect(m_fileQueryClient, SIGNAL(finishedListing()), this, SLOT(searchFinished())); connect(m_resultsView, SIGNAL(matchFound()), this, SLOT(matchFound())); kDebug() << "CONNECTED!!!!!!!!"; updateStatus(i18nc("no active search, no results shown", "Idle.")); updateNavIcon(m_tabBar->currentIndex()); setPreferredSize(400, 400); }
void StelGui::init(QGraphicsWidget* atopLevelGraphicsWidget, StelAppGraphicsWidget* astelAppGraphicsWidget) { qDebug() << "Creating GUI ..."; StelGuiBase::init(atopLevelGraphicsWidget, astelAppGraphicsWidget); skyGui = new SkyGui(atopLevelGraphicsWidget); locationDialog = new LocationDialog(); helpDialog = new HelpDialog(); dateTimeDialog = new DateTimeDialog(); searchDialog = new SearchDialog(); viewDialog = new ViewDialog(); shortcutsDialog = new ShortcutsDialog(); configurationDialog = new ConfigurationDialog(this); #ifdef ENABLE_SCRIPT_CONSOLE scriptConsole = new ScriptConsole(); #endif /////////////////////////////////////////////////////////////////////// // Create all the main actions of the program, associated with shortcuts StelApp::getInstance().getStelShortcutManager()->loadShortcuts(); #ifdef ENABLE_SCRIPT_CONSOLE StelApp::getInstance().getStelShortcutManager()-> addGuiAction("actionShow_ScriptConsole_Window_Global", true, N_("Script console window"), "F12", "", N_("Windows"), true, false, true); #endif /////////////////////////////////////////////////////////////////////// // Connect all the GUI actions signals with the Core of Stellarium connect(getGuiAction("actionQuit_Global"), SIGNAL(triggered()), this, SLOT(quit())); initConstellationMgr(); initGrindLineMgr(); initLandscapeMgr(); NebulaMgr* nmgr = GETSTELMODULE(NebulaMgr); connect(getGuiAction("actionShow_Nebulas"), SIGNAL(toggled(bool)), nmgr, SLOT(setFlagHints(bool))); getGuiAction("actionShow_Nebulas")->setChecked(nmgr->getFlagHints()); StelSkyLayerMgr* imgr = GETSTELMODULE(StelSkyLayerMgr); connect(getGuiAction("actionShow_DSS"), SIGNAL(toggled(bool)), imgr, SLOT(setFlagShow(bool))); getGuiAction("actionShow_DSS")->setChecked(imgr->getFlagShow()); StelCore* core = StelApp::getInstance().getCore(); StelMovementMgr* mmgr = GETSTELMODULE(StelMovementMgr); connect(getGuiAction("actionIncrease_Script_Speed"), SIGNAL(triggered()), this, SLOT(increaseScriptSpeed())); connect(getGuiAction("actionDecrease_Script_Speed"), SIGNAL(triggered()), this, SLOT(decreaseScriptSpeed())); connect(getGuiAction("actionSet_Real_Script_Speed"), SIGNAL(triggered()), this, SLOT(setRealScriptSpeed())); connect(getGuiAction("actionStop_Script"), SIGNAL(triggered()), this, SLOT(stopScript())); connect(getGuiAction("actionPause_Script"), SIGNAL(triggered()), this, SLOT(pauseScript())); connect(getGuiAction("actionResume_Script"), SIGNAL(triggered()), this, SLOT(resumeScript())); connect(getGuiAction("actionIncrease_Time_Speed"), SIGNAL(triggered()), core, SLOT(increaseTimeSpeed())); connect(getGuiAction("actionDecrease_Time_Speed"), SIGNAL(triggered()), core, SLOT(decreaseTimeSpeed())); connect(getGuiAction("actionIncrease_Time_Speed_Less"), SIGNAL(triggered()), core, SLOT(increaseTimeSpeedLess())); connect(getGuiAction("actionDecrease_Time_Speed_Less"), SIGNAL(triggered()), core, SLOT(decreaseTimeSpeedLess())); connect(getGuiAction("actionSet_Real_Time_Speed"), SIGNAL(triggered()), core, SLOT(toggleRealTimeSpeed())); connect(getGuiAction("actionSet_Time_Rate_Zero"), SIGNAL(triggered()), core, SLOT(setZeroTimeSpeed())); connect(getGuiAction("actionReturn_To_Current_Time"), SIGNAL(triggered()), core, SLOT(setTimeNow())); connect(getGuiAction("actionSwitch_Equatorial_Mount"), SIGNAL(toggled(bool)), mmgr, SLOT(setEquatorialMount(bool))); getGuiAction("actionSwitch_Equatorial_Mount")->setChecked(mmgr->getMountMode() != StelMovementMgr::MountAltAzimuthal); connect(getGuiAction("actionAdd_Solar_Hour"), SIGNAL(triggered()), core, SLOT(addHour())); connect(getGuiAction("actionAdd_Solar_Day"), SIGNAL(triggered()), core, SLOT(addDay())); connect(getGuiAction("actionAdd_Solar_Week"), SIGNAL(triggered()), core, SLOT(addWeek())); connect(getGuiAction("actionSubtract_Solar_Hour"), SIGNAL(triggered()), core, SLOT(subtractHour())); connect(getGuiAction("actionSubtract_Solar_Day"), SIGNAL(triggered()), core, SLOT(subtractDay())); connect(getGuiAction("actionSubtract_Solar_Week"), SIGNAL(triggered()), core, SLOT(subtractWeek())); connect(getGuiAction("actionAdd_Sidereal_Day"), SIGNAL(triggered()), core, SLOT(addSiderealDay())); connect(getGuiAction("actionAdd_Sidereal_Week"), SIGNAL(triggered()), core, SLOT(addSiderealWeek())); connect(getGuiAction("actionAdd_Sidereal_Month"), SIGNAL(triggered()), core, SLOT(addSiderealMonth())); connect(getGuiAction("actionAdd_Sidereal_Year"), SIGNAL(triggered()), core, SLOT(addSiderealYear())); connect(getGuiAction("actionSubtract_Sidereal_Day"), SIGNAL(triggered()), core, SLOT(subtractSiderealDay())); connect(getGuiAction("actionSubtract_Sidereal_Week"), SIGNAL(triggered()), core, SLOT(subtractSiderealWeek())); connect(getGuiAction("actionSubtract_Sidereal_Month"), SIGNAL(triggered()), core, SLOT(subtractSiderealMonth())); connect(getGuiAction("actionSubtract_Sidereal_Year"), SIGNAL(triggered()), core, SLOT(subtractSiderealYear())); connect(getGuiAction("actionSet_Home_Planet_To_Selected"), SIGNAL(triggered()), core, SLOT(moveObserverToSelected())); connect(getGuiAction("actionGo_Home_Global"), SIGNAL(triggered()), core, SLOT(returnToHome())); // connect the actor after setting the nightmode. // StelApp::init() already set flagNightMode for us, don't do it twice! getGuiAction("actionShow_Night_Mode")->setChecked(StelApp::getInstance().getVisionModeNight()); connect(getGuiAction("actionShow_Night_Mode"), SIGNAL(toggled(bool)), &StelApp::getInstance(), SLOT(setVisionModeNight(bool))); connect(getGuiAction("actionGoto_Selected_Object"), SIGNAL(triggered()), mmgr, SLOT(setFlagTracking())); connect(getGuiAction("actionZoom_In_Auto"), SIGNAL(triggered()), mmgr, SLOT(autoZoomIn())); connect(getGuiAction("actionZoom_Out_Auto"), SIGNAL(triggered()), mmgr, SLOT(autoZoomOut())); connect(getGuiAction("actionSet_Tracking"), SIGNAL(toggled(bool)), mmgr, SLOT(setFlagTracking(bool))); getGuiAction("actionSet_Tracking")->setChecked(mmgr->getFlagTracking()); connect(getGuiAction("actionSet_Full_Screen_Global"), SIGNAL(toggled(bool)), &StelMainWindow::getInstance(), SLOT(setFullScreen(bool))); getGuiAction("actionSet_Full_Screen_Global")->setChecked(StelMainWindow::getInstance().isFullScreen()); QAction* tempAction = getGuiAction("actionShow_Location_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), locationDialog, SLOT(setVisible(bool))); connect(locationDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); #ifdef ENABLE_SCRIPT_CONSOLE tempAction = getGuiAction("actionShow_ScriptConsole_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), scriptConsole, SLOT(setVisible(bool))); connect(scriptConsole, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); #endif tempAction = getGuiAction("actionShow_Configuration_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), configurationDialog, SLOT(setVisible(bool))); connect(configurationDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); tempAction = getGuiAction("actionShow_SkyView_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), viewDialog, SLOT(setVisible(bool))); connect(viewDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); tempAction = getGuiAction("actionShow_Help_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), helpDialog, SLOT(setVisible(bool))); connect(helpDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); tempAction = getGuiAction("actionShow_DateTime_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), dateTimeDialog, SLOT(setVisible(bool))); connect(dateTimeDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); tempAction = getGuiAction("actionShow_Search_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), searchDialog, SLOT(setVisible(bool))); connect(searchDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); tempAction = getGuiAction("actionShow_Shortcuts_Window_Global"); connect(tempAction, SIGNAL(toggled(bool)), shortcutsDialog, SLOT(setVisible(bool))); connect(shortcutsDialog, SIGNAL(visibleChanged(bool)), tempAction, SLOT(setChecked(bool))); connect(getGuiAction("actionSave_Screenshot_Global"), SIGNAL(triggered()), &StelMainGraphicsView::getInstance(), SLOT(saveScreenShot())); connect(getGuiAction("actionSave_Copy_Object_Information_Global"), SIGNAL(triggered()), this, SLOT(copySelectedObjectInfo())); getGuiAction("actionToggle_GuiHidden_Global")->setChecked(true); connect(getGuiAction("actionToggle_GuiHidden_Global"), SIGNAL(toggled(bool)), this, SLOT(setGuiVisible(bool))); connect(getGuiAction("actionHorizontal_Flip"), SIGNAL(toggled(bool)), StelApp::getInstance().getCore(), SLOT(setFlipHorz(bool))); getGuiAction("actionHorizontal_Flip")->setChecked(StelApp::getInstance().getCore()->getFlipHorz()); connect(getGuiAction("actionVertical_Flip"), SIGNAL(toggled(bool)), StelApp::getInstance().getCore(), SLOT(setFlipVert(bool))); getGuiAction("actionVertical_Flip")->setChecked(StelApp::getInstance().getCore()->getFlipVert()); StarMgr* smgr = GETSTELMODULE(StarMgr); connect(getGuiAction("actionShow_Stars"), SIGNAL(toggled(bool)), smgr, SLOT(setFlagStars(bool))); getGuiAction("actionShow_Stars")->setChecked(smgr->getFlagStars()); connect(getGuiAction("actionShow_Stars_Labels"), SIGNAL(toggled(bool)), smgr, SLOT(setFlagLabels(bool))); getGuiAction("actionShow_Stars_Labels")->setChecked(smgr->getFlagLabels()); SolarSystem* ssmgr = GETSTELMODULE(SolarSystem); connect(getGuiAction("actionShow_Planets_Labels"), SIGNAL(toggled(bool)), ssmgr, SLOT(setFlagLabels(bool))); getGuiAction("actionShow_Planets_Labels")->setChecked(ssmgr->getFlagLabels()); connect(getGuiAction("actionShow_Planets_Orbits"), SIGNAL(toggled(bool)), ssmgr, SLOT(setFlagOrbits(bool))); getGuiAction("actionShow_Planets_Orbits")->setChecked(ssmgr->getFlagOrbits()); connect(getGuiAction("actionShow_Planets_Trails"), SIGNAL(toggled(bool)), ssmgr, SLOT(setFlagTrails(bool))); getGuiAction("actionShow_Planets_Trails")->setChecked(ssmgr->getFlagTrails()); QSettings* conf = StelApp::getInstance().getSettings(); Q_ASSERT(conf); setAutoHideHorizontalButtonBar(conf->value("gui/auto_hide_horizontal_toolbar", true).toBool()); setAutoHideVerticalButtonBar(conf->value("gui/auto_hide_vertical_toolbar", true).toBool()); connect(getGuiAction("actionAutoHideHorizontalButtonBar"), SIGNAL(toggled(bool)), this, SLOT(setAutoHideHorizontalButtonBar(bool))); getGuiAction("actionAutoHideHorizontalButtonBar")->setChecked(getAutoHideHorizontalButtonBar()); connect(getGuiAction("actionAutoHideVerticalButtonBar"), SIGNAL(toggled(bool)), this, SLOT(setAutoHideVerticalButtonBar(bool))); getGuiAction("actionAutoHideVerticalButtonBar")->setChecked(getAutoHideVerticalButtonBar()); #ifndef DISABLE_SCRIPTING StelScriptMgr& scriptMgr = StelMainGraphicsView::getInstance().getScriptMgr(); connect(&scriptMgr, SIGNAL(scriptRunning()), this, SLOT(scriptStarted())); connect(&scriptMgr, SIGNAL(scriptStopped()), this, SLOT(scriptStopped())); #endif /////////////////////////////////////////////////////////////////////////// //// QGraphicsView based GUI /////////////////////////////////////////////////////////////////////////// // Add everything QPixmap pxmapDefault; QPixmap pxmapGlow(":/graphicGui/glow.png"); QPixmap pxmapOn(":/graphicGui/2-on-location.png"); QPixmap pxmapOff(":/graphicGui/2-off-location.png"); StelButton* b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, getGuiAction("actionShow_Location_Window_Global")); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/1-on-time.png"); pxmapOff = QPixmap(":/graphicGui/1-off-time.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, getGuiAction("actionShow_DateTime_Window_Global")); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/5-on-labels.png"); pxmapOff = QPixmap(":/graphicGui/5-off-labels.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, getGuiAction("actionShow_SkyView_Window_Global")); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/6-on-search.png"); pxmapOff = QPixmap(":/graphicGui/6-off-search.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, getGuiAction("actionShow_Search_Window_Global")); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/8-on-settings.png"); pxmapOff = QPixmap(":/graphicGui/8-off-settings.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, getGuiAction("actionShow_Configuration_Window_Global")); skyGui->winBar->addButton(b); pxmapOn = QPixmap(":/graphicGui/9-on-help.png"); pxmapOff = QPixmap(":/graphicGui/9-off-help.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow, getGuiAction("actionShow_Help_Window_Global")); skyGui->winBar->addButton(b); QPixmap pxmapGlow32x32(":/graphicGui/glow32x32.png"); pxmapOn = QPixmap(":/graphicGui/btConstellationLines-on.png"); pxmapOff = QPixmap(":/graphicGui/btConstellationLines-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Constellation_Lines")); skyGui->buttonBar->addButton(b, "010-constellationsGroup"); pxmapOn = QPixmap(":/graphicGui/btConstellationLabels-on.png"); pxmapOff = QPixmap(":/graphicGui/btConstellationLabels-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Constellation_Labels")); skyGui->buttonBar->addButton(b, "010-constellationsGroup"); pxmapOn = QPixmap(":/graphicGui/btConstellationArt-on.png"); pxmapOff = QPixmap(":/graphicGui/btConstellationArt-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Constellation_Art")); skyGui->buttonBar->addButton(b, "010-constellationsGroup"); pxmapOn = QPixmap(":/graphicGui/btEquatorialGrid-on.png"); pxmapOff = QPixmap(":/graphicGui/btEquatorialGrid-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Equatorial_Grid")); skyGui->buttonBar->addButton(b, "020-gridsGroup"); pxmapOn = QPixmap(":/graphicGui/btAzimuthalGrid-on.png"); pxmapOff = QPixmap(":/graphicGui/btAzimuthalGrid-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Azimuthal_Grid")); skyGui->buttonBar->addButton(b, "020-gridsGroup"); pxmapOn = QPixmap(":/graphicGui/btGround-on.png"); pxmapOff = QPixmap(":/graphicGui/btGround-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Ground")); skyGui->buttonBar->addButton(b, "030-landscapeGroup"); pxmapOn = QPixmap(":/graphicGui/btCardinalPoints-on.png"); pxmapOff = QPixmap(":/graphicGui/btCardinalPoints-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Cardinal_Points")); skyGui->buttonBar->addButton(b, "030-landscapeGroup"); pxmapOn = QPixmap(":/graphicGui/btAtmosphere-on.png"); pxmapOff = QPixmap(":/graphicGui/btAtmosphere-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Atmosphere")); skyGui->buttonBar->addButton(b, "030-landscapeGroup"); pxmapOn = QPixmap(":/graphicGui/btNebula-on.png"); pxmapOff = QPixmap(":/graphicGui/btNebula-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Nebulas")); skyGui->buttonBar->addButton(b, "040-nebulaeGroup"); pxmapOn = QPixmap(":/graphicGui/btPlanets-on.png"); pxmapOff = QPixmap(":/graphicGui/btPlanets-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Planets_Labels")); skyGui->buttonBar->addButton(b, "040-nebulaeGroup"); pxmapOn = QPixmap(":/graphicGui/btEquatorialMount-on.png"); pxmapOff = QPixmap(":/graphicGui/btEquatorialMount-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionSwitch_Equatorial_Mount")); b->setChecked(getGuiAction("actionSwitch_Equatorial_Mount")->isChecked()); skyGui->buttonBar->addButton(b, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btGotoSelectedObject-on.png"); pxmapOff = QPixmap(":/graphicGui/btGotoSelectedObject-off.png"); buttonGotoSelectedObject = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionGoto_Selected_Object")); skyGui->buttonBar->addButton(buttonGotoSelectedObject, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btNightView-on.png"); pxmapOff = QPixmap(":/graphicGui/btNightView-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionShow_Night_Mode")); skyGui->buttonBar->addButton(b, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btFullScreen-on.png"); pxmapOff = QPixmap(":/graphicGui/btFullScreen-off.png"); b = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionSet_Full_Screen_Global")); skyGui->buttonBar->addButton(b, "060-othersGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeRewind-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeRewind-off.png"); buttonTimeRewind = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionDecrease_Time_Speed")); skyGui->buttonBar->addButton(buttonTimeRewind, "070-timeGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeRealtime-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeRealtime-off.png"); pxmapDefault = QPixmap(":/graphicGui/btTimePause-on.png"); buttonTimeRealTimeSpeed = new StelButton(NULL, pxmapOn, pxmapOff, pxmapDefault, pxmapGlow32x32, getGuiAction("actionSet_Real_Time_Speed")); skyGui->buttonBar->addButton(buttonTimeRealTimeSpeed, "070-timeGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeNow-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeNow-off.png"); buttonTimeCurrent = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionReturn_To_Current_Time")); skyGui->buttonBar->addButton(buttonTimeCurrent, "070-timeGroup"); pxmapOn = QPixmap(":/graphicGui/btTimeForward-on.png"); pxmapOff = QPixmap(":/graphicGui/btTimeForward-off.png"); buttonTimeForward = new StelButton(NULL, pxmapOn, pxmapOff, pxmapGlow32x32, getGuiAction("actionIncrease_Time_Speed")); skyGui->buttonBar->addButton(buttonTimeForward, "070-timeGroup"); skyGui->buttonBar->setGroupMargin("070-timeGroup", 32, 0); pxmapOn = QPixmap(":/graphicGui/btQuit.png"); b = new StelButton(NULL, pxmapOn, pxmapOn, pxmapGlow32x32, getGuiAction("actionQuit_Global")); skyGui->buttonBar->addButton(b, "080-quitGroup"); // add the flip buttons if requested in the config setFlagShowFlipButtons(conf->value("gui/flag_show_flip_buttons", false).toBool()); setFlagShowNebulaBackgroundButton(conf->value("gui/flag_show_nebulae_background_button", false).toBool()); /////////////////////////////////////////////////////////////////////// // Create the main base widget skyGui->init(this); QGraphicsGridLayout* l = new QGraphicsGridLayout(); l->setContentsMargins(0,0,0,0); l->setSpacing(0); l->addItem(skyGui, 0, 0); stelAppGraphicsWidget->setLayout(l); setStelStyle(StelApp::getInstance().getCurrentStelStyle()); skyGui->setGeometry(stelAppGraphicsWidget->geometry()); skyGui->updateBarsPos(); // The disabled text for checkboxes is embossed with the QPalette::Light setting for the ColorGroup Disabled. // It doesn't appear to be possible to set this from the stylesheet. Instead we'll make it 100% transparent // and set the text color for disabled in the stylesheets. QPalette p = QApplication::palette(); p.setColor(QPalette::Disabled, QPalette::Light, QColor(0,0,0,0)); // And this is for the focus... apparently the focus indicator is the inverted value for Active/Button. p.setColor(QPalette::Active, QPalette::Button, QColor(255,255,255)); QApplication::setPalette(p); StelApp *app = &StelApp::getInstance(); connect(app, SIGNAL(languageChanged()), this, SLOT(updateI18n())); connect(app, SIGNAL(colorSchemeChanged(const QString&)), this, SLOT(setStelStyle(const QString&))); initDone = true; }