// --------------------------------------------------------------------------- // XMLRangeFactory: Range creation methods // --------------------------------------------------------------------------- void XMLRangeFactory::buildRanges(RangeTokenMap *rangeTokMap) { if (fRangesCreated) return; if (!fKeywordsInitialized) { initializeKeywordMap(rangeTokMap); } TokenFactory* tokFactory = rangeTokMap->getTokenFactory(); // Create space ranges unsigned int wsTblLen = getTableLen(gWhitespaceChars); RangeToken* tok = tokFactory->createRange(); XMLInt32* wsRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate ( wsTblLen * sizeof(XMLInt32) );//new XMLInt32[wsTblLen]; tok->setRangeValues(wsRange, wsTblLen); setupRange(wsRange, gWhitespaceChars, 0); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLSpace, tok); tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLSpace, tok , true); // Create digits ranges tok = tokFactory->createRange(); unsigned int digitTblLen = getTableLen(gDigitChars); XMLInt32* digitRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate ( digitTblLen * sizeof(XMLInt32) );//new XMLInt32[digitTblLen]; tok->setRangeValues(digitRange, digitTblLen); setupRange(digitRange, gDigitChars, 0); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLDigit, tok); tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLDigit, tok , true); // Build word ranges unsigned int baseTblLen = getTableLen(gBaseChars); unsigned int ideoTblLen = getTableLen(gIdeographicChars); unsigned int wordRangeLen = baseTblLen + ideoTblLen + digitTblLen; XMLInt32* wordRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate ( wordRangeLen * sizeof(XMLInt32) );//new XMLInt32[wordRangeLen]; ArrayJanitor<XMLInt32> janWordRange(wordRange, XMLPlatformUtils::fgMemoryManager); setupRange(wordRange, gBaseChars, 0); setupRange(wordRange, gIdeographicChars, baseTblLen); memcpy(wordRange + baseTblLen + ideoTblLen, digitRange, digitTblLen * sizeof(XMLInt32)); // Create NameChar ranges tok = tokFactory->createRange(); unsigned int combTblLen = getTableLen(gCombiningChars); unsigned int extTblLen = getTableLen(gExtenderChars); unsigned int nameTblLen = wordRangeLen + combTblLen + extTblLen; XMLInt32* nameRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate ( (nameTblLen + 8) * sizeof(XMLInt32) );//new XMLInt32[nameTblLen + 8]; tok->setRangeValues(nameRange, nameTblLen + 8); memcpy(nameRange, wordRange, wordRangeLen * sizeof(XMLInt32)); setupRange(nameRange, gCombiningChars, wordRangeLen); setupRange(nameRange, gExtenderChars, wordRangeLen + combTblLen); nameRange[nameTblLen++] = chDash; nameRange[nameTblLen++] = chDash; nameRange[nameTblLen++] = chColon; nameRange[nameTblLen++] = chColon; nameRange[nameTblLen++] = chPeriod; nameRange[nameTblLen++] = chPeriod; nameRange[nameTblLen++] = chUnderscore; nameRange[nameTblLen++] = chUnderscore; tok->sortRanges(); tok->compactRanges(); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLNameChar, tok); tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLNameChar, tok , true); // Create initialNameChar ranges tok = tokFactory->createRange(); unsigned int initialNameTblLen = baseTblLen + ideoTblLen; XMLInt32* initialNameRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate ( (initialNameTblLen + 4) * sizeof(XMLInt32) );//new XMLInt32[initialNameTblLen + 4]; tok->setRangeValues(initialNameRange, initialNameTblLen + 4); memcpy(initialNameRange, wordRange, initialNameTblLen * sizeof(XMLInt32)); initialNameRange[initialNameTblLen++] = chColon; initialNameRange[initialNameTblLen++] = chColon; initialNameRange[initialNameTblLen++] = chUnderscore; initialNameRange[initialNameTblLen++] = chUnderscore; tok->sortRanges(); tok->compactRanges(); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLInitialNameChar, tok); tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLInitialNameChar, tok , true); // Create word range tok = tokFactory->createRange(); tok->setRangeValues(wordRange, wordRangeLen); janWordRange.orphan(); tok->sortRanges(); tok->compactRanges(); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLWord, tok); tok = (RangeToken*) RangeToken::complementRanges(tok, tokFactory); // Build the internal map. tok->createMap(); rangeTokMap->setRangeToken(fgXMLWord, tok , true); fRangesCreated = true; }
PlotItemDialog::PlotItemDialog(PlotItem *item, QWidget *parent) : ViewItemDialog(item, parent), _plotItem(item), _defaultTagString("<Auto Name>") { Q_ASSERT(_plotItem); _store = kstApp->mainWindow()->document()->objectStore(); setWindowTitle(tr("Edit Plot Item")); _contentTab = new ContentTab(this, _store); connect(_contentTab, SIGNAL(apply()), this, SLOT(contentChanged())); DialogPage *contentsPage = new DialogPage(this); contentsPage->setPageTitle(tr("Contents")); contentsPage->addDialogTab(_contentTab); addDialogPage(contentsPage, true); _labelTab = new LabelTab(_plotItem, this); _topLabelTab = new OverrideLabelTab(tr("Top Font"), this); _bottomLabelTab = new OverrideLabelTab(tr("Bottom Font"), this); _leftLabelTab = new OverrideLabelTab(tr("Left Font"), this); _rightLabelTab = new OverrideLabelTab(tr("Right Font"), this); _axisLabelTab = new OverrideLabelTab(tr("Axis Font"), this); _labelPage = new DialogPageTab(this); _labelPage->setPageTitle(tr("Labels")); _labelPage->addDialogTab(_labelTab); _labelPage->addDialogTab(_topLabelTab); _labelPage->addDialogTab(_bottomLabelTab); _labelPage->addDialogTab(_leftLabelTab); _labelPage->addDialogTab(_rightLabelTab); _labelPage->addDialogTab(_axisLabelTab); addDialogPage(_labelPage, true); connect(_labelTab, SIGNAL(apply()), this, SLOT(labelsChanged())); connect(_labelTab, SIGNAL(globalFontUpdate()), this, SLOT(globalFontUpdate())); connect(_topLabelTab, SIGNAL(useDefaultChanged(bool)), this, SLOT(useTopDefaultChanged(bool))); connect(_bottomLabelTab, SIGNAL(useDefaultChanged(bool)), this, SLOT(useBottomDefaultChanged(bool))); connect(_leftLabelTab, SIGNAL(useDefaultChanged(bool)), this, SLOT(useLeftDefaultChanged(bool))); connect(_rightLabelTab, SIGNAL(useDefaultChanged(bool)), this, SLOT(useRightDefaultChanged(bool))); connect(_axisLabelTab, SIGNAL(useDefaultChanged(bool)), this, SLOT(useAxisDefaultChanged(bool))); _rangeTab = new RangeTab(_plotItem, this); DialogPage *rangePage = new DialogPage(this); rangePage->setPageTitle(tr("Range/Zoom")); rangePage->addDialogTab(_rangeTab); addDialogPage(rangePage, true); connect(_rangeTab, SIGNAL(apply()), this, SLOT(rangeChanged())); _xAxisTab = new AxisTab(this); _xAxisPage = new DialogPage(this); _xAxisPage->setPageTitle(tr("X-Axis")); _xAxisPage->addDialogTab(_xAxisTab); addDialogPage(_xAxisPage, true); connect(_xAxisTab, SIGNAL(apply()), this, SLOT(xAxisChanged())); _yAxisTab = new AxisTab(this); _yAxisTab->setAsYAxis(); _yAxisPage = new DialogPage(this); _yAxisPage->setPageTitle(tr("Y-Axis")); _yAxisPage->addDialogTab(_yAxisTab); addDialogPage(_yAxisPage, true); connect(_yAxisTab, SIGNAL(apply()), this, SLOT(yAxisChanged())); _xMarkersTab = new MarkersTab(this); DialogPage *xMarkersPage = new DialogPage(this); xMarkersPage->setPageTitle(tr("X-Axis Markers")); xMarkersPage->addDialogTab(_xMarkersTab); addDialogPage(xMarkersPage, true); _xMarkersTab->setObjectStore(_store); connect(_xMarkersTab, SIGNAL(apply()), this, SLOT(xAxisPlotMarkersChanged())); _yMarkersTab = new MarkersTab(this); DialogPage *yMarkersPage = new DialogPage(this); yMarkersPage->setPageTitle(tr("Y-Axis Markers")); yMarkersPage->addDialogTab(_yMarkersTab); addDialogPage(yMarkersPage, true); _yMarkersTab->setObjectStore(_store); connect(yMarkersPage, SIGNAL(apply()), this, SLOT(yAxisPlotMarkersChanged())); // addRelations(); This tends to clutter the plot dialog, let's test skipping it setupContent(); setupAxis(); setupRange(); setupLabels(); setupMarkers(); setSupportsMultipleEdit(true); if (_plotItem->descriptiveNameIsManual()) { setTagString(_plotItem->descriptiveName()); } else { setTagString(_defaultTagString); } QList<PlotItem*> list = ViewItem::getItems<PlotItem>(); clearMultipleEditOptions(); foreach(PlotItem* plot, list) { addMultipleEditOption(plot->plotName(), plot->descriptionTip(), plot->shortName()); }
void BoschBMA250::begin() { Wire.begin(); // Init I2C Transmission setupBandwidth(BMA250_UPDATE_TIME); // Setup the bandwidth setupRange(BMA250_RANGE); // Setup the range measurement }