void CalendarTemplateElement::toParametersMap( util::ParametersMap& map, bool withAdditionalParameters, boost::logic::tribool withFiles /*= boost::logic::indeterminate*/, std::string prefix /*= std::string() */ ) const { map.insert(TABLE_COL_ID, getKey()); map.insert( CalendarTemplateElementTableSync::COL_CALENDAR_ID, getCalendar() ? getCalendar()->getKey() : RegistryKeyType(0) ); map.insert( CalendarTemplateElementTableSync::COL_RANK, getRank() ); map.insert( CalendarTemplateElementTableSync::COL_MIN_DATE, getMinDate().is_special() ? string() : to_iso_extended_string(getMinDate()) ); map.insert( CalendarTemplateElementTableSync::COL_MAX_DATE, getMaxDate().is_special() ? string() : to_iso_extended_string(getMaxDate()) ); map.insert( CalendarTemplateElementTableSync::COL_INTERVAL, boost::lexical_cast<std::string>(static_cast<int>(getStep().days())) ); map.insert( CalendarTemplateElementTableSync::COL_POSITIVE, static_cast<int>(getOperation()) ); map.insert( CalendarTemplateElementTableSync::COL_INCLUDE_ID, getInclude() ? getInclude()->getKey() : RegistryKeyType(0) ); }
/************************************************ Issue #18: Panel clock plugin changes your size ************************************************/ void RazorClock::updateMinWidth() { QFontMetrics metrics(gui->font()); QDate maxDate = getMaxDate(metrics, dateFormat); QTime maxTime = getMaxTime(metrics, timeFormat); QDateTime dt(maxDate, maxTime); //qDebug() << "T:" << metrics.boundingRect(dt.toString(timeFormat)).width(); //qDebug() << "C:" << metrics.boundingRect(QTime::currentTime().toString(timeFormat)).width() << QTime::currentTime().toString(timeFormat); //qDebug() << "D:" << metrics.boundingRect(dt.toString(dateFormat)).width(); int width; if (dateOnNewLine && showDate) width = qMax(metrics.boundingRect(dt.toString(timeFormat)).width(), metrics.boundingRect(dt.toString(dateFormat)).width() ); else width = metrics.boundingRect(dt.toString(clockFormat)).width(); qDebug() << "RazorClock Recalc width " << width << dt.toString(clockFormat); // gui->setMinimumWidth(width + 5); this->setMinimumWidth(width + 5); // gui->setMaximumWidth(width + 5); // this->setMaximumWidth(width + 5); }
void LLInventoryFilter::toLLSD(LLSD& data) const { data["filter_types"] = (LLSD::Integer)getFilterObjectTypes(); data["min_date"] = (LLSD::Integer)getMinDate(); data["max_date"] = (LLSD::Integer)getMaxDate(); data["hours_ago"] = (LLSD::Integer)getHoursAgo(); data["show_folder_state"] = (LLSD::Integer)getShowFolderState(); data["permissions"] = (LLSD::Integer)getFilterPermissions(); data["substring"] = (LLSD::String)getFilterSubString(); data["sort_order"] = (LLSD::Integer)getSortOrder(); data["since_logoff"] = (LLSD::Boolean)isSinceLogoff(); }
void LLInventoryFilter::toParams(Params& params) const { params.filter_ops.types = getFilterObjectTypes(); params.filter_ops.category_types = getFilterCategoryTypes(); if (getFilterObjectTypes() & FILTERTYPE_WEARABLE) { params.filter_ops.wearable_types = getFilterWearableTypes(); } params.filter_ops.date_range.min_date = getMinDate(); params.filter_ops.date_range.max_date = getMaxDate(); params.filter_ops.hours_ago = getHoursAgo(); params.filter_ops.date_search_direction = getDateSearchDirection(); params.filter_ops.show_folder_state = getShowFolderState(); params.filter_ops.permissions = getFilterPermissions(); params.substring = getFilterSubString(); params.since_logoff = isSinceLogoff(); }
/************************************************ Issue #18: Panel clock plugin changes your size ************************************************/ void LxQtClock::updateMinWidth() { QFontMetrics timeLabelMetrics(mTimeLabel->font()); QFontMetrics dateLabelMetrics(mDateLabel->font()); QDate maxDate = getMaxDate(mDateOnNewLine ? dateLabelMetrics : timeLabelMetrics, mDateFormat); QTime maxTime = getMaxTime(timeLabelMetrics, mTimeFormat); QDateTime dt(maxDate, maxTime); //qDebug() << "T:" << metrics.boundingRect(dt.toString(mTimeFormat)).width(); //qDebug() << "C:" << metrics.boundingRect(QTime::currentTime().toString(mTimeFormat)).width() << QTime::currentTime().toString(mTimeFormat); //qDebug() << "D:" << metrics.boundingRect(dt.toString(mDateFormat)).width(); int width; int height; if (mDateOnNewLine) { QRect rect1(timeLabelMetrics.boundingRect(dt.toString(mTimeFormat))); mTimeLabel->setMinimumSize(rect1.size()); QRect rect2(dateLabelMetrics.boundingRect(dt.toString(mDateFormat))); mDateLabel->setMinimumSize(rect2.size()); width = qMax(rect1.width(), rect2.width()); height = rect1.height() + rect2.height(); // qDebug() << "LxQtClock Recalc size" << width << height << dt.toString(mTimeFormat) << dt.toString(mDateFormat); } else { QRect rect(timeLabelMetrics.boundingRect(dt.toString(mClockFormat))); mTimeLabel->setMinimumSize(rect.size()); mDateLabel->setMinimumSize(0, 0); width = rect.width(); height = rect.height(); // qDebug() << "LxQtClock Recalc size" << width << height << dt.toString(mClockFormat); } mContent->setMinimumSize(width, height); }
int Database::getBars (Bars *bd) { if (! bd) return 0; int length = bd->barLength(); if (length == -1) { qDebug() << "Database::getBars: invalid length"; return 0; } if (! getSymbol(bd)) return 0; if (! init()) return 0; // get last date in db QDateTime endDate = getMaxDate(bd); if (! endDate.isValid()) return 0; DateRange dr; //Don't bother to load less the all values into memory //All computers are bound to be able handle this in year 2012 //If ever porting to a mobile device, change at that point //bd->plotRange() QDateTime startDate = dr.interval(endDate, DateRange::_ALL); if (! startDate.isValid()) { qDebug() << "Database::getBars: invalid range"; return 0; } QSqlQuery q(_db); QString s = "SELECT date,open,high,low,close,volume"; s.append(" FROM " + bd->table()); s.append(" WHERE date >=" + startDate.toString("yyyyMMddHHmmss")); s.append(" AND date <=" + endDate.toString("yyyyMMddHHmmss")); s.append(" ORDER BY date ASC"); q.exec(s); if (q.lastError().isValid()) { qDebug() << "Database::getBars:" + q.lastError().text(); qDebug() << s; return 0; } BarType bt; BarLength bl; QDateTime isDate, ieDate; CBar *bar = 0; while (q.next()) { QDateTime lastDate = QDateTime::fromString(q.value(0).toString(), "yyyyMMddHHmmss"); // is date greater than current bar range? if (lastDate >= ieDate || ! bar) { // save old bar if (bar) bd->setBar(bd->bars(), bar); // create new bar bl.interval(lastDate, bd->barLength(), isDate, ieDate); bar = new CBar; bar->setDate(lastDate); bar->set(bt.indexToString(BarType::_OPEN), q.value(1).toDouble()); bar->set(bt.indexToString(BarType::_HIGH), q.value(2).toDouble()); bar->set(bt.indexToString(BarType::_LOW), q.value(3).toDouble()); bar->set(bt.indexToString(BarType::_CLOSE), q.value(4).toDouble()); bar->set(bt.indexToString(BarType::_VOLUME), q.value(5).toDouble()); } else { double v = q.value(2).toDouble(); double v2; bar->get(bt.indexToString(BarType::_HIGH), v2); if (v > v2) bar->set(bt.indexToString(BarType::_HIGH), v); v = q.value(3).toDouble(); bar->get(bt.indexToString(BarType::_LOW), v2); if (v < v2) bar->set(bt.indexToString(BarType::_LOW), v); bar->set(bt.indexToString(BarType::_CLOSE), q.value(4).toDouble()); v = q.value(5).toDouble(); bar->get(bt.indexToString(BarType::_VOLUME), v2); v += v2; bar->set(bt.indexToString(BarType::_VOLUME), v); } } // save any left over bar if (bar) bd->setBar(bd->bars(), bar); return 1; }
bool CalendarTemplateElement::loadFromRecord( const Record& record, util::Env& env ) { bool result(false); if(record.isDefined(TABLE_COL_ID)) { RegistryKeyType value(record.getDefault<RegistryKeyType>(TABLE_COL_ID, 0)); if(value != getKey()) { result = true; setKey(value); } } // Rank if(record.isDefined(CalendarTemplateElementTableSync::COL_RANK)) { size_t value( record.getDefault<size_t>(CalendarTemplateElementTableSync::COL_RANK, 0) ); if(value != getRank()) { result = true; setRank(value); } } // Min date if(record.isDefined(CalendarTemplateElementTableSync::COL_MIN_DATE)) { date value(neg_infin); if(!record.get<string>(CalendarTemplateElementTableSync::COL_MIN_DATE).empty()) { try { value = from_string(record.get<string>(CalendarTemplateElementTableSync::COL_MIN_DATE)); } catch(...) { } } if(value != getMinDate()) { result = true; setMinDate(value); } } // Max date if(record.isDefined(CalendarTemplateElementTableSync::COL_MAX_DATE)) { date value(pos_infin); if(!record.get<string>(CalendarTemplateElementTableSync::COL_MAX_DATE).empty()) { try { value = from_string(record.get<string>(CalendarTemplateElementTableSync::COL_MAX_DATE)); } catch(...) { } } if(value != getMaxDate()) { result = true; setMaxDate(value); } } // Days modulo if(record.isDefined(CalendarTemplateElementTableSync::COL_INTERVAL)) { days value( record.getDefault<long>(CalendarTemplateElementTableSync::COL_INTERVAL, 0) ); if(value != getStep()) { result = true; setStep(value); } } // Operation if(record.isDefined(CalendarTemplateElementTableSync::COL_POSITIVE)) { Operation value( static_cast<Operation>( record.getDefault<int>(CalendarTemplateElementTableSync::COL_POSITIVE, 0) ) ); if(value != getOperation()) { result = true; setOperation(value); } } // Included calendar // if(linkLevel > FIELDS_ONLY_LOAD_LEVEL) { if(record.isDefined(CalendarTemplateElementTableSync::COL_INCLUDE_ID)) { CalendarTemplate* value(NULL); RegistryKeyType iid( record.getDefault<RegistryKeyType>( CalendarTemplateElementTableSync::COL_INCLUDE_ID, 0 ) ); if(iid > 0) try { value = CalendarTemplateTableSync::GetEditable(iid, env).get(); } catch (ObjectNotFoundException<CalendarTemplate> e) { Log::GetInstance().warn("Data corrupted in " + CalendarTemplateElementTableSync::TABLE.NAME + "/" + CalendarTemplateElementTableSync::COL_INCLUDE_ID, e); } if(value != getInclude()) { result = true; setInclude(value); } } } // Link with calendar template // if(linkLevel == UP_LINKS_LOAD_LEVEL || linkLevel == UP_DOWN_LINKS_LOAD_LEVEL || linkLevel == ALGORITHMS_OPTIMIZATION_LOAD_LEVEL) { if(record.isDefined(CalendarTemplateElementTableSync::COL_CALENDAR_ID)) { CalendarTemplate* value(NULL); RegistryKeyType id( record.getDefault<RegistryKeyType>( CalendarTemplateElementTableSync::COL_CALENDAR_ID, 0 ) ); if(id > 0) try { value = CalendarTemplateTableSync::GetEditable(id, env).get(); } catch (ObjectNotFoundException<CalendarTemplate> e) { Log::GetInstance().warn("Data corrupted in " + CalendarTemplateElementTableSync::TABLE.NAME + "/" + CalendarTemplateElementTableSync::COL_CALENDAR_ID, e); } if(value != getCalendar()) { result = true; setCalendar(value); } } } return result; }
int DBStock::getBars (PluginData *pd) { if (! init()) return 0; if (! pd->bars) return 0; Bars *bd = pd->bars; // get last date in db QDateTime endDate = getMaxDate(bd); if (! endDate.isValid()) return 0; DateRange dr; QDateTime startDate = dr.interval(endDate, bd->range()); if (! startDate.isValid()) { qDebug() << "DBStock::getBars: invalid range"; return 0; } QSqlQuery q(_db); QString s = "SELECT date,open,high,low,close,volume"; s.append(" FROM " + bd->table()); s.append(" WHERE date >=" + startDate.toString("yyyyMMddHHmmss")); s.append(" AND date <=" + endDate.toString("yyyyMMddHHmmss")); s.append(" ORDER BY date ASC"); q.exec(s); if (q.lastError().isValid()) { qDebug() << "DBStock::getBars:" + q.lastError().text(); qDebug() << s; return 0; } BarType bt; BarLength bl; QDateTime isDate, ieDate; CBar *bar = 0; while (q.next()) { QDateTime lastDate = QDateTime::fromString(q.value(0).toString(), "yyyyMMddHHmmss"); // is date greater than current bar range? if (lastDate >= ieDate || ! bar) { // save old bar if (bar) bd->setBar(bd->bars(), bar); // create new bar bl.interval(lastDate, bd->length(), isDate, ieDate); bar = new CBar; bar->setDate(lastDate); bar->set(bt.indexToString(BarType::_OPEN), q.value(1).toDouble()); bar->set(bt.indexToString(BarType::_HIGH), q.value(2).toDouble()); bar->set(bt.indexToString(BarType::_LOW), q.value(3).toDouble()); bar->set(bt.indexToString(BarType::_CLOSE), q.value(4).toDouble()); bar->set(bt.indexToString(BarType::_VOLUME), q.value(5).toDouble()); } else { double v = q.value(2).toDouble(); double v2; bar->get(bt.indexToString(BarType::_HIGH), v2); if (v > v2) bar->set(bt.indexToString(BarType::_HIGH), v); v = q.value(3).toDouble(); bar->get(bt.indexToString(BarType::_LOW), v2); if (v < v2) bar->set(bt.indexToString(BarType::_LOW), v); bar->set(bt.indexToString(BarType::_CLOSE), q.value(4).toDouble()); v = q.value(5).toDouble(); bar->get(bt.indexToString(BarType::_VOLUME), v2); v += v2; bar->set(bt.indexToString(BarType::_VOLUME), v); } } // save any left over bar if (bar) bd->setBar(bd->bars(), bar); return 1; }