def interval_previous_month(): date = QDate.currentDate() end = QDateTime(date.addDays(-date.day() + 1)) begin = QDateTime(end.date().addDays(-end.date().addDays(-1).daysInMonth())) return {'start_time': begin.toTime_t(), 'end_time': end.toTime_t() }
def setChartCanvas(self, chart, canvas): self.chart = chart self.canvas = canvas slc = chart.standardSlice self.startTime = chart.sensorgroup.stop - slc dt = QDateTime() dt.setTime_t(self.startTime) self.StartInput.setDateTime(dt) mindt = QDateTime() mindt.setTime_t(chart.sensorgroup.start) self.StartInput.setMinimumDate(mindt.date()) # try to guess unit*factor from slice uF = unitFactors[:] uF.reverse() for f in uF: if not slc % f: self.LengthUnitInput.setCurrentIndex(unitFactors.index(f)) self.LengthInput.setValue(slc / f) self.setTimeslice(slc) break else: self.LengthInput.setValue(1) self.LengthUnitInput.setCurrentIndex(3) self.setTimeslice(unitFactors[3]) self.blockUpdates = False self.updateChart()
def setTimeslice(self, ts): if not ts == self.chart.timeslice: maxdt = QDateTime() maxdt.setTime_t(self.chart.sensorgroup.stop-ts) self.StartInput.setMaximumDate(maxdt.date()) self.chart.setTimeslice(ts) self.updateChart()
def setvalue(self, value): strvalue = value if value in [None, "", NULL]: value = DateWidget.DEFAULTDATE self._is_valid = value.isValid() elif isinstance(value, basestring): value = QDateTime.fromString(strvalue, Qt.ISODate) if not value or (value and value.date().year() < 0): value = QDateTime.fromString(strvalue, Qt.SystemLocaleShortDate) self._is_valid = value.isValid() if not self._is_valid: raise ValueError("Unable to parse date string {}".format(strvalue)) if isinstance(value, QDate): value = QDateTime(value) self._is_valid = value.isValid() if hasattr(self.datewidget, 'setDate'): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, 'setTime'): self.datewidget.setTime(value.time()) self.set_date(value)
def filter_score(self, index): """ Returns the number of filters matching the given index. :param index: The index of the item that will be checked against the filters. """ column = index.column() field_name = self.git_model.get_columns()[column] filters = self._filters if field_name in TIME_FIELDS: filters = self._filters timestamp, tz = self.git_model.data(index) _q_datetime = QDateTime() _q_datetime.setTime_t(timestamp) item_date = _q_datetime.date() item_weekday = item_date.dayOfWeek() item_time = _q_datetime.time() date_time_filters = ("afterWeekday", "beforeWeekday", "beforeDate", "afterDate", "beforeHour", "afterHour") has_date_time_filter = False for model_filter in filters: if model_filter in date_time_filters: has_date_time_filter = True if not has_date_time_filter: return 0 else: return self.date_match(item_date) + \ self.weekday_match(item_weekday) + \ self.time_match(item_time) elif field_name in ACTOR_FIELDS: if "nameEmail" in filters: regexp = filters["nameEmail"] value = self.git_model.data(index) if regexp.isValid() and regexp.indexIn(value) != -1: return 1 elif field_name in TEXT_FIELDS: if "message" in filters: regexp = filters["message"] commit_message = self.git_model.data(index) if regexp.isValid() and regexp.indexIn(commit_message) != -1: return 1 elif field_name == "hexsha": if "localOnly" in filters: commits = self.git_model.get_commits() commit = commits[index.row()] if not self.git_model.is_commit_pushed(commit): return 1 return 0
def setvalue(self, value): if value is None: value = DateWidget.DEFAULTDATE elif isinstance(value, basestring): value = QDateTime.fromString(value, Qt.ISODate) if isinstance(value, QDate): value = QDateTime(value) if hasattr(self.datewidget, 'setDate'): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, 'setTime'): self.datewidget.setTime(value.time())
def setvalue(self, value): if value is None: value = DateWidget.DEFAULTDATE elif isinstance(value, basestring): value = QDateTime.fromString(value, Qt.ISODate) if isinstance(value, QDate): value = QDateTime(value) if hasattr(self.datewidget, "setDate"): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, "setTime"): self.datewidget.setTime(value.time())
def __init__(self, parent, sg): QDialog.__init__(self, parent) self.setupUi(self) self.setWindowTitle(str(QCoreApplication.translate("DataStorageBrowser", "Data export from %s")) % sg.path) self.sensorgroup = sg self.connect(self, SIGNAL("accepted()"), self.exportData) self.connect(self.fileNameButton, SIGNAL("clicked()"), self.changeFileName) self.fileName = os.path.join(SimuVis4.Globals.defaultFolder, sg.name + ".csv") while os.path.exists(self.fileName): self.fileName = self.fileName[:-4] + "_X.csv" self.fileNameInput.setText(self.fileName) self.fileType = "CSV" self.sensorList.setSelectionMode(QAbstractItemView.MultiSelection) for i, s in enumerate(sg.keys()): self.sensorList.addItem(s) self.sensorList.item(i).setSelected(True) self.connect(self.sensorList, SIGNAL("itemSelectionChanged()"), self.showInfo) self.connect(self.startInput, SIGNAL("dateTimeChanged(QDateTime)"), self.startTimeChanged) self.connect(self.stopInput, SIGNAL("dateTimeChanged(QDateTime)"), self.stopTimeChanged) self.startTime = sg.start self.stopTime = sg.stop mindt = QDateTime() mindt.setTimeSpec(Qt.UTC) mindt.setTime_t(self.startTime) maxdt = QDateTime() mindt.setTimeSpec(Qt.UTC) maxdt.setTime_t(self.stopTime) self.startInput.setMinimumDate(mindt.date()) self.startInput.setMaximumDate(maxdt.date()) self.stopInput.setMinimumDate(mindt.date()) self.stopInput.setMaximumDate(maxdt.date()) self.startInput.setDateTime(mindt) self.stopInput.setDateTime(maxdt)
def setvalue(self, value): strvalue = value if value is None: value = DateWidget.DEFAULTDATE elif isinstance(value, basestring): value = QDateTime.fromString(strvalue, Qt.ISODate) if not value or (value and value.date().year() < 0): value = QDateTime.fromString(strvalue, Qt.SystemLocaleShortDate) if isinstance(value, QDate): value = QDateTime(value) if hasattr(self.datewidget, 'setDate'): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, 'setTime'): self.datewidget.setTime(value.time()) self.set_date(value)
def addRichTypes(self, l): """set the list of richtypes""" for q in l: i = len(self.richTypes) self.richTypes.append(q) l = QLabel(self) self.qlabels.append(l) l.setText(q.name) l.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) l.setToolTip(q.descr) self.gridLayout.addWidget(l, i, 0, 1, 1) cls = q.__class__ if cls == Text: w = QLineEdit(self) w.setMinimumSize(300, 30) if q.maxLen: w.setMaxLength(q.maxLen) w.setText(q.v) elif cls == MLText: w = QTextEdit(self) w.setAcceptRichText(False) w.setMinimumSize(300, 60) w.setText(q.v) elif cls == Choice: w = QComboBox(self) c = [unicode(x) for x in q.choices] c.sort() w.addItems(c) idx = w.findText(unicode(q.v)) if idx >= 0: w.setCurrentIndex(idx) elif cls == MultiChoice: w = QListWidget(self) w.setSelectionMode(QAbstractItemView.MultiSelection) w.setMinimumSize(100, 60) c = [unicode(x) for x in q.choices] c.sort() v = [unicode(x) for x in q.v] for ii, s in enumerate(c): w.addItem(s) if s in v: w.item(ii).setSelected(True) elif cls == Bool: w = QCheckBox(self) if q.v: w.setCheckState(Qt.Checked) else: w.setCheckState(Qt.Unchecked) elif cls == Integer: w = QSpinBox(self) if q.min is not None: w.setMinimum(q.min) if q.max is not None: w.setMaximum(q.max) if q.step is not None: w.setSingleStep(q.step or 0.01) if q.unit: w.setSuffix(' '+q.unit) w.setValue(q.v) elif cls == Float: w = QDoubleSpinBox(self) if q.min is not None: w.setMinimum(q.min) if q.max is not None: w.setMaximum(q.max) w.setSingleStep(q.step or 0.01) if q.unit: w.setSuffix(' '+q.unit) w.setValue(q.v) elif cls == DateTime: w = QDateTimeEdit(self) w.setCalendarPopup(True) dt = QDateTime() dt.setTime_t(q.v) w.setDateTime(dt) if q.min is not None: mindt = QDateTime() mindt.setTime_t(q.min) w.setMinimumDate(mindt.date()) if q.max is not None: maxdt = QDateTime() maxdt.setTime_t(q.max) w.setMaximumDate(maxdt.date()) l.setBuddy(w) w.setToolTip(q.descr) w.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) w.adjustSize() self.gridLayout.addWidget(w, i, 1, 1, 1) self.qwidgets.append(w) self.adjustSize()