mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-10-01 17:56:46 +13:00
53 lines
No EOL
1.7 KiB
Python
53 lines
No EOL
1.7 KiB
Python
#!/usr/bin/env python
|
|
# --!-- coding: utf8 --!--
|
|
|
|
from manuskript.enums import FlatData, Model
|
|
from manuskript.searchLabels import FlatDataSearchLabels
|
|
|
|
from manuskript.models.searchableModel import searchableModel
|
|
from manuskript.models.searchableItem import searchableItem
|
|
|
|
"""
|
|
All searches are performed on models inheriting from searchableModel, but special metadata such as book summaries
|
|
are stored directly on a GUI element (QStandardItemModel). We wrap this GUI element inside this wrapper class
|
|
so it exposes the same interface for searches.
|
|
"""
|
|
class flatDataModelWrapper(searchableModel, searchableItem):
|
|
def __init__(self, qstandardItemModel):
|
|
self.qstandardItemModel = qstandardItemModel
|
|
|
|
def searchableItems(self):
|
|
return [flatDataItemWrapper(self.qstandardItemModel)]
|
|
|
|
|
|
class flatDataItemWrapper(searchableItem):
|
|
def __init__(self, qstandardItemModel):
|
|
super().__init__(FlatDataSearchLabels)
|
|
self.qstandardItemModel = qstandardItemModel
|
|
|
|
def searchModel(self):
|
|
return Model.FlatData
|
|
|
|
def searchID(self):
|
|
return None
|
|
|
|
def searchTitle(self, column):
|
|
return self.translate(self.searchColumnLabel(column))
|
|
|
|
def searchPath(self, column):
|
|
return [self.translate("Summary"), self.translate(self.searchColumnLabel(column))]
|
|
|
|
def searchData(self, column):
|
|
return self.qstandardItemModel.item(1, self.searchDataIndex(column)).text()
|
|
|
|
@staticmethod
|
|
def searchDataIndex(column):
|
|
columnIndices = {
|
|
FlatData.summarySituation: 0,
|
|
FlatData.summarySentence: 1,
|
|
FlatData.summaryPara: 2,
|
|
FlatData.summaryPage: 3,
|
|
FlatData.summaryFull: 4
|
|
}
|
|
|
|
return columnIndices[column] |