Example #1
0
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()
Example #4
0
    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)
Example #5
0
    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
Example #6
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())
Example #7
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 __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)
Example #9
0
    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)
Example #10
0
    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)
Example #11
0
 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()