// Returns a heading item with the given text. Will create and add a new heading under \c parentIndex at \c position if no heading with that text exists yet. (Use -1 for \c position to append at the bottom.) If \c text is empty, will return the top-level (invisible root) item. QStandardItem* AMWindowPaneModel::headingItem(const QString& text, QModelIndex parentIndex, int position) { if(text.isEmpty()) return invisibleRootItem(); QList<QStandardItem*> searchItems = this->findItems(text); foreach(QStandardItem* i, searchItems) { if(isHeading(i->index())) return i; } // Didn't find it... time to make it: QStandardItem* newHeading = new QStandardItem(text); newHeading->setFlags(Qt::ItemIsEnabled); // enabled, but should not be selectable // graphics defaults: QFont font = QFont("Lucida Grande", 10, QFont::Bold); font.setCapitalization(QFont::AllUppercase); newHeading->setFont(font); newHeading->setData(QBrush(QColor::fromRgb(100, 109, 125)), Qt::ForegroundRole); QStandardItem* parent = itemFromIndex(parentIndex); if(parent) { if(position < 0 || position > parent->rowCount()) position = parent->rowCount(); parent->insertRow(position, newHeading); } else { if(position < 0 || position > rowCount()) position = rowCount(); insertRow(position, newHeading); } return newHeading; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->display_terminal->setText("select one of Radio Buttons On right Side\n1]Byte Transfer or\n2]Block Transfer."); ui->display2->setText("Note that data is\nalways displayed\nfrom LSB to MSB\n and in exam LEDs\nwill display 1-0 at\nstart and then\n data of transfered byte"); ui->terminal->setFocus(); ui->soursebut->hide(); ui->desbut->hide(); QFont font; font.setCapitalization(QFont::AllUppercase); ui->terminal->setFont(font); ui->terminal_2->setFont(font); QImage myImage; QImage myImage2; QString path=QCoreApplication::applicationDirPath(); QString pathb=QCoreApplication::applicationDirPath(); pathb=pathb+"/block.png"; path=path+"/dyna8251.jpg"; myImage.load(path); myImage2.load(pathb); ui->blockdig->setPixmap(QPixmap::fromImage(myImage2)); ui->image->setPixmap(QPixmap::fromImage(myImage)); ui->display_terminal->setFont(font); ui->display_terminal_2->setFont(font); connect(ui->terminal,SIGNAL(returnPressed()),this,SLOT(on_ENTER_pressed())) ; connect(ui->terminal_2,SIGNAL(returnPressed()),this,SLOT(on_ENTER_pressed())) ; connect(ui->about,SIGNAL(clicked()),this,SLOT(on_about_clicked())); ui->page_2->hide(); ui->page_3->hide(); ui->page_4->hide(); ui->page->show(); ui->display_terminal->setTextColor(QColor ("white")); }
void LocationsDataEdit::initView() { ui->addPhoto->updateIcons(); QFont nameFont = ui->name->font(); nameFont.setCapitalization(QFont::AllUppercase); ui->name->setFont(nameFont); ui->name->setQuestionPrefix(tr("Location")); }
void CentralWidget::drawWidget() { box1=new QGroupBox(this); box1->setTitle("Dati generali"); comuneLabel=new QLabel("Comune",this); foglioLabel=new QLabel("Foglio",this); partiLabel=new QLabel("Particella",this); propLabel=new QLabel("Proprietario",this); renditaLabel=new QLabel("Rendita catastale",this); comuneEdit=new QLineEdit(this); comuneEdit->setPlaceholderText("A001 - Z999"); foglioEdit=new QLineEdit(this); foglioEdit->setPlaceholderText("1 - 9999"); partiEdit=new QLineEdit(this); partiEdit->setPlaceholderText("1 - 9999"); propEdit=new QLineEdit(this); propEdit->hasFocus(); renditaEdit=new QLineEdit(this); QGridLayout* grid1=new QGridLayout(this); grid1->addWidget(comuneLabel,0,0); grid1->addWidget(comuneEdit,1,0); grid1->addWidget(foglioLabel,0,1); grid1->addWidget(foglioEdit,1,1); grid1->addWidget(partiLabel,0,2); grid1->addWidget(partiEdit,1,2); grid1->addWidget(propLabel,2,0); grid1->addWidget(propEdit,2,1,1,2); grid1->addWidget(renditaLabel,3,0); grid1->addWidget(renditaEdit,3,1,1,2); box1->setLayout(grid1); box2=new QGroupBox(this); box2->setTitle("Fabbricato"); classeLabel=new QLabel("Classe catastale",this); classeEdit=new QLineEdit(this); primaCasa=new QRadioButton("Prima casa",this); storico=new QRadioButton("Storico",this); inagibile=new QRadioButton("Inagibile",this); QGridLayout* grid2=new QGridLayout(); grid2->addWidget(classeLabel,0,0); grid2->addWidget(classeEdit,0,1,1,2); grid2->addWidget(primaCasa,1,0); grid2->addWidget(storico,1,1); grid2->addWidget(inagibile,1,2); box2->setLayout(grid2); QVBoxLayout* layout=new QVBoxLayout(this); layout->addWidget(box1); layout->addWidget(box2); setLayout(layout); QFont upperCase; upperCase.setCapitalization(QFont::AllUppercase); propEdit->setFont(upperCase); }
void Window::createAngularCodeTab() { // Create angular code widget angularCode = new QWidget; // Sets the layout for the angular code angularCode->setLayout(configCodecAreaWidgets()); // Do the configuration of the font for the angular code text box QFont font; font.setFamily("Chines & Internacional"); font.setCapitalization(QFont::AllLowercase); font.setPointSize(28); // Recovers the text box for the angular code widget QTextEdit *currentTextBox = angularCode->findChild<QTextEdit *>(); // Sets the font for the text box currentTextBox->setFont(font); }
void QSvgFontStyle::apply(QPainter *p, const QSvgNode *, QSvgExtraStates &states) { m_oldQFont = p->font(); m_oldSvgFont = states.svgFont; m_oldTextAnchor = states.textAnchor; m_oldWeight = states.fontWeight; if (m_textAnchorSet) states.textAnchor = m_textAnchor; QFont font = m_oldQFont; if (m_familySet) { states.svgFont = m_svgFont; font.setFamily(m_qfont.family()); } if (m_sizeSet) font.setPointSizeF(m_qfont.pointSizeF()); if (m_styleSet) font.setStyle(m_qfont.style()); if (m_variantSet) font.setCapitalization(m_qfont.capitalization()); if (m_weightSet) { if (m_weight == BOLDER) { states.fontWeight = qMin(states.fontWeight + 100, 900); } else if (m_weight == LIGHTER) { states.fontWeight = qMax(states.fontWeight - 100, 100); } else { states.fontWeight = m_weight; } font.setWeight(SVGToQtWeight(states.fontWeight)); } p->setFont(font); }
void tst_QFont::compare() { QFont font; { QFont font2 = font; font2.setPointSize( 24 ); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); } { QFont font2 = font; font2.setPixelSize( 24 ); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); } font.setPointSize(12); font.setItalic(false); font.setWeight(QFont::Normal); font.setUnderline(false); font.setStrikeOut(false); font.setOverline(false); { QFont font2 = font; font2.setPointSize( 24 ); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); } { QFont font2 = font; font2.setPixelSize( 24 ); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); } { QFont font2 = font; font2.setItalic(true); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); font2.setItalic(false); QVERIFY( font == font2 ); QVERIFY(!(font < font2)); font2.setWeight(QFont::Bold); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); font2.setWeight(QFont::Normal); QVERIFY( font == font2 ); QVERIFY(!(font < font2)); font.setUnderline(true); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); font.setUnderline(false); QVERIFY( font == font2 ); QVERIFY(!(font < font2)); font.setStrikeOut(true); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); font.setStrikeOut(false); QVERIFY( font == font2 ); QVERIFY(!(font < font2)); font.setOverline(true); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); font.setOverline(false); QVERIFY( font == font2 ); QVERIFY(!(font < font2)); font.setCapitalization(QFont::SmallCaps); QVERIFY( font != font2 ); QCOMPARE(font < font2,!(font2 < font)); font.setCapitalization(QFont::MixedCase); QVERIFY( font == font2 ); QVERIFY(!(font < font2)); } #if defined(Q_WS_X11) { QFont font1, font2; font1.setRawName("-Adobe-Helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1"); font2.setRawName("-Adobe-Helvetica-medium-r-normal--24-240-75-75-p-130-iso8859-1"); QVERIFY(font1 != font2); } #endif }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QFile styleFile(":/style.css"); styleFile.open(QFile::ReadOnly); QString styleSheet = QLatin1String(styleFile.readAll()); qApp->setStyleSheet(styleSheet); QPixmap window_icon; QFile iconFile(":/icon.png"); iconFile.open(QFile::ReadOnly); QByteArray icon_data = iconFile.readAll(); window_icon.loadFromData(icon_data); qApp->setWindowIcon(QIcon(window_icon)); awesome = new QtAwesome(qApp); settings = new Settings(this); window_watcher = new WindowWatcher(this); anitomy = new AnitomyWrapper(); event_timer = new QTimer(this); watch_timer = new QTimer(this); uptime_timer = new QElapsedTimer; progress_bar = new QProgressBar(ui->statusBar); over = new Overlay(this); torrent_refresh_time = 0; user_refresh_time = settings->getValue(Settings::UserRefreshTime, D_USER_REFRESH_TIME) .toInt(); download_rule = 0; download_count = 0; hasUser = false; uptime_timer->start(); watch_timer->setSingleShot(true); awesome->initFontAwesome(); bool check_for_updates = settings->getValue(Settings::CheckUpdates, D_CHECK_FOR_UPDATES).toBool(); if (check_for_updates) { connect(FvUpdater::sharedUpdater(), &FvUpdater::restartRequested, [&]() { // NOLINT QString app = QApplication::applicationFilePath(); QStringList arguments = QApplication::arguments(); QString wd = QDir::currentPath(); QProcess::startDetached(app, arguments, wd); elegantClose(true); }); FvUpdater::sharedUpdater()->CheckForUpdatesSilent(); } QFont font = ui->listTabs->tabBar()->font(); font.setCapitalization(QFont::Capitalize); ui->listTabs->tabBar()->setFont(font); int currentYear = QDate::currentDate().year(); int lowerYear = currentYear - 10; while (currentYear > lowerYear) { ui->comboYear->addItem(QString::number(currentYear)); currentYear--; } QWidget *container = new QWidget(ui->scrollArea); layout = new FlowLayout(container); ui->scrollArea->setWidget(container); container->setLayout(layout); QWidget *container2 = new QWidget(ui->scrollArea_2); layout2 = new FlowLayout(container2); layout2->disableSort(); ui->scrollArea_2->setWidget(container2); container2->setLayout(layout2); QVariantMap black; black.insert("color", QColor(0, 0, 0)); black.insert("color-active", QColor(0, 0, 0)); black.insert("color-disabled", QColor(0, 0, 0)); black.insert("color-selected", QColor(0, 0, 0)); ui->airingButton->setIcon(awesome->icon(fa::clocko, black)); ui->torrentsButton->setIcon(awesome->icon(fa::rss, black)); ui->animeButton->setIcon(awesome->icon(fa::bars, black)); ui->seasonsButton->setIcon(awesome->icon(fa::th, black)); ui->statisticsButton->setIcon(awesome->icon(fa::piechart, black)); ui->tabWidget->tabBar()->hide(); ui->tabWidget->setCurrentIndex(UserTabs::tAnime); ui->listTabs->setCurrentIndex(0); ui->statusBar->addWidget(progress_bar); ui->statusBar->layout()->setContentsMargins(1, 0, 0, 0); progress_bar->setRange(0, 100); progress_bar->setValue(5); progress_bar->setFormat("Authorizing"); QSettings s; restoreGeometry(s.value("mainWindowGeometry").toByteArray()); restoreState(s.value("mainWindowState").toByteArray()); connect(&user_future_watcher, SIGNAL(finished()), SLOT(userLoaded())); connect(&user_list_future_watcher, SIGNAL(finished()), SLOT(userListLoaded())); connect(ui->animeButton, SIGNAL(clicked()), SLOT(showAnimeTab())); connect(ui->airingButton, SIGNAL(clicked()), SLOT(showAiringTab())); connect(ui->torrentsButton, SIGNAL(clicked()), SLOT(showTorrentsTab())); connect(ui->seasonsButton, SIGNAL(clicked()), SLOT(showBrowseTab())); connect(ui->actionSettings, SIGNAL(triggered()), SLOT(showSettings())); connect(ui->statisticsButton, SIGNAL(clicked()), SLOT(showStatisticsTab())); connect(ui->actionExit, &QAction::triggered, [&, this]() { // NOLINT this->elegantClose(); }); connect(ui->actionAbout, &QAction::triggered, [&, this]() { // NOLINT About *about = new About(this); about->show(); }); connect(ui->actionHelp, &QAction::triggered, [&, this]() { // NOLINT QDesktopServices::openUrl(QUrl("http://app.shinjiru.me/support.php")); }); connect(ui->actionRL, &QAction::triggered, [&, this]() { // NOLINT loadUser(); }); connect(ui->actionAS, &QAction::triggered, [&]() { // NOLINT SearchPanel *sp = new SearchPanel(this); sp->show(); }); connect(ui->actionARR, &QAction::triggered, [&, this]() { // NOLINT SettingsDialog *s = new SettingsDialog(this); s->showSmartTitles(); connect(s, &QDialog::accepted, [&, this]() { // NOLINT Settings set; toggleAnimeRecognition( set.getValue(Settings::AnimeRecognitionEnabled, D_ANIME_RECOGNITION) .toBool()); torrents_enabled = set.getValue(Settings::TorrentsEnabled, D_TORRENTS_ENABLED).toBool(); reloadSmartTitles(); reloadRules(); }); }); connect(qApp, SIGNAL(aboutToQuit()), SLOT(elegantClose())); connect(ui->actionVAL, SIGNAL(triggered()), SLOT(viewAnimeList())); connect(ui->actionVD, SIGNAL(triggered()), SLOT(viewDashboard())); connect(ui->actionVP, SIGNAL(triggered()), SLOT(viewProfile())); connect(ui->actionEAR, SIGNAL(triggered(bool)), SLOT(toggleAnimeRecognition(bool))); connect(ui->actionExport, SIGNAL(triggered()), SLOT(exportListJSON())); connect(ui->actionUpdate, SIGNAL(triggered()), FvUpdater::sharedUpdater(), SLOT(CheckForUpdatesNotSilent())); connect(window_watcher, SIGNAL(title_found(QString)), SLOT(watch(QString))); connect(watch_timer, SIGNAL(timeout()), SLOT(updateEpisode())); connect(event_timer, SIGNAL(timeout()), SLOT(eventTick())); connect(ui->torrentTable, SIGNAL(customContextMenuRequested(QPoint)), SLOT(torrentContextMenu(QPoint))); connect(ui->torrentFilter, SIGNAL(textChanged(QString)), SLOT(filterTorrents(QString))); connect(ui->chkHideUnknown, SIGNAL(toggled(bool)), SLOT(filterTorrents(bool))); connect(ui->refreshButton, SIGNAL(clicked()), SLOT(refreshTorrentListing())); connect(ui->actionEAR, SIGNAL(toggled(bool)), SLOT(applyEAR())); connect(ui->tabWidget, &QTabWidget::currentChanged, [&, this]( // NOLINT int tab) { if (tab != 0) { this->over->removeDrawing("blank_table"); this->over->removeDrawing("no anime"); ui->listTabs->show(); ui->listFilterLineEdit->show(); } else { this->filterList(3); if (hasUser && (User::sharedUser()->getAnimeList().count() == 0)) { this->addNoAnimePrompt(); } } }); ui->actionEAR->setChecked( settings->getValue(Settings::AnimeRecognitionEnabled, D_ANIME_RECOGNITION) .toBool()); this->toggleAnimeRecognition(ui->actionEAR->isChecked()); QString genrelist = "Action, Adult, Adventure, Cars, Comedy, Dementia, Demons, Doujinshi, " "Drama, Ecchi, Fantasy, Game, Gender Bender, Harem, Hentai, Historical, " "Horror, Josei, Kids, Magic, Martial Arts, Mature, Mecha, Military, " "Motion Comic, Music, Mystery, Mythological , Parody, Police, " "Psychological, Romance, Samurai, School, Sci-Fi, Seinen, Shoujo, Shoujo " "Ai, Shounen, Shounen Ai, Slice of Life, Space, Sports, Super Power, " "Supernatural, Thriller, Tragedy, Vampire, Yaoi, Yuri"; QStringList genres = genrelist.split(", "); for (QString genre : genres) { QCheckBox *chk = new QCheckBox(); chk->setText(genre); chk->setTristate(true); ui->genreList->addWidget(chk); } connect(ui->listFilterLineEdit, SIGNAL(textChanged(QString)), SLOT(filterList(QString))); connect(ui->listFilterLineEdit, SIGNAL(returnPressed()), SLOT(showSearch())); connect(ui->listTabs, SIGNAL(currentChanged(int)), SLOT(filterList(int))); connect(ui->browseButton, SIGNAL(clicked()), SLOT(loadBrowserData())); this->show(); createActions(); initTray(); trayIcon->show(); int result = API::sharedAPI()->verifyAPI(); if (result == AniListAPI::OK) { connect(API::sharedAPI()->sharedAniListAPI(), &AniListAPI::access_granted, [&, this]() { // NOLINT progress_bar->setValue(10); progress_bar->setFormat("Access granted"); loadUser(); event_timer->start(1000); }); connect(API::sharedAPI()->sharedAniListAPI(), &AniListAPI::access_denied, [&, this](QString error) { // NOLINT qCritical() << error; if (isVisible()) { QMessageBox::critical(this, "Shinjiru", tr("Error: ") + error); } }); } else if (result == AniListAPI::NO_CONNECTION) { qDebug() << "Starting Shinjiru in offline mode"; hasUser = User::sharedUser()->loadLocal(); } reloadRules(); }
void GeoDataFeaturePrivate::initializeDefaultStyles() { // We need to do this similar to the way KCmdLineOptions works in // the future: Having a PlacemarkStyleProperty properties[] would // help here greatly. QString defaultFamily = s_defaultFont.family(); #ifdef Q_OS_MACX int defaultSize = 10; #else int defaultSize = 8; #endif s_defaultStyle[GeoDataFeature::None] = new GeoDataStyle( QImage(), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Default] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/default_location.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Unknown] = new GeoDataStyle( QImage(), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_white.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_yellow.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_orange.png" ) ), QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_red.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_white.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_yellow.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_orange.png" ) ), QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_red.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_white.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_yellow.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_orange.png" ) ), QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_red.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_white.png" ) ), QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_yellow.png" ) ), QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_orange.png" ) ), QFont( defaultFamily, defaultSize, 75, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_red.png" ) ), QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Nation] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.2 ), 75, false ), QColor( "#404040" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Nation]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::Mountain] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/mountain_1.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Volcano] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/volcano_1.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Mons] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/mountain_1.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Valley] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/valley.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Continent] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, false ), QColor( "#bf0303" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Continent]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::Ocean] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, true ), QColor( "#2c72c7" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Ocean]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::OtherTerrain] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/other.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Crater] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/crater.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Mare] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, false ), QColor( "#bf0303" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Mare]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::GeographicPole] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/pole_1.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MagneticPole] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/pole_2.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::ShipWreck] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/shipwreck.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.8 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::AirPort] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/airport.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Observatory] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/observatory.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Wikipedia] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/wikipedia.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::OsmSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/osm.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Coordinate] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/coordinate.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MannedLandingSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/manned_landing.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::RoboticRover] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/robotic_rover.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::UnmannedSoftLandingSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/unmanned_soft_landing.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::UnmannedHardLandingSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/unmanned_hard_landing.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Folder] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/folder.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Bookmark] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/bookmark.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); QFont const osmFont( defaultFamily, defaultSize, 50, false ); s_defaultStyle[GeoDataFeature::AccomodationCamping] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_camping.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationHostel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_hostel.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationHotel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_hotel2.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationMotel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_motel.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationYouthHostel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_youth_hostel.p.16" ); s_defaultStyle[GeoDataFeature::AmenityLibrary] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "amenity_library.p.16" ); s_defaultStyle[GeoDataFeature::EducationCollege] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_college.p.16" ); s_defaultStyle[GeoDataFeature::EducationSchool] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_school.p.16" ); s_defaultStyle[GeoDataFeature::EducationUniversity] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_university.p.16" ); s_defaultStyle[GeoDataFeature::FoodBar] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_bar.p.16" ); s_defaultStyle[GeoDataFeature::FoodBiergarten] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_biergarten.p.16" ); s_defaultStyle[GeoDataFeature::FoodCafe] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_cafe.p.16" ); s_defaultStyle[GeoDataFeature::FoodFastFood] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_fastfood2.p.16" ); s_defaultStyle[GeoDataFeature::FoodPub] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_pub.p.16" ); s_defaultStyle[GeoDataFeature::FoodRestaurant] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_restaurant.p.16" ); s_defaultStyle[GeoDataFeature::HealthDoctors] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_doctors2.p.16" ); s_defaultStyle[GeoDataFeature::HealthHospital] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_hospital.p.16" ); s_defaultStyle[GeoDataFeature::HealthPharmacy] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_pharmacy.p.16" ); s_defaultStyle[GeoDataFeature::MoneyBank] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "money_bank2.p.16" ); s_defaultStyle[GeoDataFeature::ShoppingBeverages] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_alcohol.p.16" ); s_defaultStyle[GeoDataFeature::ShoppingHifi] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_hifi.p.16" ); s_defaultStyle[GeoDataFeature::ShoppingSupermarket] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_supermarket.p.16" ); s_defaultStyle[GeoDataFeature::TouristAttraction] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_attraction.p.16" ); s_defaultStyle[GeoDataFeature::TouristCastle] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_castle2.p.16" ); s_defaultStyle[GeoDataFeature::TouristCinema] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_cinema.p.16" ); s_defaultStyle[GeoDataFeature::TouristMonument] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_monument.p.16" ); s_defaultStyle[GeoDataFeature::TouristMuseum] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_museum.p.16" ); s_defaultStyle[GeoDataFeature::TouristRuin] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_ruin.p.16" ); s_defaultStyle[GeoDataFeature::TouristTheatre] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_theatre.p.16" ); s_defaultStyle[GeoDataFeature::TouristThemePark] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_theme_park.p.16" ); s_defaultStyle[GeoDataFeature::TouristViewPoint] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_view_point.p.16" ); s_defaultStyle[GeoDataFeature::TouristZoo] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_zoo.p.16" ); s_defaultStyle[GeoDataFeature::TransportAerodrome] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_aerodrome.p.16" ); s_defaultStyle[GeoDataFeature::TransportAirportTerminal] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_airport_terminal.p.16" ); s_defaultStyle[GeoDataFeature::TransportBusStation] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_bus_station.p.16" ); s_defaultStyle[GeoDataFeature::TransportBusStop] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_bus_stop.p.16" ); s_defaultStyle[GeoDataFeature::TransportCarShare] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_car_share.p.16" ); s_defaultStyle[GeoDataFeature::TransportFuel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_fuel.p.16" ); s_defaultStyle[GeoDataFeature::TransportParking] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_parking.p.16", "#F6EEB6", QColor( "#F6EEB6" ).darker() ); s_defaultStyle[GeoDataFeature::TransportTrainStation] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_train_station.p.16" ); s_defaultStyle[GeoDataFeature::TransportTramStop] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_tram_stop.p.16" ); s_defaultStyle[GeoDataFeature::TransportRentalBicycle] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_rental_bicycle.p.16" ); s_defaultStyle[GeoDataFeature::TransportRentalCar] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_rental_car.p.16" ); s_defaultStyle[GeoDataFeature::TransportTaxiRank] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_taxi_rank.p.16" ); s_defaultStyle[GeoDataFeature::ReligionPlaceOfWorship] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_unknown3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionBahai] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_bahai3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionBuddhist] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_buddhist3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionChristian] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_christian3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionHindu] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_hindu3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionJain] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_jain3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionJewish] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_jewish3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionShinto] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_shinto3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionSikh] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_sikh3.p.16" ); s_defaultStyle[GeoDataFeature::HighwaySteps] = GeoDataFeaturePrivate::createStyle( 1, 5, "#F98072", "#F98072", true, true, Qt::SolidPattern, Qt::CustomDashLine, Qt::FlatCap, false, QVector< qreal >() << 0.2 << 0.2 ); s_defaultStyle[GeoDataFeature::HighwayUnknown] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#808080" ); s_defaultStyle[GeoDataFeature::HighwayPath] = GeoDataFeaturePrivate::createHighwayStyle( "highway_path", "#F98072", 1.0, 2, Qt::DashLine ); s_defaultStyle[GeoDataFeature::HighwayTrack] = GeoDataFeaturePrivate::createHighwayStyle( "highway_track", "#986600", 1.0, 3, Qt::DashLine ); s_defaultStyle[GeoDataFeature::HighwayPedestrian] = GeoDataFeaturePrivate::createHighwayStyle( "highway_footway", "#F98072", 1.0, 2, Qt::DashLine ); s_defaultStyle[GeoDataFeature::HighwayService] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#FEFEFE", 1.0, 6 ); s_defaultStyle[GeoDataFeature::HighwayRoad] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#FEFEFE", 1.5, 9 ); s_defaultStyle[GeoDataFeature::HighwayTertiary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_tertiary", "#FEFEB3", 2.0, 11 ); s_defaultStyle[GeoDataFeature::HighwaySecondary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_secondary", "#FDD6A4", 2.0, 13 ); s_defaultStyle[GeoDataFeature::HighwayPrimary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_primary", "#EB989A", 3.0, 15 ); s_defaultStyle[GeoDataFeature::HighwayTrunk] = GeoDataFeaturePrivate::createHighwayStyle( "highway_trunk", "#A9DAA9", 3.0, 18 ); s_defaultStyle[GeoDataFeature::HighwayMotorway] = GeoDataFeaturePrivate::createHighwayStyle( "highway_motorway", "#809BC0", 3.0, 20 ); s_defaultStyle[GeoDataFeature::HighwayTertiaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_tertiary", "#FEFEB3", 2.0, 9 ); s_defaultStyle[GeoDataFeature::HighwaySecondaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_secondary", "#FDD6A4", 2.0, 11 ); s_defaultStyle[GeoDataFeature::HighwayPrimaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_primary", "#EB989A", 2.0, 13 ); s_defaultStyle[GeoDataFeature::HighwayTrunkLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_trunk", "#A9DAA9", 3.0, 15 ); s_defaultStyle[GeoDataFeature::HighwayMotorwayLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_motorway", "#809BC0", 3.0, 18 ); s_defaultStyle[GeoDataFeature::NaturalWater] = GeoDataFeaturePrivate::createStyle( 2, 10, "#B5D0D0", "#B5D0D0", true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false ); s_defaultStyle[GeoDataFeature::NaturalWood] = GeoDataFeaturePrivate::createWayStyle( "#8DC46C", "#8DC46C" ); s_defaultStyle[GeoDataFeature::LeisurePark] = GeoDataFeaturePrivate::createWayStyle( "#CDF6CA", "#CDF6CA" ); s_defaultStyle[GeoDataFeature::LanduseAllotments] = GeoDataFeaturePrivate::createWayStyle( "#E4C6AA", "#E4C6AA" ); s_defaultStyle[GeoDataFeature::LanduseBasin] = GeoDataFeaturePrivate::createWayStyle( QColor(0xB5, 0xD0, 0xD0, 0x80 ), QColor( 0xB5, 0xD0, 0xD0 ) ); s_defaultStyle[GeoDataFeature::LanduseCemetery] = GeoDataFeaturePrivate::createWayStyle( "#A9C9AE", "#A9C9AE" ); s_defaultStyle[GeoDataFeature::LanduseCommercial] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseConstruction] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseFarmland] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseFarmyard] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseGarages] = GeoDataFeaturePrivate::createWayStyle( "#E0DDCD", "#E0DDCD" ); s_defaultStyle[GeoDataFeature::LanduseGrass] = GeoDataFeaturePrivate::createWayStyle( "#A8C8A5", "#A8C8A5" ); s_defaultStyle[GeoDataFeature::LanduseIndustrial] = GeoDataFeaturePrivate::createWayStyle( "#DED0D5", "#DED0D5" ); s_defaultStyle[GeoDataFeature::LanduseLandfill] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseMeadow] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseMilitary] = GeoDataFeaturePrivate::createWayStyle( "#F3D8D2", "#F3D8D2", true, true, Qt::BDiagPattern ); s_defaultStyle[GeoDataFeature::LanduseQuarry] = GeoDataFeaturePrivate::createWayStyle( "#C4C2C2", "#C4C2C2" ); s_defaultStyle[GeoDataFeature::LanduseRailway] = GeoDataFeaturePrivate::createWayStyle( "#DED0D5", "#DED0D5" ); s_defaultStyle[GeoDataFeature::LanduseReservoir] = GeoDataFeaturePrivate::createWayStyle( "#B5D0D0", "#B5D0D0" ); s_defaultStyle[GeoDataFeature::LanduseResidential] = GeoDataFeaturePrivate::createWayStyle( "#DCDCDC", "#DCDCDC" ); s_defaultStyle[GeoDataFeature::LanduseRetail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayRail] = GeoDataFeaturePrivate::createStyle( 2, 5, "#989898", "#E1E1E1", true, true, Qt::SolidPattern, Qt::DashLine, Qt::FlatCap, true ); s_defaultStyle[GeoDataFeature::RailwayTram] = GeoDataFeaturePrivate::createStyle( 1, 4, "#989898", "#989898", true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false ); s_defaultStyle[GeoDataFeature::RailwayLightRail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayAbandoned] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwaySubway] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayPreserved] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayMiniature] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayConstruction] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayMonorail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayFunicular] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::Building] = GeoDataFeaturePrivate::createStyle( 1, 0, QColor( 0xBE, 0xAD, 0xAD ), QColor( 0xBE, 0xAD, 0xAD ).darker(), true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false ); s_defaultStyle[GeoDataFeature::Satellite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/satellite.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyleInitialized = true; s_defaultFont = QFont("Sans Serif"); QFont tmp; // Fonts for areas ... tmp = s_defaultStyle[GeoDataFeature::Continent]->labelStyle().font(); tmp.setLetterSpacing( QFont::AbsoluteSpacing, 2 ); tmp.setCapitalization( QFont::SmallCaps ); tmp.setBold( true ); s_defaultStyle[GeoDataFeature::Continent]->labelStyle().setFont( tmp ); // Fonts for areas ... tmp = s_defaultStyle[GeoDataFeature::Mare]->labelStyle().font(); tmp.setLetterSpacing( QFont::AbsoluteSpacing, 2 ); tmp.setCapitalization( QFont::SmallCaps ); tmp.setBold( true ); s_defaultStyle[GeoDataFeature::Mare]->labelStyle().setFont( tmp ); // Now we need to underline the capitals ... tmp = s_defaultStyle[GeoDataFeature::SmallNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::SmallNationCapital]->labelStyle().setFont( tmp ); tmp = s_defaultStyle[GeoDataFeature::MediumNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::MediumNationCapital]->labelStyle().setFont( tmp ); tmp = s_defaultStyle[GeoDataFeature::BigNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::BigNationCapital]->labelStyle().setFont( tmp ); tmp = s_defaultStyle[GeoDataFeature::LargeNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::LargeNationCapital]->labelStyle().setFont( tmp ); }
void tst_QFont::compare() { QFont font; { QFont font2 = font; font2.setPointSize(24); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); } { QFont font2 = font; font2.setPixelSize(24); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); } font.setPointSize(12); font.setItalic(false); font.setWeight(QFont::Normal); font.setUnderline(false); font.setStrikeOut(false); font.setOverline(false); { QFont font2 = font; font2.setPointSize(24); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); } { QFont font2 = font; font2.setPixelSize(24); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); } { QFont font2 = font; font2.setItalic(true); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); font2.setItalic(false); QCOMPARE(font, font2); QVERIFY(!(font < font2)); font2.setWeight(QFont::Bold); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); font2.setWeight(QFont::Normal); QCOMPARE(font, font2); QVERIFY(!(font < font2)); font.setUnderline(true); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); font.setUnderline(false); QCOMPARE(font, font2); QVERIFY(!(font < font2)); font.setStrikeOut(true); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); font.setStrikeOut(false); QCOMPARE(font, font2); QVERIFY(!(font < font2)); font.setOverline(true); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); font.setOverline(false); QCOMPARE(font, font2); QVERIFY(!(font < font2)); font.setCapitalization(QFont::SmallCaps); QVERIFY(font != font2); QCOMPARE(font < font2,!(font2 < font)); font.setCapitalization(QFont::MixedCase); QCOMPARE(font, font2); QVERIFY(!(font < font2)); } }
void tst_QFont::serialize_data() { QTest::addColumn<QFont>("font"); // The version in which the tested feature was added. QTest::addColumn<QDataStream::Version>("minimumStreamVersion"); QFont basicFont; // Versions <= Qt 2.1 had broken point size serialization, // so we set an integer point size. basicFont.setPointSize(9); // Versions <= Qt 5.4 didn't serialize styleName, so clear it basicFont.setStyleName(QString()); QFont font = basicFont; QTest::newRow("defaultConstructed") << font << QDataStream::Qt_1_0; font.setLetterSpacing(QFont::AbsoluteSpacing, 105); QTest::newRow("letterSpacing") << font << QDataStream::Qt_4_5; font = basicFont; font.setWordSpacing(50.0); QTest::newRow("wordSpacing") << font << QDataStream::Qt_4_5; font = basicFont; font.setPointSize(20); QTest::newRow("pointSize") << font << QDataStream::Qt_1_0; font = basicFont; font.setPixelSize(32); QTest::newRow("pixelSize") << font << QDataStream::Qt_3_0; font = basicFont; font.setStyleHint(QFont::Monospace); QTest::newRow("styleHint") << font << QDataStream::Qt_1_0; font = basicFont; font.setStretch(4000); QTest::newRow("stretch") << font << QDataStream::Qt_4_3; font = basicFont; font.setWeight(99); QTest::newRow("weight") << font << QDataStream::Qt_1_0; font = basicFont; font.setUnderline(true); QTest::newRow("underline") << font << QDataStream::Qt_1_0; font = basicFont; font.setStrikeOut(true); QTest::newRow("strikeOut") << font << QDataStream::Qt_1_0; font = basicFont; font.setFixedPitch(true); // This fails for versions less than this, as ignorePitch is set to false // whenever setFixedPitch() is called, but ignorePitch is considered an // extended bit, which were apparently not available until 4.4. QTest::newRow("fixedPitch") << font << QDataStream::Qt_4_4; font = basicFont; font.setLetterSpacing(QFont::AbsoluteSpacing, 10); // Fails for 4.4 because letterSpacing wasn't read until 4.5. QTest::newRow("letterSpacing") << font << QDataStream::Qt_4_5; font = basicFont; font.setKerning(false); QTest::newRow("kerning") << font << QDataStream::Qt_4_0; font = basicFont; font.setStyleStrategy(QFont::NoFontMerging); // This wasn't read properly until 5.4. QTest::newRow("styleStrategy") << font << QDataStream::Qt_5_4; font = basicFont; font.setHintingPreference(QFont::PreferFullHinting); // This wasn't read until 5.4. QTest::newRow("hintingPreference") << font << QDataStream::Qt_5_4; font = basicFont; font.setStyleName("Regular Black Condensed"); // This wasn't read until 5.4. QTest::newRow("styleName") << font << QDataStream::Qt_5_4; font = basicFont; font.setCapitalization(QFont::AllUppercase); // This wasn't read until 5.6. QTest::newRow("capitalization") << font << QDataStream::Qt_5_6; }
bool AMDatamanAppControllerForActions2::startupCreateUserInterface() { AMErrorMon::information(this, AMDATAMANAPPCONTROLLER_STARTUP_MESSAGES, "Acquaman Startup: Populating User Interface"); qApp->processEvents(); settingsMasterView_ = 0; issueSubmissionView_ = 0; bottomBar_ = new AMBottomBar(); // These buttons are never used. Hiding them. bottomBar_->fullScreenButton->hide(); bottomBar_->adjustScanFinishButton->hide(); bottomBar_->restartScanButton->hide(); mw_->addBottomWidget(bottomBar_); connect(bottomBar_, SIGNAL(addButtonClicked()), this, SLOT(onAddButtonClicked())); connect(bottomBar_, SIGNAL(pauseScanIssued()), this, SIGNAL(pauseScanIssued())); connect(bottomBar_, SIGNAL(resumeScanIssued()), this, SIGNAL(resumeScanIssued())); connect(bottomBar_, SIGNAL(stopScanIssued()), this, SIGNAL(stopScanIssued())); // Create panes in the main window: //////////////////////////////////// // A heading for the scan editors scanEditorsParentItem_ = mw_->windowPaneModel()->headingItem("Open Scans"); // Make a dataview widget and add it under two links/headings: "Runs" and "Experiments". See AMMainWindowModel for more information. //////////////////////////////////// dataView_ = new AMDataViewWithActionButtons(); dataView_->setWindowTitle("Data"); QStandardItem* dataViewItem = new QStandardItem(); dataViewItem->setData(qVariantFromValue((QWidget*)dataView_), AM::WidgetRole); dataViewItem->setFlags(Qt::ItemIsEnabled); // enabled, but should not be selectable QFont font = QFont("Lucida Grande", 10, QFont::Bold); font.setCapitalization(QFont::AllUppercase); dataViewItem->setFont(font); dataViewItem->setData(QBrush(QColor::fromRgb(100, 109, 125)), Qt::ForegroundRole); dataViewItem->setData(true, AMWindowPaneModel::DockStateRole); mw_->windowPaneModel()->appendRow(dataViewItem); runsParentItem_ = new QStandardItem(QIcon(":/22x22/view_calendar_upcoming_days.png"), "Runs"); mw_->windowPaneModel()->initAliasItem(runsParentItem_, dataViewItem, "Runs", -1); dataViewItem->appendRow(runsParentItem_); experimentsParentItem_ = new QStandardItem(QIcon(":/applications-science.png"), "Experiments"); mw_->windowPaneModel()->initAliasItem(experimentsParentItem_, dataViewItem, "Experiments", -1); dataViewItem->appendRow(experimentsParentItem_); // Hook into the sidebar and add Run and Experiment links below these headings. runExperimentInsert_ = new AMRunExperimentInsert(AMDatabase::database("user"), runsParentItem_, experimentsParentItem_, this); connect(runExperimentInsert_, SIGNAL(newExperimentAdded(QModelIndex)), this, SLOT(onNewExperimentAdded(QModelIndex))); // connect the activated signal from the dataview to our own slot connect(dataView_, SIGNAL(selectionActivated(QList<QUrl>)), this, SLOT(onDataViewItemsActivated(QList<QUrl>))); connect(dataView_, SIGNAL(selectionActivatedSeparateWindows(QList<QUrl>)), this, SLOT(onDataViewItemsActivatedSeparateWindows(QList<QUrl>))); connect(dataView_, SIGNAL(selectionExported(QList<QUrl>)), this, SLOT(onDataViewItemsExported(QList<QUrl>))); connect(dataView_, SIGNAL(launchScanConfigurationsFromDb(QList<QUrl>)), this, SLOT(onLaunchScanConfigurationsFromDb(QList<QUrl>))); connect(dataView_, SIGNAL(fixCDF(QUrl)), this, SLOT(fixCDF(QUrl))); // When 'alias' links are clicked in the main window sidebar, we might need to notify some widgets of the details connect(mw_, SIGNAL(aliasItemActivated(QWidget*,QString,QVariant)), this, SLOT(onMainWindowAliasItemActivated(QWidget*,QString,QVariant))); ///////////////////////// // Make connections: ////////////////////////////// connect(mw_, SIGNAL(currentPaneChanged(QWidget*)), this, SLOT(onCurrentPaneChanged(QWidget*))); // show main window mw_->show(); return true; }
void VisualMatrix::initSprite() { _sprite = new QGraphicsWidget(); QGraphicsItem* item; QGraphicsWidget* widget; QGraphicsRectItem* rect; QGraphicsColorizeEffect* effect; QGraphicsSimpleTextItem* text; QGraphicsProxyWidget* proxy; QLabel* label; QFont font; // Frame { item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_FRAME_BG)); item->setParentItem(_sprite); item->setPos(0.0f, 0.0f); } // Frame { item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_FRAME_MG)); item->setParentItem(_sprite); item->setPos(0.0f, 0.0f); } // Avatar { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 10, BLOCK_LARGE * 20); widget->setFlags(QGraphicsItem::ItemClipsChildrenToShape); widget->setParentItem(_sprite); widget->setPos(170.0f, 50.0f); item = new QGraphicsPixmapItem(); item->setParentItem(widget); item->setPos(((BLOCK_LARGE * 10) - (320.0f / 0.75f)) * 0.5f, (BLOCK_LARGE * 20) - 320.0f); _avatar = widget; } // Help { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 10, BLOCK_LARGE * 20); widget->setFlags(QGraphicsItem::ItemClipsChildrenToShape); widget->setParentItem(_sprite); widget->setPos(170.0f, 50.0f); rect = new QGraphicsRectItem(0.0f, 0.0f, BLOCK_LARGE * 10, BLOCK_LARGE * 20); rect->setBrush(QBrush(QColor::fromRgb(0x00, 0x00, 0x00, 0xC0))); rect->setParentItem(widget); font = QApplication::font(); font.setFamily("Arial"); font.setPixelSize(16); font.setWeight(QFont::Bold); font.setStretch(80); text = new QGraphicsSimpleTextItem(tr("Slide left and right: Move.")); text->setBrush(QColor::fromRgb(0xC0, 0xC0, 0xC0)); text->setFont(font); text->setParentItem(widget); text->setPos(((BLOCK_LARGE * 10) - text->boundingRect().width()) * 0.5f, 217.0f - 6.0f); text = new QGraphicsSimpleTextItem(tr("Swipe up: Hold. Swipe down: Drop.")); text->setBrush(QColor::fromRgb(0xC0, 0xC0, 0xC0)); text->setFont(font); text->setParentItem(widget); text->setPos(((BLOCK_LARGE * 10) - text->boundingRect().width()) * 0.5f, 237.0f - 6.0f); text = new QGraphicsSimpleTextItem(tr("Pull back, and make circles: Rotate.")); text->setBrush(QColor::fromRgb(0xC0, 0xC0, 0xC0)); text->setFont(font); text->setParentItem(widget); text->setPos(((BLOCK_LARGE * 10) - text->boundingRect().width()) * 0.5f, 257.0f - 6.0f); // widget->setVisible(false); _sprite_help = widget; } // Lines { rect = new QGraphicsRectItem(120.0f - 1.0f, 220.0f - 1.0f, 8.0f + 2.0f, 144.0f + 2.0f); rect->setBrush(QBrush(LoaderThread::instance()->getCachedPixmap(IMAGE_LINES_PROGRESS))); rect->setParentItem(_sprite); _sprite_lines = rect; } // Frame { item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_FRAME_FG)); item->setParentItem(_sprite); item->setPos(0.0f, 0.0f); } // Field { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 10, BLOCK_LARGE * 20); widget->setFlags(QGraphicsItem::ItemClipsChildrenToShape); widget->setParentItem(_sprite); widget->setPos(170.0f, 50.0f); _sprite_field = widget; _sprite_space.fill(NULL, _rows * _cols); } // Ghost { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 4, BLOCK_LARGE * 4); widget->setParentItem(_sprite_field); widget->setPos(BLOCK_LARGE * getShapePositionInField(18, 3)); for (int i = 0; i < 4; ++i) { item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_BLOCK_GHOST)); item->setParentItem(widget); } _sprite_ghost = widget; } // Tetromino { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 4, BLOCK_LARGE * 4); widget->setParentItem(_sprite_field); widget->setPos(BLOCK_LARGE * getShapePositionInField(18, 3)); widget->setZValue(1.0f); effect = new QGraphicsColorizeEffect(widget); effect->setColor(QColor::fromRgb(0xFF, 0xFF, 0xFF)); effect->setStrength(0.0f); widget->setGraphicsEffect(effect); for (int i = 0; i < 4; ++i) { item = new QGraphicsPixmapItem(); item->setParentItem(widget); } _sprite_tetromino = widget; } // Hold { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 4, BLOCK_LARGE * 2); widget->setScale(BLOCK_SMALL / BLOCK_LARGE); widget->setParentItem(_sprite); widget->setPos(56.0f, 108.0f + BLOCK_SMALL); effect = new QGraphicsColorizeEffect(widget); effect->setColor(QColor::fromRgb(0xFF, 0xFF, 0xFF)); effect->setStrength(0.0f); widget->setGraphicsEffect(effect); for (int i = 0; i < 4; ++i) { item = new QGraphicsPixmapItem(); item->setParentItem(widget); } _sprite_hold = widget; } // Hold fail { item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_FAIL)); item->setScale(BLOCK_SMALL / BLOCK_LARGE); item->setParentItem(_sprite); item->setPos(56.0f + (BLOCK_SMALL * 3), 108.0f + (BLOCK_SMALL * 3)); item->setVisible(false); _sprite_holdFail = item; } // Next { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 4, BLOCK_LARGE * 2); widget->setScale(BLOCK_SMALL / BLOCK_LARGE); widget->setParentItem(_sprite); widget->setPos(460.0f, 108.0f + BLOCK_SMALL); effect = new QGraphicsColorizeEffect(widget); effect->setColor(QColor::fromRgb(0xFF, 0xFF, 0xFF)); effect->setStrength(0.0f); widget->setGraphicsEffect(effect); for (int i = 0; i < 4; ++i) { item = new QGraphicsPixmapItem(); item->setParentItem(widget); } _sprite_next << widget; } // Next { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 4, BLOCK_LARGE * 2); widget->setScale(BLOCK_SMALL / BLOCK_LARGE); widget->setParentItem(_sprite); widget->setPos(460.0f, 228.0f + BLOCK_SMALL); effect = new QGraphicsColorizeEffect(widget); effect->setColor(QColor::fromRgb(0xFF, 0xFF, 0xFF)); effect->setStrength(0.0f); widget->setGraphicsEffect(effect); for (int i = 0; i < 4; ++i) { item = new QGraphicsPixmapItem(); item->setParentItem(widget); } _sprite_next << widget; } // Next { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 4, BLOCK_LARGE * 2); widget->setScale(BLOCK_SMALL / BLOCK_LARGE); widget->setParentItem(_sprite); widget->setPos(460.0f, 292.0f + BLOCK_SMALL); effect = new QGraphicsColorizeEffect(widget); effect->setColor(QColor::fromRgb(0xFF, 0xFF, 0xFF)); effect->setStrength(0.0f); widget->setGraphicsEffect(effect); for (int i = 0; i < 4; ++i) { item = new QGraphicsPixmapItem(); item->setParentItem(widget); } _sprite_next << widget; } // Font { font = QApplication::font(); font.setCapitalization(QFont::AllUppercase); } // Hold { text = new QGraphicsSimpleTextItem(tr("Hold")); text->setBrush(QColor::fromRgb(0x00, 0x00, 0x00)); text->setFont(font); text->setParentItem(_sprite); text->setPos(56.0f, 80.0f - 6.0f); } // Next { text = new QGraphicsSimpleTextItem(tr("Next")); text->setBrush(QColor::fromRgb(0x00, 0x00, 0x00)); text->setFont(font); text->setParentItem(_sprite); text->setPos(526.0f - text->boundingRect().width(), 80.0f - 6.0f); } // Level { text = new QGraphicsSimpleTextItem(tr("Level")); text->setBrush(QColor::fromRgb(0x00, 0x00, 0x00)); text->setFont(font); text->setParentItem(_sprite); text->setPos(56.0f, 316.0f - 6.0f); } // Level { label = new QLabel(); label->resize(48, 24); label->setStyleSheet("background-color: transparent; color: #FFFFFF;"); label->setAlignment(Qt::AlignTop | Qt::AlignLeft); proxy = new QGraphicsProxyWidget(); proxy->setParentItem(_sprite); proxy->setWidget(label); proxy->setPos(56.0f, 344.0f - 6.0f); _sprite_level = label; } // Score { text = new QGraphicsSimpleTextItem(tr("Score")); text->setBrush(QColor::fromRgb(0x00, 0x00, 0x00)); text->setFont(font); text->setParentItem(_sprite); text->setPos(176.0f, 564.0f - 6.0f); } // Score { label = new QLabel(); label->resize(148, 24); label->setStyleSheet("background-color: transparent; color: #FFFFFF;"); label->setAlignment(Qt::AlignTop | Qt::AlignRight); proxy = new QGraphicsProxyWidget(); proxy->setParentItem(_sprite); proxy->setWidget(label); proxy->setPos(256.0f, 564.0f - 6.0f); _sprite_score = label; } // Countdown { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 10, BLOCK_LARGE * 20); widget->setFlags(QGraphicsItem::ItemClipsChildrenToShape); widget->setParentItem(_sprite); widget->setPos(170.0f, 50.0f); rect = new QGraphicsRectItem(0.0f, 0.0f, BLOCK_LARGE * 10, BLOCK_LARGE * 20); rect->setBrush(QBrush(QColor::fromRgb(0x00, 0x00, 0x00, 0xC0))); rect->setParentItem(widget); item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_COUNT[0])); item->setParentItem(widget); item->setPos(77.0f, 197.0f); item->setVisible(false); _sprite_count << item; item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_COUNT[1])); item->setParentItem(widget); item->setPos(77.0f, 197.0f); item->setVisible(false); _sprite_count << item; item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_COUNT[2])); item->setParentItem(widget); item->setPos(77.0f, 197.0f); item->setVisible(false); _sprite_count << item; widget->setVisible(false); _sprite_countdown = widget; } // Game over { widget = new QGraphicsWidget(); widget->resize(BLOCK_LARGE * 10, BLOCK_LARGE * 20); widget->setFlags(QGraphicsItem::ItemClipsChildrenToShape); widget->setParentItem(_sprite); widget->setPos(170.0f, 50.0f); widget->setZValue(8.0f); rect = new QGraphicsRectItem(0.0f, 0.0f, BLOCK_LARGE * 10, BLOCK_LARGE * 20); rect->setBrush(QBrush(QColor::fromRgb(0x00, 0x00, 0x00, 0xC0))); rect->setParentItem(widget); item = new QGraphicsPixmapItem(LoaderThread::instance()->getCachedPixmap(IMAGE_OVER)); item->setParentItem(widget); item->setPos(4.0f, 172.0f); rect = new QGraphicsRectItem(0.0f, 0.0f, BLOCK_LARGE * 10, BLOCK_LARGE * 20); rect->setBrush(QBrush(QColor::fromRgb(0xFF, 0xFF, 0xFF))); rect->setParentItem(widget); _sprite_overFlash = rect; widget->setVisible(false); _sprite_over = widget; } }
void QFontProto::setCapitalization(int caps) { QFont *item = qscriptvalue_cast<QFont*>(thisObject()); if (item) item->setCapitalization((QFont::Capitalization)caps); }
ScriptFormatter::ScriptFormatter( QQmlEngine* newEngine, QObject *parent ) : QObject(parent) { QFont baseFont; //The base from which all other fonts are derived baseFont.setBold( false ); baseFont.setCapitalization( QFont::MixedCase ); baseFont.setFamily( "Courier" ); baseFont.setItalic( false ); baseFont.setPointSize( 12 ); baseFont.setStyleHint( QFont::Courier ); QTextBlockFormat baseFormat; baseFormat.setAlignment( Qt::AlignLeft ); baseFormat.setIndent( 0 ); baseFormat.setLineHeight( 1, QTextBlockFormat::SingleHeight ); //The first argument should be ignored according to the documentation, since we're setting the LineHeightType (2nd argument) to single height baseFormat.setNonBreakableLines( false ); //baseFormat.setPageBreakPolicy( QTextFormat::PageBreak_Auto ); baseFormat.setTextIndent( 0 ); baseFormat.setTopMargin( 0 ); baseFormat.setBottomMargin( 0 ); baseFormat.setLeftMargin( 0 ); baseFormat.setRightMargin( 0 ); baseFormat.setNonBreakableLines( false ); //Scenes are left-aligned, bold, and all caps sceneFont = QFont( baseFont ); sceneFont.setBold( true ); sceneFont.setCapitalization( QFont::AllUppercase ); sceneBlockFormat = QTextBlockFormat( baseFormat ); sceneBlockFormat.setAlignment( Qt::AlignLeft ); //sceneBlockFormat.setPageBreakPolicy( QTextFormat::PageBreak_AlwaysBefore ); //Actions are left-aligned actionFont = QFont( baseFont ); actionBlockFormat = QTextBlockFormat( baseFormat ); actionBlockFormat.setAlignment( Qt::AlignLeft ); //Character names are centered and all caps characterFont = QFont( baseFont ); characterFont.setCapitalization( QFont::AllUppercase ); characterBlockFormat = QTextBlockFormat( baseFormat ); characterBlockFormat.setAlignment( Qt::AlignHCenter ); //characterBlockFormat.setPageBreakPolicy( QTextFormat::PageBreak_AlwaysBefore ); //Dialog is centered dialogFont = QFont( baseFont ); dialogBlockFormat = QTextBlockFormat( baseFormat ); dialogBlockFormat.setAlignment( Qt::AlignHCenter ); //dialogBlockFormat.setPageBreakPolicy( QTextFormat::PageBreak_AlwaysAfter ); //Parentheticals are centered and italicized parentheticalFont = QFont( baseFont ); parentheticalFont.setItalic( true ); parentheticalBlockFormat = QTextBlockFormat( baseFormat ); parentheticalBlockFormat.setAlignment( Qt::AlignHCenter ); //Transitions are right-aligned and all caps transitionFont = QFont( baseFont ); transitionFont.setCapitalization( QFont::AllUppercase ); transitionBlockFormat = QTextBlockFormat( baseFormat ); transitionBlockFormat.setAlignment( Qt::AlignRight ); //Shots are left-aligned and all caps shotFont = QFont( baseFont ); shotFont.setCapitalization( QFont::AllUppercase ); shotBlockFormat = QTextBlockFormat( baseFormat ); shotBlockFormat.setAlignment( Qt::AlignLeft ); //Act breaks are centered, bold, and underlined actBreakFont = QFont( baseFont ); actBreakFont.setBold( true ); actBreakFont.setUnderline( true ); actBreakBlockFormat = QTextBlockFormat( baseFormat ); actBreakBlockFormat.setAlignment( Qt::AlignHCenter ); }
static QFont fontFromObject(QQmlV4Handle object, QV4::ExecutionEngine *v4, bool *ok) { if (ok) *ok = false; QFont retn; QV4::Scope scope(v4); QV4::ScopedObject obj(scope, object); if (!obj) { if (ok) *ok = false; return retn; } QV4::ScopedString s(scope); QV4::ScopedValue vbold(scope, obj->get((s = v4->newString(QStringLiteral("bold"))))); QV4::ScopedValue vcap(scope, obj->get((s = v4->newString(QStringLiteral("capitalization"))))); QV4::ScopedValue vfam(scope, obj->get((s = v4->newString(QStringLiteral("family"))))); QV4::ScopedValue vstyle(scope, obj->get((s = v4->newString(QStringLiteral("styleName"))))); QV4::ScopedValue vital(scope, obj->get((s = v4->newString(QStringLiteral("italic"))))); QV4::ScopedValue vlspac(scope, obj->get((s = v4->newString(QStringLiteral("letterSpacing"))))); QV4::ScopedValue vpixsz(scope, obj->get((s = v4->newString(QStringLiteral("pixelSize"))))); QV4::ScopedValue vpntsz(scope, obj->get((s = v4->newString(QStringLiteral("pointSize"))))); QV4::ScopedValue vstrk(scope, obj->get((s = v4->newString(QStringLiteral("strikeout"))))); QV4::ScopedValue vundl(scope, obj->get((s = v4->newString(QStringLiteral("underline"))))); QV4::ScopedValue vweight(scope, obj->get((s = v4->newString(QStringLiteral("weight"))))); QV4::ScopedValue vwspac(scope, obj->get((s = v4->newString(QStringLiteral("wordSpacing"))))); QV4::ScopedValue vhint(scope, obj->get((s = v4->newString(QStringLiteral("hintingPreference"))))); QV4::ScopedValue vkerning(scope, obj->get((s = v4->newString(QStringLiteral("kerning"))))); QV4::ScopedValue vshaping(scope, obj->get((s = v4->newString(QStringLiteral("preferShaping"))))); // pull out the values, set ok to true if at least one valid field is given. if (vbold->isBoolean()) { retn.setBold(vbold->booleanValue()); if (ok) *ok = true; } if (vcap->isInt32()) { retn.setCapitalization(static_cast<QFont::Capitalization>(vcap->integerValue())); if (ok) *ok = true; } if (vfam->isString()) { retn.setFamily(vfam->toQString()); if (ok) *ok = true; } if (vstyle->isString()) { retn.setStyleName(vstyle->toQString()); if (ok) *ok = true; } if (vital->isBoolean()) { retn.setItalic(vital->booleanValue()); if (ok) *ok = true; } if (vlspac->isNumber()) { retn.setLetterSpacing(QFont::AbsoluteSpacing, vlspac->asDouble()); if (ok) *ok = true; } if (vpixsz->isInt32()) { retn.setPixelSize(vpixsz->integerValue()); if (ok) *ok = true; } if (vpntsz->isNumber()) { retn.setPointSize(vpntsz->asDouble()); if (ok) *ok = true; } if (vstrk->isBoolean()) { retn.setStrikeOut(vstrk->booleanValue()); if (ok) *ok = true; } if (vundl->isBoolean()) { retn.setUnderline(vundl->booleanValue()); if (ok) *ok = true; } if (vweight->isInt32()) { retn.setWeight(static_cast<QFont::Weight>(vweight->integerValue())); if (ok) *ok = true; } if (vwspac->isNumber()) { retn.setWordSpacing(vwspac->asDouble()); if (ok) *ok = true; } if (vhint->isInt32()) { retn.setHintingPreference(static_cast<QFont::HintingPreference>(vhint->integerValue())); if (ok) *ok = true; } if (vkerning->isBoolean()) { retn.setKerning(vkerning->booleanValue()); if (ok) *ok = true; } if (vshaping->isBoolean()) { bool enable = vshaping->booleanValue(); if (enable) retn.setStyleStrategy(static_cast<QFont::StyleStrategy>(retn.styleStrategy() & ~QFont::PreferNoShaping)); else retn.setStyleStrategy(static_cast<QFont::StyleStrategy>(retn.styleStrategy() | QFont::PreferNoShaping)); } return retn; }
void Export::export_pdf(int columns) { // 1200 dpi -> 200 dpi ~ 12pt font; // dims: 9583 x 13699 int twelve_point = 200; int total_width = 9583; int total_height = 13699; int remaining_height = total_height; int puzzle_width = columns > 15 ? 6000 : 5000; int puzzle_height = puzzle_width; int clues_three_cols_width = total_width - puzzle_width; int clues_col_width_w_gap = clues_three_cols_width / 3; int col_gap = 225; // empirically determined int clues_col_width = clues_col_width_w_gap - col_gap; int col_num = 1; //metadata QString title = qvariant_cast<QString>(m_metadata.takeAt(0)); QString date = qvariant_cast<QString>(m_metadata.takeAt(0)); QString author = qvariant_cast<QString>(m_metadata.takeAt(0)); QString author_date = author + " " + date; QRect title_rect(0, 0, total_width, (twelve_point * 2)); remaining_height -= (twelve_point * 2); QPoint info_top_left(0, (title_rect.bottom() + 100)); QSize author_date_size((total_width - puzzle_width), twelve_point); QRect author_date_rect(info_top_left, author_date_size); remaining_height -= (twelve_point + 100); //clues QPoint clues_col_top_left(0, (author_date_rect.bottom() + 300)); remaining_height -= 300; QSize clues_col_size(clues_col_width, remaining_height); QRect whole_clues_col(clues_col_top_left, clues_col_size); QRect eaten_clues_col = whole_clues_col; //puzzles QImage puzzle = qvariant_cast<QImage>(m_images.takeAt(0)); QImage puz_ans = qvariant_cast<QImage>(m_images.takeAt(0)); QSize puz_size(puzzle_width, puzzle_height); QPoint puz_top_left((total_width - puzzle_width), title_rect.bottom()); QRect puz_rect(puz_top_left, puz_size); QRect ans_rect(0, 0, (puzzle_width / 2), (puzzle_height / 2)); //filepath QString base_path = QDir::homePath(); QString file_name = title == "" ? "/untitled.pdf" : "/" + title + ".pdf"; // PAINTING // QPdfWriter pdf(base_path + file_name); QPainter painter; // getting info on available space in the appropriate units (used for the seemingly random // numbers for the constants at the start of the function). // QPageLayout layout = pdf.pageLayout(); // int resolution = pdf.resolution(); // QRect printable_rect = layout.paintRectPixels(resolution); painter.begin(&pdf); // make the title QFont font = painter.font(); font.setPixelSize(twelve_point * 2); font.setCapitalization(QFont::SmallCaps); painter.setFont(font); painter.drawText(title_rect, title); // make author and date font.setPixelSize(twelve_point / 2); font.setCapitalization(QFont::MixedCase); font.setItalic(true); painter.setFont(font); painter.drawText(author_date_rect, author_date); // across header font.setPixelSize(150); font.setBold(true); font.setItalic(false); painter.setFont(font); QString across_header = qvariant_cast<QString>(m_acrosses.takeAt(0)); QRect space_needed = painter.boundingRect(eaten_clues_col, Qt::TextWordWrap, across_header); draw_clue(painter, eaten_clues_col, across_header, space_needed, Qt::AlignHCenter); eaten_clues_col.setTop(eaten_clues_col.top() + 100); //ref: Export::paint_clues // across clues font.setBold(false); painter.setFont(font); paint_clues(painter, eaten_clues_col, m_acrosses, col_num, whole_clues_col, col_gap, puz_rect); // down header QVariantList down_header; down_header.append(m_downs.takeAt(0)); // is there a better way? font.setBold(true); painter.setFont(font); paint_clues(painter, eaten_clues_col, down_header, col_num, whole_clues_col, col_gap, puz_rect, Qt::AlignHCenter); // down clues font.setBold(false); painter.setFont(font); paint_clues(painter, eaten_clues_col, m_downs, col_num, whole_clues_col, col_gap, puz_rect); // images painter.drawImage(puz_rect, puzzle); pdf.newPage(); painter.drawImage(ans_rect, puz_ans); painter.end(); emit export_completed(file_name); }
Collection::Collection() : _current_library(0), _stdout(stdout) { actionGroup = new QActionGroup(this); statusBar(); QWidget::setWindowTitle( "Qt Papers" ); QMenu* fileMenu = new QMenu("&File", this); libraryOpen = addChoice("libraryOpen", "Open Library"); libraryOpen->setStatusTip("Open a library"); libraryOpen->setEnabled(true); libraryOpen->setIcon(QIcon(":/images/libopen.png")); connect(libraryOpen, SIGNAL(triggered()), this, SLOT(open_library())); fileMenu->addAction(libraryOpen); libraryNew = addChoice("libraryNew", "New Library"); libraryNew->setStatusTip("Create a new library"); libraryNew->setEnabled(true); libraryNew->setIcon(QIcon(":/images/document2.png")); connect(libraryNew, SIGNAL(triggered()), this, SLOT(new_library())); fileMenu->addAction(libraryNew); librarySave = addChoice("librarySave", "Save Library"); librarySave->setStatusTip("Save the library"); librarySave->setEnabled(true); librarySave->setIcon(QIcon(":/images/save.png")); connect(librarySave, SIGNAL(triggered()), this, SLOT(save_library())); fileMenu->addAction(librarySave); libraryDelete = addChoice("libraryDelete", "Delete Library"); libraryDelete->setStatusTip("Delete library"); libraryDelete->setEnabled(true); libraryDelete->setIcon(QIcon(":/images/libremove.png")); connect(libraryDelete, SIGNAL(triggered()), this, SLOT(delete_library())); fileMenu->addAction(libraryDelete); libraryImport = addChoice("libraryImport", "Import Library"); libraryImport->setStatusTip("Import library"); libraryImport->setEnabled(true); libraryImport->setIcon(QIcon(":/images/import.png")); connect(libraryImport, SIGNAL(triggered()), this, SLOT(scan_directory_and_import_papers())); fileMenu->addAction(libraryImport); preferences = addChoice("preferences", "Preferences"); preferences->setStatusTip("Preferences"); preferences->setEnabled(true); preferences->setIcon(QIcon(":/images/pref.png")); connect(preferences, SIGNAL(triggered()), this, SLOT(modify_preferences())); fileMenu->addAction(preferences); exit = addChoice("exit", "Exit"); exit->setStatusTip("Exit"); exit->setEnabled(true); exit->setIcon(QIcon(":/images/exit.png")); connect(exit, SIGNAL(triggered()), qApp, SLOT(closeAllWindows())); fileMenu->addAction(exit); QMenu* paperMenu = new QMenu("&Paper", this); paperImport = addChoice("paperImport", "Import Paper"); paperImport->setStatusTip("Import a paper"); paperImport->setEnabled(false); paperImport->setIcon(QIcon(":/images/import.png")); paperScanDirectory = addChoice("paperScanDirectory", "Paper Scan"); paperScanDirectory->setIcon(QIcon(":/images/scan.png")); paperScanDirectory->setStatusTip("Scan for papers."); paperScanDirectory->setEnabled(true); talkImport = addChoice("talkImport", "Import Talk"); talkImport->setStatusTip("Import a talk"); talkImport->setEnabled(false); paperNew = addChoice("paperNew", "New Paper"); paperNew->setStatusTip("New paper"); paperNew->setEnabled(true); paperNew->setIcon(QIcon(":/images/new.png")); paperDelete = addChoice("paperDelete", "Delete Paper"); paperDelete->setStatusTip("Delete paper"); paperDelete->setIcon(QIcon(":/images/remove.png")); paperDelete->setEnabled(false); paperEdit = addChoice("paperEdit", "Edit Paper"); paperEdit->setStatusTip("Edit paper"); paperEdit->setEnabled(false); paperEdit->setIcon(QIcon(":/images/edit.png")); paperOpen = addChoice("paperOpen", "Open Paper"); paperOpen->setStatusTip("Open paper"); paperOpen->setEnabled(false); paperOpen->setIcon(QIcon(":/images/open.png")); talkNew = addChoice("talkNew", "New Talk"); talkNew->setStatusTip("New talk"); talkNew->setEnabled(false); connect(paperNew, SIGNAL(triggered()), this, SLOT(new_paper())); connect(paperEdit, SIGNAL(triggered()), this, SLOT(edit_paper())); connect(paperDelete, SIGNAL(triggered()), this, SLOT(delete_paper())); connect(paperOpen, SIGNAL(triggered()), this, SLOT(open_paper())); connect(paperImport, SIGNAL(triggered()), this, SLOT(import_paper())); // need to implement this paperMenu->addAction(paperNew); paperMenu->addAction(paperImport); paperMenu->addAction(paperEdit); paperMenu->addAction(paperDelete); paperMenu->addAction(paperOpen); paperMenu->addAction(paperScanDirectory); paperMenu->addAction(talkNew); paperMenu->addAction(talkImport); QMenu* helpMenu = new QMenu("&Help", this); showAbout = addChoice("showAbout","About"); showAbout->setStatusTip("About"); showAbout->setEnabled(true); showAbout->setIcon(QIcon(":/images/about.png")); connect(showAbout, SIGNAL(triggered()), this, SLOT(about())); helpMenu->addAction(showAbout); //Add a menu bar menuBar()->addMenu(fileMenu); menuBar()->addMenu(paperMenu); menuBar()->addMenu(helpMenu); //button to trigger find box paperFind = new QAction("Find Paper",this); paperFind->setStatusTip("Find paper"); paperFind->setEnabled(true); paperFind->setIcon(QIcon(":/images/find.png")); connect(paperFind, SIGNAL(triggered()), this, SLOT(find_paper())); //add a tool bar QPushButton * find_clear = new QPushButton(); find_clear->setStatusTip("Find paper"); find_clear->setEnabled(true); find_clear->setIcon(QIcon(":/images/clear.png")); connect(find_clear, SIGNAL(clicked()), this, SLOT(reset_find())); QLabel * find = new QLabel(); find->setText("Find: "); find->setLayoutDirection(Qt::LeftToRight); QLabel * in = new QLabel(); in->setText(" in "); _find_edit = new QLineEdit; _find_edit->setFixedSize(_find_edit->sizeHint()); _find_edit->setLayoutDirection(Qt::LeftToRight); connect(_find_edit, SIGNAL(returnPressed()), this, SLOT(find_paper())); _find_type = new QComboBox(); QStringList find_names; find_names << "Author" << "Title" << "Abstract" << "Any"; _find_type->insertItems(0,find_names); _find_type->setLayoutDirection(Qt::LeftToRight); find->setBuddy(_find_edit); paperToolBar = addToolBar(tr("Paper")); paperToolBar->setLayoutDirection(Qt::RightToLeft); paperToolBar->addAction(paperFind); paperToolBar->addWidget(_find_type); paperToolBar->addWidget(in); paperToolBar->addWidget(find_clear); paperToolBar->addWidget(_find_edit); paperToolBar->addWidget(find); paperToolBar->addAction(paperDelete); paperToolBar->addAction(paperEdit); paperToolBar->addAction(paperNew); paperToolBar->addAction(paperOpen); paperToolBar->addAction(paperImport); paperToolBar->addAction(paperScanDirectory); _rss_box = new RssWidget; connect(_rss_box, SIGNAL(urlChanged(const QUrl& )), this, SLOT(check_url(const QUrl& ))); QAction * rssForward = new QAction("rssForward",this); rssForward->setStatusTip("Forward"); rssForward->setEnabled(true); rssForward->setIcon(QIcon(":/images/forward.png")); connect(rssForward, SIGNAL(triggered()), _rss_box, SLOT(forward())); paperToolBar->addAction(rssForward); QAction * rssBack = new QAction("rssBack",this); rssBack->setStatusTip("Back"); rssBack->setEnabled(true); rssBack->setIcon(QIcon(":/images/back.png")); connect(rssBack, SIGNAL(triggered()), _rss_box, SLOT(back())); paperToolBar->addAction(rssBack); //Set up a central widget that will have a layout in it _library_list = new LibraryList(this,this); QFont font; font.setBold(true); font.setCapitalization(QFont::SmallCaps); _library_list->setFont(font); connect(_library_list, SIGNAL(itemClicked( QListWidgetItem *)), this, SLOT(select_library(QListWidgetItem *))); _abstract_box = new QTextBrowser(); _abstract_box->setAlignment(Qt::AlignJustify); _abstract_box->setFontWeight(QFont::DemiBold); _abstract_box->setPlainText("No Paper Selected"); _paper_list = new PaperList(this,this); QStringList sl; // The following seems like a non-intuitive operator // overload but that is how they do it... sl << "Author" << "Title" << "Date"; _paper_list->setColumnCount(3); _paper_list->setHorizontalHeaderLabels(sl); _paper_list->setAlternatingRowColors(true); _paper_list->horizontalHeader()->setStretchLastSection(true); _paper_list->verticalHeader()->hide(); // _paper_list->setSortingEnabled(true); //need to make the paper_list its own class for drag and drop // _paper_list->setAcceptDrops(true); connect(_paper_list, SIGNAL(cellClicked(int , int )), this, SLOT(select_paper(int, int))); // update_paper_list(); _top_layout = new QSplitter(); _top_layout->addWidget(_library_list); _top_layout->addWidget(_paper_list); _top_layout->setStretchFactor(0,1); _top_layout->setStretchFactor(1,3); _top_layout->setContentsMargins(0,0,5,0); _top_layout->setOrientation(Qt::Horizontal); _bot_layout = new QSplitter(); _bot_layout->addWidget(_abstract_box); _bot_layout->addWidget(_rss_box); _bot_layout->setContentsMargins(0,0,0,0); _bot_layout->setStretchFactor(0,1); _bot_layout->setStretchFactor(1,3); _bot_layout->setOrientation(Qt::Horizontal); _total_layout = new QSplitter(); _total_layout->addWidget(_top_layout); _total_layout->addWidget(_bot_layout); _total_layout->setStretchFactor(0,1); _total_layout->setStretchFactor(1,3); _total_layout->setOrientation(Qt::Vertical); //this splitter window is my central widget setCentralWidget(_total_layout); QPalette palette; palette.setColor(QPalette::Background,Qt::white); centralWidget()->setPalette(palette); centralWidget()->setAutoFillBackground(true); centralWidget()->setWindowOpacity(0.8); centralWidget()->setMinimumSize(300, 200); setMinimumSize(700, 500); readSettings(); }