mirror of https://gitlab.com/pamhyr/pamhyr2
BC: Add date custom editor.
parent
41e39c7fe5
commit
3b9d0b175e
|
|
@ -10,12 +10,12 @@ from View.ListedSubWindow import ListedSubWindow
|
||||||
from PyQt5.QtCore import (
|
from PyQt5.QtCore import (
|
||||||
Qt, QVariant, QAbstractTableModel,
|
Qt, QVariant, QAbstractTableModel,
|
||||||
QCoreApplication, QModelIndex, pyqtSlot,
|
QCoreApplication, QModelIndex, pyqtSlot,
|
||||||
QRect, QTime,
|
QRect, QTime, QDateTime,
|
||||||
)
|
)
|
||||||
|
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
QTableView, QAbstractItemView, QSpinBox,
|
QTableView, QAbstractItemView, QSpinBox,
|
||||||
QTimeEdit, QItemDelegate,
|
QTimeEdit, QDateTimeEdit, QItemDelegate,
|
||||||
)
|
)
|
||||||
|
|
||||||
from Model.BoundaryCondition.BoundaryConditionTypes import (
|
from Model.BoundaryCondition.BoundaryConditionTypes import (
|
||||||
|
|
@ -73,6 +73,26 @@ class ExtendedTimeEdit(AWidget):
|
||||||
|
|
||||||
return timedelta(days=days, seconds=secs)
|
return timedelta(days=days, seconds=secs)
|
||||||
|
|
||||||
|
class ExtendedDateTimeEdit(AWidget):
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super(ExtendedDateTimeEdit, self).__init__(
|
||||||
|
ui="extendedDateTimeEdit",
|
||||||
|
parent=parent
|
||||||
|
)
|
||||||
|
self.parent = parent
|
||||||
|
|
||||||
|
self.dateTimeEdit = self.find(QDateTimeEdit, "dateTimeEdit")
|
||||||
|
|
||||||
|
def set_time(self, time):
|
||||||
|
qdatetime = QDateTime.fromString(
|
||||||
|
time,
|
||||||
|
"yyyy-MM-dd hh:mm:ss"
|
||||||
|
)
|
||||||
|
self.dateTimeEdit.setDateTime(qdatetime)
|
||||||
|
|
||||||
|
def get_time(self):
|
||||||
|
time = self.dateTimeEdit.dateTime().toPyDateTime()
|
||||||
|
return time
|
||||||
|
|
||||||
class ExTimeDelegate(QItemDelegate):
|
class ExTimeDelegate(QItemDelegate):
|
||||||
def __init__(self, data=None, mode="time", parent=None):
|
def __init__(self, data=None, mode="time", parent=None):
|
||||||
|
|
@ -82,18 +102,22 @@ class ExTimeDelegate(QItemDelegate):
|
||||||
self._mode = mode
|
self._mode = mode
|
||||||
|
|
||||||
def createEditor(self, parent, option, index):
|
def createEditor(self, parent, option, index):
|
||||||
|
if self._mode == "time":
|
||||||
self.editor = ExtendedTimeEdit(parent=parent)
|
self.editor = ExtendedTimeEdit(parent=parent)
|
||||||
|
else:
|
||||||
|
self.editor = ExtendedDateTimeEdit(parent=parent)
|
||||||
value = index.data(Qt.DisplayRole)
|
value = index.data(Qt.DisplayRole)
|
||||||
self.editor.set_time(value)
|
self.editor.set_time(value)
|
||||||
|
print(value)
|
||||||
return self.editor
|
return self.editor
|
||||||
|
|
||||||
def setEditorData(self, editor, index):
|
|
||||||
value = index.data(Qt.DisplayRole)
|
|
||||||
self.editor.currentTextChanged.connect(self.currentItemChanged)
|
|
||||||
|
|
||||||
def setModelData(self, editor, model, index):
|
def setModelData(self, editor, model, index):
|
||||||
time = editor.get_time()
|
time = editor.get_time()
|
||||||
|
if self._mode == "time":
|
||||||
model.setData(index, int(time.total_seconds()))
|
model.setData(index, int(time.total_seconds()))
|
||||||
|
else:
|
||||||
|
print(time.timestamp())
|
||||||
|
model.setData(index, int(time.timestamp()))
|
||||||
editor.close()
|
editor.close()
|
||||||
editor.deleteLater()
|
editor.deleteLater()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue