def searchShip(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = [
            "System", "Permit", "StarDist", "Station", "Distance", "Age", ""
        ]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        shipID = self.shipList[self.shipComboBox.currentIndex()]

        maxAgeDate = datetime.utcnow() - timedelta(
            days=self.maxAgeSpinBox.value())

        shipyards = self.mydb.getShipyardWithShip(shipID, systemID, maxAgeDate)

        for shipyard in shipyards:
            model.insertRow(0)
            model.setData(model.index(0, self.headerList.index("System")),
                          shipyard["System"])

            model.setData(model.index(0, self.headerList.index("Permit")),
                          "No" if not shipyard["permit"] else "Yes")
            model.item(0, self.headerList.index("Permit")).setTextAlignment(
                QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("StarDist")),
                          shipyard["StarDist"])
            model.item(0, self.headerList.index("StarDist")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Station")),
                          shipyard["Station"])
            model.setData(model.index(0, self.headerList.index("Distance")),
                          shipyard["dist"])
            model.item(0, self.headerList.index("Distance")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Age")),
                          guitools.convertDateimeToAgeStr(shipyard["age"]))
            model.item(0, self.headerList.index("Age")).setTextAlignment(
                QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            self.listView.sortByColumn(self.headerList.index("Distance"),
                                       QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
Exemplo n.º 2
0
    def searchShip(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = ["System", "Permit", "StarDist", "Station", "Distance", "Age", ""]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        shipID = self.shipList[ self.shipComboBox.currentIndex() ]

        maxAgeDate = datetime.utcnow() - timedelta(days=self.maxAgeSpinBox.value())

        shipyards = self.mydb.getShipyardWithShip(shipID, systemID, maxAgeDate)


        for shipyard in shipyards:
            model.insertRow(0)
            model.setData(model.index(0, self.headerList.index("System")), shipyard["System"])

            model.setData(model.index(0, self.headerList.index("Permit")), "No" if not shipyard["permit"] else "Yes")
            model.item(0, self.headerList.index("Permit")).setTextAlignment(QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("StarDist")), shipyard["StarDist"])
            model.item(0, self.headerList.index("StarDist")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Station")), shipyard["Station"])
            model.setData(model.index(0, self.headerList.index("Distance")), shipyard["dist"])
            model.item(0, self.headerList.index("Distance")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Age")), guitools.convertDateimeToAgeStr(shipyard["age"]))
            model.item(0, self.headerList.index("Age")).setTextAlignment(QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            self.listView.sortByColumn(self.headerList.index("Distance"), QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
Exemplo n.º 3
0
    def searchDeals(self):
        # self.saveOptions()
        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = [
            "PriceID", "Item", "From", "Buy", "Stock", "To", "Sell", "Profit",
            "FromAge", "ToAge", ""
        ]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        fromSystem = self.fromSystem.text()
        fromSystemID = self.mydb.getSystemIDbyName(fromSystem)

        fromStation = self.fromStation.text()
        fromStationID = self.mydb.getStationID(fromSystemID, fromStation)

        toSystem = self.toSystem.text()
        toSystemID = self.mydb.getSystemIDbyName(toSystem)

        toStation = self.toStation.text()
        toStationID = self.mydb.getStationID(toSystemID, toStation)

        maxAgeDate = datetime.utcnow() - timedelta(
            days=self.maxAgeSpinBox.value())
        minStock = self.minStockSpinBox.value()
        startDist = self.maxStartDistSpinBox.value()

        if not fromSystemID or not fromStationID or not toSystemID:
            return

#        self.main.lockDB()

        if fromStationID and toStationID:
            deals = self.mydb.getDealsFromTo(fromStationID, toStationID,
                                             maxAgeDate, minStock)
        elif fromStationID and toSystemID:
            deals = self.mydb.getDealsFromToSystem(fromStationID, toSystemID,
                                                   startDist, maxAgeDate,
                                                   minStock)
        else:
            deals = []

        for deal in deals:
            if self.minProfitSpinBox.value() <= deal["Profit"]:
                model.insertRow(0)

                model.setData(model.index(0, self.headerList.index("PriceID")),
                              deal["priceAid"])
                model.setData(model.index(0, self.headerList.index("From")),
                              deal["fromStation"])
                model.setData(model.index(0, self.headerList.index("To")),
                              deal["toStation"])
                model.setData(model.index(0, self.headerList.index("Item")),
                              deal["itemName"])
                model.setData(model.index(0, self.headerList.index("Buy")),
                              deal["StationSell"])
                model.item(0, self.headerList.index("Buy")).setTextAlignment(
                    QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("Sell")),
                              deal["StationBuy"])
                model.item(0, self.headerList.index("Sell")).setTextAlignment(
                    QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("Profit")),
                              deal["Profit"])
                model.item(0,
                           self.headerList.index("Profit")).setTextAlignment(
                               QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("Stock")),
                              deal["Stock"])
                model.item(0, self.headerList.index("Stock")).setTextAlignment(
                    QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("FromAge")),
                              guitools.convertDateimeToAgeStr(deal["fromAge"]))
                model.item(0,
                           self.headerList.index("FromAge")).setTextAlignment(
                               QtCore.Qt.AlignCenter)
                model.setData(model.index(0, self.headerList.index("ToAge")),
                              guitools.convertDateimeToAgeStr(deal["toAge"]))
                model.item(0, self.headerList.index("ToAge")).setTextAlignment(
                    QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_dft.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(
                        self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(
                self.headerList.index("Profit"),
                PySide.QtCore.Qt.SortOrder.DescendingOrder)

            self.listView.hideColumn(self.headerList.index("PriceID"))

#       self.main.unlockDB()

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
Exemplo n.º 4
0
    def searchDeals(self):
        # self.saveOptions()
        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = ["PriceID", "Item", "From", "Buy", "Stock", "To", "Sell", "Profit", "FromAge", "ToAge", ""]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)


        fromSystem = self.fromSystem.text()
        fromSystemID = self.mydb.getSystemIDbyName(fromSystem)
    
        fromStation = self.fromStation.text()
        fromStationID = self.mydb.getStationID(fromSystemID, fromStation)
    
        toSystem = self.toSystem.text()
        toSystemID = self.mydb.getSystemIDbyName(toSystem)
        
        toStation = self.toStation.text()
        toStationID = self.mydb.getStationID(toSystemID, toStation)
            
        maxAgeDate = datetime.utcnow() - timedelta(days=self.maxAgeSpinBox.value())
        minStock = self.minStockSpinBox.value()
        startDist = self.maxStartDistSpinBox.value()
        
        if not fromSystemID or not fromStationID or not toSystemID:
            return
        
#        self.main.lockDB()
    
        if fromStationID and toStationID:
            deals = self.mydb.getDealsFromTo(fromStationID, toStationID, maxAgeDate, minStock)
        elif fromStationID and toSystemID:
            deals = self.mydb.getDealsFromToSystem(fromStationID, toSystemID, startDist, maxAgeDate, minStock)
        else:
            deals = []



        for deal in deals:
            if self.minProfitSpinBox.value() <= deal["Profit"]:
                model.insertRow(0)
                
                model.setData(model.index(0, self.headerList.index("PriceID")), deal["priceAid"])
                model.setData(model.index(0, self.headerList.index("From")), deal["fromStation"])
                model.setData(model.index(0, self.headerList.index("To")), deal["toStation"])
                model.setData(model.index(0, self.headerList.index("Item")), deal["itemName"])
                model.setData(model.index(0, self.headerList.index("Buy")), deal["StationSell"])
                model.item(0, self.headerList.index("Buy")).setTextAlignment(QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("Sell")), deal["StationBuy"])
                model.item(0, self.headerList.index("Sell")).setTextAlignment(QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("Profit")), deal["Profit"])
                model.item(0, self.headerList.index("Profit")).setTextAlignment(QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("Stock")), deal["Stock"])
                model.item(0, self.headerList.index("Stock")).setTextAlignment(QtCore.Qt.AlignRight)
                model.setData(model.index(0, self.headerList.index("FromAge")), guitools.convertDateimeToAgeStr(deal["fromAge"]))
                model.item(0, self.headerList.index("FromAge")).setTextAlignment(QtCore.Qt.AlignCenter)
                model.setData(model.index(0, self.headerList.index("ToAge")), guitools.convertDateimeToAgeStr(deal["toAge"]))
                model.item(0, self.headerList.index("ToAge")).setTextAlignment(QtCore.Qt.AlignCenter)


        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_dft.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(self.headerList.index("Profit"), PySide.QtCore.Qt.SortOrder.DescendingOrder)

            self.listView.hideColumn(self.headerList.index("PriceID"))

#       self.main.unlockDB()

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
Exemplo n.º 5
0
    def showStatus(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = [
            "System", "Station", "StarDist", "Permit", "Distance", "Age",
            "Info"
        ]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        if not systemID:
            return

        distance = self.searchRangeSpinBox.value()

        infoAge = datetime.utcnow() - timedelta(
            hours=self.infoAgeSpinBox.value())

        dataList = self.mydb.getSystemDeteilsInDistance(systemID, distance)

        for data in dataList:
            infoText = ""
            showEntry = False
            age = ""
            ''' StarDist AND missing Station'''

            if self.noStationWarning.isChecked() and not data["Station"]:
                showEntry = True
                if infoText:
                    infoText += ", "
                infoText = "No station in system?"
            elif data["Station"] and (not data["StarDist"]
                                      or data["StarDist"] < 1):
                showEntry = True
                if infoText:
                    infoText += ", "
                infoText = "No star dist for station"
            ''' Price '''
            if self.priceWarning.isChecked():
                if data["priceAge"] and data["priceAge"] < infoAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "Old price data"
                    if age:
                        age += ", "
                    age = guitools.convertDateimeToAgeStr(data["priceAge"])

                elif not data["priceAge"] and data["market"]:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "No price data"
            ''' Outfitting '''

            if self.outfittingWarning.isChecked() and data["outfitting"]:
                outfittingAge = self.mydb.getOutfittingDataAge(
                    data["StationID"])
                if outfittingAge and outfittingAge < infoAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "Old outfitting data"

                    if age:
                        age += ", "
                    age += guitools.convertDateimeToAgeStr(outfittingAge)

                elif not outfittingAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "No outfitting data"
            ''' Shipyard '''

            if self.shipyardWarning.isChecked() and data["shipyard"]:
                shipyardAge = self.mydb.getShipyardDataAge(data["StationID"])
                if shipyardAge and shipyardAge < infoAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "Old shipyard data"

                    if age:
                        age += ", "
                    age += guitools.convertDateimeToAgeStr(shipyardAge)

                elif not shipyardAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "No shipyard data"

            if showEntry:
                model.insertRow(0)
                model.setData(model.index(0, self.headerList.index("System")),
                              data["System"])

                model.setData(model.index(0, self.headerList.index("Station")),
                              data["Station"])

                model.setData(
                    model.index(0, self.headerList.index("StarDist")),
                    data["StarDist"])
                model.item(0,
                           self.headerList.index("StarDist")).setTextAlignment(
                               QtCore.Qt.AlignRight)

                model.setData(model.index(0, self.headerList.index("Permit")),
                              "No" if not data["permit"] else "Yes")
                model.item(0,
                           self.headerList.index("Permit")).setTextAlignment(
                               QtCore.Qt.AlignCenter)

                model.setData(
                    model.index(0, self.headerList.index("Distance")),
                    data["dist"])
                model.item(0,
                           self.headerList.index("Distance")).setTextAlignment(
                               QtCore.Qt.AlignRight)

                model.setData(model.index(0, self.headerList.index("Age")),
                              age)
                model.item(0, self.headerList.index("Age")).setTextAlignment(
                    QtCore.Qt.AlignCenter)

                model.setData(model.index(0, self.headerList.index("Info")),
                              infoText)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_ds.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(
                        self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(self.headerList.index("Distance"),
                                       QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
    def showStatus(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = ["System", "Station", "StarDist", "Permit", "Distance", "Age", "Info"]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        if not systemID:
            return

        distance = self.searchRangeSpinBox.value()

        infoAge = datetime.utcnow() - timedelta(hours=self.infoAgeSpinBox.value())

        dataList = self.mydb.getSystemDeteilsInDistance(systemID, distance)

        for data in dataList:
            infoText = ""
            showEntry = False
            age = ""

            """ StarDist AND missing Station"""

            if self.noStationWarning.isChecked() and not data["Station"]:
                showEntry = True
                if infoText:
                    infoText += ", "
                infoText = "No station in system?"
            elif data["Station"] and (not data["StarDist"] or data["StarDist"] < 1):
                showEntry = True
                if infoText:
                    infoText += ", "
                infoText = "No star dist for station"

            """ Price """
            if self.priceWarning.isChecked():
                if data["priceAge"] and data["priceAge"] < infoAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "Old price data"
                    if age:
                        age += ", "
                    age = guitools.convertDateimeToAgeStr(data["priceAge"])

                elif not data["priceAge"] and data["market"]:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "No price data"

            """ Outfitting """

            if self.outfittingWarning.isChecked() and data["outfitting"]:
                outfittingAge = self.mydb.getOutfittingDataAge(data["StationID"])
                if outfittingAge and outfittingAge < infoAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "Old outfitting data"

                    if age:
                        age += ", "
                    age += guitools.convertDateimeToAgeStr(outfittingAge)

                elif not outfittingAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "No outfitting data"

            """ Shipyard """

            if self.shipyardWarning.isChecked() and data["shipyard"]:
                shipyardAge = self.mydb.getShipyardDataAge(data["StationID"])
                if shipyardAge and shipyardAge < infoAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "Old shipyard data"

                    if age:
                        age += ", "
                    age += guitools.convertDateimeToAgeStr(shipyardAge)

                elif not shipyardAge:
                    showEntry = True
                    if infoText:
                        infoText += ", "
                    infoText += "No shipyard data"

            if showEntry:
                model.insertRow(0)
                model.setData(model.index(0, self.headerList.index("System")), data["System"])

                model.setData(model.index(0, self.headerList.index("Station")), data["Station"])

                model.setData(model.index(0, self.headerList.index("StarDist")), data["StarDist"])
                model.item(0, self.headerList.index("StarDist")).setTextAlignment(QtCore.Qt.AlignRight)

                model.setData(model.index(0, self.headerList.index("Permit")), "No" if not data["permit"] else "Yes")
                model.item(0, self.headerList.index("Permit")).setTextAlignment(QtCore.Qt.AlignCenter)

                model.setData(model.index(0, self.headerList.index("Distance")), data["dist"])
                model.item(0, self.headerList.index("Distance")).setTextAlignment(QtCore.Qt.AlignRight)

                model.setData(model.index(0, self.headerList.index("Age")), age)
                model.item(0, self.headerList.index("Age")).setTextAlignment(QtCore.Qt.AlignCenter)

                model.setData(model.index(0, self.headerList.index("Info")), infoText)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig("option_ds.header.sectionPos")
            if sectionPos:
                sectionPosList = sectionPos.strip().split(",")
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(self.headerList.index("Distance"), QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
Exemplo n.º 7
0
    def searchOutfitting(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = ["System", "Permit", "StarDist", "Station", "Distance", "Name", "Class", "Rating", "Mount", "Category", "Guidance", "Ship", "Age", ""]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        nameID = self.modulList[ self.modulComboBox.currentIndex() ]

        distance = self.searchRangeSpinBox.value()
            
        maxAgeDate = datetime.utcnow() - timedelta(days=self.maxAgeSpinBox.value())

        classID = int(self.classComboBox.currentIndex()) - 1

        rating = None
        if self.ratingComboBox.currentIndex() > 0:
            rating = self.ratingComboBox.currentText()

        mountID = self.mountList[ self.mountComboBox.currentIndex() ]

        shipID = self.shipList[ self.shipComboBox.currentIndex() ]

        outfittings = self.outfitting.getOutfitting(nameID, distance, self.maxStartDistSpinBox.value(), maxAgeDate, systemID, classID, rating, mountID, shipID, self.allegiancesComboBox.currentIndex(), self.governmentsComboBox.currentIndex())

        for outfitting in outfittings:

            model.insertRow(0)
            model.setData(model.index(0, self.headerList.index("System")), outfitting["System"])

            model.setData(model.index(0, self.headerList.index("Permit")), "No" if not outfitting["permit"] else "Yes")
            model.item(0, self.headerList.index("Permit")).setTextAlignment(QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("StarDist")), outfitting["StarDist"])
            model.item(0, self.headerList.index("StarDist")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Station")), outfitting["Station"])
            model.setData(model.index(0, self.headerList.index("Distance")), outfitting["dist"])
            model.item(0, self.headerList.index("Distance")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Name")), outfitting["modulname"])

            model.setData(model.index(0, self.headerList.index("Class")), outfitting["Class"])
            model.item(0, self.headerList.index("Class")).setTextAlignment(QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("Rating")), outfitting["Rating"])
            model.item(0, self.headerList.index("Rating")).setTextAlignment(QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("Mount")), outfitting["mount"])

            model.setData(model.index(0, self.headerList.index("Category")), outfitting["category"])

            if outfitting["guidance"]:
                model.setData(model.index(0, self.headerList.index("Guidance")), outfitting["guidance"])

            if outfitting["ShipID"]:
                model.setData(model.index(0, self.headerList.index("Ship")), outfitting["Name"])

            model.setData(model.index(0, self.headerList.index("Age")), guitools.convertDateimeToAgeStr(outfitting["modifydate"]))
            model.item(0, self.headerList.index("Age")).setTextAlignment(QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_of.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(self.headerList.index("Distance"), QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
    def searchOutfitting(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = [
            "System", "Permit", "StarDist", "Station", "Distance", "Name",
            "Class", "Rating", "Mount", "Category", "Guidance", "Ship", "Age",
            ""
        ]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        nameID = self.modulList[self.modulComboBox.currentIndex()]

        distance = self.searchRangeSpinBox.value()

        maxAgeDate = datetime.utcnow() - timedelta(
            days=self.maxAgeSpinBox.value())

        classID = int(self.classComboBox.currentIndex()) - 1

        rating = None
        if self.ratingComboBox.currentIndex() > 0:
            rating = self.ratingComboBox.currentText()

        mountID = self.mountList[self.mountComboBox.currentIndex()]

        shipID = self.shipList[self.shipComboBox.currentIndex()]

        outfittings = self.outfitting.getOutfitting(
            nameID, distance, self.maxStartDistSpinBox.value(), maxAgeDate,
            systemID, classID, rating, mountID, shipID,
            self.allegiancesComboBox.currentIndex(),
            self.governmentsComboBox.currentIndex())

        for outfitting in outfittings:

            model.insertRow(0)
            model.setData(model.index(0, self.headerList.index("System")),
                          outfitting["System"])

            model.setData(model.index(0, self.headerList.index("Permit")),
                          "No" if not outfitting["permit"] else "Yes")
            model.item(0, self.headerList.index("Permit")).setTextAlignment(
                QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("StarDist")),
                          outfitting["StarDist"])
            model.item(0, self.headerList.index("StarDist")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Station")),
                          outfitting["Station"])
            model.setData(model.index(0, self.headerList.index("Distance")),
                          outfitting["dist"])
            model.item(0, self.headerList.index("Distance")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Name")),
                          outfitting["modulname"])

            model.setData(model.index(0, self.headerList.index("Class")),
                          outfitting["Class"])
            model.item(0, self.headerList.index("Class")).setTextAlignment(
                QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("Rating")),
                          outfitting["Rating"])
            model.item(0, self.headerList.index("Rating")).setTextAlignment(
                QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("Mount")),
                          outfitting["mount"])

            model.setData(model.index(0, self.headerList.index("Category")),
                          outfitting["category"])

            if outfitting["guidance"]:
                model.setData(
                    model.index(0, self.headerList.index("Guidance")),
                    outfitting["guidance"])

            if outfitting["ShipID"]:
                model.setData(model.index(0, self.headerList.index("Ship")),
                              outfitting["Name"])

            model.setData(
                model.index(0, self.headerList.index("Age")),
                guitools.convertDateimeToAgeStr(outfitting["modifydate"]))
            model.item(0, self.headerList.index("Age")).setTextAlignment(
                QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_of.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(
                        self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(self.headerList.index("Distance"),
                                       QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
    def searchItem(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = [
            "System", "Permit", "StarDist", "Station", "Distance", "Item",
            "Stock", "Buy", "Demand", "Sell", "Age", ""
        ]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        if not systemID:
            return

        if self.onlyLocation.isChecked():
            distance = 0
        else:
            distance = self.searchRangeSpinBox.value()

        maxAgeDate = datetime.utcnow() - timedelta(
            days=self.maxAgeSpinBox.value())

        itemID = self.itemList[self.itemComboBox.currentIndex()]

        items = self.mydb.getPricesInDistance(
            systemID, distance, self.maxStartDistSpinBox.value(), maxAgeDate,
            itemID, self.onlyLpadsize.isChecked(),
            self.buySellComboBox.currentIndex(),
            self.allegiancesComboBox.currentIndex(),
            self.governmentsComboBox.currentIndex())

        for item in items:
            model.insertRow(0)
            model.setData(model.index(0, self.headerList.index("System")),
                          item["System"])

            model.setData(model.index(0, self.headerList.index("Permit")),
                          "No" if not item["permit"] else "Yes")
            model.item(0, self.headerList.index("Permit")).setTextAlignment(
                QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("StarDist")),
                          item["StarDist"])
            model.item(0, self.headerList.index("StarDist")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Station")),
                          item["Station"])

            if "dist" in item.keys():
                model.setData(
                    model.index(0, self.headerList.index("Distance")),
                    item["dist"])
            else:
                model.setData(
                    model.index(0, self.headerList.index("Distance")), 0)
            model.item(0, self.headerList.index("Distance")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Item")),
                          item["name"])

            model.setData(model.index(0, self.headerList.index("Stock")),
                          item["Stock"])
            model.item(0, self.headerList.index("Stock")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Buy")),
                          item["StationSell"])
            model.item(0, self.headerList.index("Buy")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Demand")),
                          item["Dammand"])
            model.item(0, self.headerList.index("Demand")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Sell")),
                          item["StationBuy"])
            model.item(0, self.headerList.index("Sell")).setTextAlignment(
                QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Age")),
                          guitools.convertDateimeToAgeStr(item["age"]))
            model.item(0, self.headerList.index("Age")).setTextAlignment(
                QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_cf.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(
                        self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(
                self.headerList.index("Distance"),
                PySide.QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)
Exemplo n.º 10
0
    def searchItem(self):

        firstrun = False
        if not self.listView.header().count():
            firstrun = True

        self.headerList = ["System", "Permit", "StarDist", "Station", "Distance", "Item", "Stock", "Buy", "Demand", "Sell", "Age", ""]

        model = QtGui.QStandardItemModel(0, len(self.headerList), self)
        for x, column in enumerate(self.headerList):
            model.setHeaderData(x, QtCore.Qt.Horizontal, column)

        location = self.locationlineEdit.text()
        systemID = self.mydb.getSystemIDbyName(location)

        if not systemID:
            return
       
        if self.onlyLocation.isChecked():
            distance = 0
        else:
            distance = self.searchRangeSpinBox.value()
            
        maxAgeDate = datetime.utcnow() - timedelta(days=self.maxAgeSpinBox.value())

        itemID = self.itemList[ self.itemComboBox.currentIndex() ]

        items = self.mydb.getPricesInDistance(systemID, distance, self.maxStartDistSpinBox.value(), maxAgeDate, itemID, self.onlyLpadsize.isChecked(), self.buySellComboBox.currentIndex(), self.allegiancesComboBox.currentIndex(), self.governmentsComboBox.currentIndex())


        for item in items:
            model.insertRow(0)
            model.setData(model.index(0, self.headerList.index("System")), item["System"])

            model.setData(model.index(0, self.headerList.index("Permit")), "No" if not item["permit"] else "Yes")
            model.item(0, self.headerList.index("Permit")).setTextAlignment(QtCore.Qt.AlignCenter)

            model.setData(model.index(0, self.headerList.index("StarDist")), item["StarDist"])
            model.item(0, self.headerList.index("StarDist")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Station")), item["Station"])

            if "dist" in item.keys():
                model.setData(model.index(0, self.headerList.index("Distance")), item["dist"])
            else:
                model.setData(model.index(0, self.headerList.index("Distance")), 0)
            model.item(0, self.headerList.index("Distance")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Item")), item["name"])

            model.setData(model.index(0, self.headerList.index("Stock")), item["Stock"])
            model.item(0, self.headerList.index("Stock")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Buy")), item["StationSell"])
            model.item(0, self.headerList.index("Buy")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Demand")), item["Dammand"])
            model.item(0, self.headerList.index("Demand")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Sell")), item["StationBuy"])
            model.item(0, self.headerList.index("Sell")).setTextAlignment(QtCore.Qt.AlignRight)

            model.setData(model.index(0, self.headerList.index("Age")), guitools.convertDateimeToAgeStr(item["age"]))
            model.item(0, self.headerList.index("Age")).setTextAlignment(QtCore.Qt.AlignCenter)

        self.listView.setModel(model)

        if firstrun:
            sectionPos = self.mydb.getConfig('option_cf.header.sectionPos')
            if sectionPos:
                sectionPosList = sectionPos.strip().split(',')
                for i, pos in enumerate(sectionPosList):
                    self.listView.header().moveSection(self.listView.header().visualIndex(int(pos)), i)

            self.listView.sortByColumn(self.headerList.index("Distance"), PySide.QtCore.Qt.SortOrder.AscendingOrder)

        for i in range(0, len(self.headerList)):
            self.listView.resizeColumnToContents(i)