예제 #1
0
    def backupToXml(self, event):
        """ Back up all fits to EVE XML file """
        defaultFile = "pyfa-fits-%s.xml" % strftime("%Y%m%d_%H%M%S", gmtime())

        saveDialog = wx.FileDialog(
            self,
            "Save Backup As...",
            wildcard="EVE XML fitting file (*.xml)|*.xml",
            style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT,
            defaultFile=defaultFile,
        )

        if saveDialog.ShowModal() == wx.ID_OK:
            filePath = saveDialog.GetPath()
            if '.' not in os.path.basename(filePath):
                filePath += ".xml"

            sFit = Fit.getInstance()
            max_ = sFit.countAllFits()

            self.progressDialog = wx.ProgressDialog(
                "Backup fits",
                "Backing up %d fits to: %s" % (max_, filePath),
                maximum=max_,
                parent=self,
                style=wx.PD_APP_MODAL | wx.PD_ELAPSED_TIME,
            )
            Port().backupFits(filePath, self.backupCallback)
            self.progressDialog.ShowModal()
예제 #2
0
 def importFromClipboard(self, event):
     clipboard = fromClipboard()
     try:
         fits = Port().importFitFromBuffer(clipboard, self.getActiveFit())
     except:
         pyfalog.error("Attempt to import failed:\n{0}", clipboard)
     else:
         self._openAfterImport(fits)
예제 #3
0
파일: mainFrame.py 프로젝트: zhaoweny/Pyfa
 def importFromClipboard(self, event):
     clipboard = fromClipboard()
     activeFit = self.getActiveFit()
     try:
         importType, importData = Port().importFitFromBuffer(
             clipboard, activeFit)
         if importType == "FittingItem":
             baseItem, mutaplasmidItem, mutations = importData[0]
             if mutaplasmidItem:
                 self.command.Submit(
                     cmd.GuiImportLocalMutatedModuleCommand(
                         activeFit, baseItem, mutaplasmidItem, mutations))
             else:
                 self.command.Submit(
                     cmd.GuiAddLocalModuleCommand(activeFit, baseItem.ID))
             return
         if importType == "AdditionsDrones":
             if self.command.Submit(
                     cmd.GuiImportLocalDronesCommand(
                         activeFit, [(i.ID, a) for i, a in importData[0]])):
                 self.additionsPane.select("Drones")
             return
         if importType == "AdditionsFighters":
             if self.command.Submit(
                     cmd.GuiImportLocalFightersCommand(
                         activeFit, [(i.ID, a) for i, a in importData[0]])):
                 self.additionsPane.select("Fighters")
             return
         if importType == "AdditionsImplants":
             if self.command.Submit(
                     cmd.GuiImportImplantsCommand(
                         activeFit, [(i.ID, a) for i, a in importData[0]])):
                 self.additionsPane.select("Implants")
             return
         if importType == "AdditionsBoosters":
             if self.command.Submit(
                     cmd.GuiImportBoostersCommand(
                         activeFit, [(i.ID, a) for i, a in importData[0]])):
                 self.additionsPane.select("Boosters")
             return
         if importType == "AdditionsCargo":
             if self.command.Submit(
                     cmd.GuiImportCargosCommand(
                         activeFit, [(i.ID, a) for i, a in importData[0]])):
                 self.additionsPane.select("Cargo")
             return
     except (KeyboardInterrupt, SystemExit):
         raise
     except:
         pyfalog.error("Attempt to import failed:\n{0}", clipboard)
     else:
         self._openAfterImport(importData)
예제 #4
0
 def importFromClipboard(self, event):
     clipboard = fromClipboard()
     activeFit = self.getActiveFit()
     try:
         importType, importData = Port().importFitFromBuffer(clipboard, activeFit)
         # If it's mutated item - make sure there's at least base item specified
         if importType == "MutatedItem":
             # we've imported an Abyssal module, need to fire off the command to add it to the fit
             self.command.Submit(cmd.GuiImportLocalMutatedModuleCommand(activeFit, *importData[0]))
             return  # no need to do anything else
     except:
         pyfalog.error("Attempt to import failed:\n{0}", clipboard)
     else:
         self._openAfterImport(importData)
예제 #5
0
    def importFromClipboard(self, event):
        clipboard = fromClipboard()
        activeFit = self.getActiveFit()
        try:
            importType, importData = Port().importFitFromBuffer(
                clipboard, activeFit)

            if importType == "MutatedItem":
                # we've imported an Abyssal module, need to fire off the command to add it to the fit
                self.command.Submit(
                    cmd.GuiImportLocalMutatedModuleCommand(
                        activeFit, *importData[0]))
                return
            if importType == "AdditionsDrones":
                if self.command.Submit(
                        cmd.GuiImportLocalDronesCommand(
                            activeFit, [(i.ID, a) for i, a in importData[0]])):
                    self.additionsPane.select("Drones")
                return
            if importType == "AdditionsFighters":
                if self.command.Submit(
                        cmd.GuiImportLocalFightersCommand(
                            activeFit, [(i.ID, a) for i, a in importData[0]])):
                    self.additionsPane.select("Fighters")
                return
            if importType == "AdditionsImplants":
                if self.command.Submit(
                        cmd.GuiImportImplantsCommand(
                            activeFit, [(i.ID, a) for i, a in importData[0]])):
                    self.additionsPane.select("Implants")
                return
            if importType == "AdditionsBoosters":
                if self.command.Submit(
                        cmd.GuiImportBoostersCommand(
                            activeFit, [(i.ID, a) for i, a in importData[0]])):
                    self.additionsPane.select("Boosters")
                return
            if importType == "AdditionsCargo":
                if self.command.Submit(
                        cmd.GuiImportCargosCommand(
                            activeFit, [(i.ID, a) for i, a in importData[0]])):
                    self.additionsPane.select("Cargo")
                return
        except:
            pyfalog.error("Attempt to import failed:\n{0}", clipboard)
        else:
            self._openAfterImport(importData)
예제 #6
0
    def fitSelected(self, event):
        pyfalog.debug('====== Fit Selected: ' + repr(self) + str(bool(self)))

        if self.parent.IsActive(self):
            fitID = event.fitID
            startup = getattr(event, "startup", False)
            self.activeFitID = fitID
            sFit = Fit.getInstance()

            # VEETOR TINKERING START
            self.mainFrame.command.Submit(cmd.GuiToggleLocalDroneStatesCommand(
                fitID=fitID,
                mainPosition=0,
                positions=[0]))
            # VEETOR TINKERING END

            self.updateTab()
            if not startup or startup == 2:  # see OpenFitsThread in gui.mainFrame
                self.Show(fitID is not None)
                self.slotsChanged()
                sFit.switchFit(fitID)
                # @todo pheonix: had to disable this as it was causing a crash at the wxWidgets level. Dunno why, investigate
                wx.PostEvent(self.mainFrame, GE.FitChanged(fitIDs=(fitID,)))

            # VEETOR TINKERING START
            if self.mainFrame.options.fit is not None:
                fit_parsed = self.mainFrame.getActiveFit()
                from eos.db import getFit
                fit_db = getFit(fit_parsed)
                from service.port import Port
                exp = Port().exportFitStatsJson(fit_db)
                print(exp)
                sFit.deleteFit(fitID)
                wx.PostEvent(self.mainFrame, GE.FitRemoved(fitID=fitID))
                import sys
                sys.exit(0)
            # VEETOR TINKERING END

        event.Skip()