Added support for drag&drop files into Cura.
This commit is contained in:
parent
29b5d0b0eb
commit
da4bdd800f
4 changed files with 52 additions and 2 deletions
|
@ -5,6 +5,7 @@ import wx, os, platform, types, webbrowser, math, subprocess, multiprocessing, t
|
|||
|
||||
from util import profile
|
||||
from util import sliceRun
|
||||
from gui import dropTarget
|
||||
|
||||
class batchRunWindow(wx.Frame):
|
||||
def __init__(self, parent):
|
||||
|
@ -12,6 +13,8 @@ class batchRunWindow(wx.Frame):
|
|||
|
||||
self.list = []
|
||||
|
||||
self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, '.stl'))
|
||||
|
||||
wx.EVT_CLOSE(self, self.OnClose)
|
||||
self.panel = wx.Panel(self, -1)
|
||||
self.SetSizer(wx.BoxSizer(wx.VERTICAL))
|
||||
|
@ -50,6 +53,13 @@ class batchRunWindow(wx.Frame):
|
|||
self._updateListbox()
|
||||
dlg.Destroy()
|
||||
|
||||
def OnDropFiles(self, filenames):
|
||||
for filename in filenames:
|
||||
profile.putPreference('lastFile', filename)
|
||||
self.list.append(filename)
|
||||
self.selection = filename
|
||||
self._updateListbox()
|
||||
|
||||
def OnRemModel(self, e):
|
||||
if self.selection == None:
|
||||
return
|
||||
|
|
18
Cura/gui/dropTarget.py
Normal file
18
Cura/gui/dropTarget.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
from __future__ import absolute_import
|
||||
import __init__
|
||||
|
||||
import wx
|
||||
|
||||
# Define File Drop Target class
|
||||
class FileDropTarget(wx.FileDropTarget):
|
||||
def __init__(self, callback, filenameFilter = None):
|
||||
super(FileDropTarget, self).__init__()
|
||||
self.callback = callback
|
||||
self.filenameFilter = filenameFilter
|
||||
|
||||
def OnDropFiles(self, x, y, filenames):
|
||||
if self.filenameFilter != None:
|
||||
filenames = filter(lambda f: f.endswith(self.filenameFilter) or f.endswith(self.filenameFilter.upper()), filenames)
|
||||
if len(filenames) > 0:
|
||||
self.callback(filenames)
|
||||
|
|
@ -18,6 +18,7 @@ from gui import projectPlanner
|
|||
from gui import batchRun
|
||||
from gui import flatSlicerWindow
|
||||
from gui import icon
|
||||
from gui import dropTarget
|
||||
from util import profile
|
||||
from util import version
|
||||
from util import sliceRun
|
||||
|
@ -41,6 +42,8 @@ class mainWindow(configBase.configWindowBase):
|
|||
wx.EVT_CLOSE(self, self.OnClose)
|
||||
#self.SetIcon(icon.getMainIcon())
|
||||
|
||||
self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, '.stl'))
|
||||
|
||||
menubar = wx.MenuBar()
|
||||
fileMenu = wx.Menu()
|
||||
i = fileMenu.Append(-1, 'Load model file...')
|
||||
|
@ -314,7 +317,6 @@ class mainWindow(configBase.configWindowBase):
|
|||
dlg.Destroy()
|
||||
if not(os.path.exists(filename)):
|
||||
return False
|
||||
profile.putPreference('lastFile', filename)
|
||||
return filename
|
||||
dlg.Destroy()
|
||||
return False
|
||||
|
@ -325,12 +327,18 @@ class mainWindow(configBase.configWindowBase):
|
|||
filelist.append(self._showOpenDialog("Open file to print"))
|
||||
if filelist[-1] == False:
|
||||
return
|
||||
self.SetTitle(filelist[-1] + ' - Cura - ' + version.getVersion())
|
||||
self._loadModels(filelist)
|
||||
|
||||
def _loadModels(self, filelist):
|
||||
self.filelist = filelist
|
||||
self.SetTitle(filelist[-1] + ' - Cura - ' + version.getVersion())
|
||||
profile.putPreference('lastFile', ';'.join(self.filelist))
|
||||
self.preview3d.loadModelFiles(self.filelist)
|
||||
self.preview3d.setViewMode("Normal")
|
||||
|
||||
def OnDropFiles(self, filenames):
|
||||
self._loadModels(filenames)
|
||||
|
||||
def OnLoadModel(self, e):
|
||||
self._showModelLoadDialog(1)
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ from gui import icon
|
|||
from gui import configBase
|
||||
from gui import validators
|
||||
from gui import printWindow
|
||||
from gui import dropTarget
|
||||
from util import profile
|
||||
from util import util3d
|
||||
from util import stl
|
||||
|
@ -144,6 +145,8 @@ class projectPlanner(wx.Frame):
|
|||
self.GetSizer().Add(self.panel, 1, flag=wx.EXPAND)
|
||||
#self.SetIcon(icon.getMainIcon())
|
||||
|
||||
self.SetDropTarget(dropTarget.FileDropTarget(self.OnDropFiles, '.stl'))
|
||||
|
||||
self.list = []
|
||||
self.selection = None
|
||||
self.printMode = 0
|
||||
|
@ -286,6 +289,16 @@ class projectPlanner(wx.Frame):
|
|||
self.preview.Refresh()
|
||||
dlg.Destroy()
|
||||
|
||||
def OnDropFiles(self, filenames):
|
||||
for filename in filenames:
|
||||
item = ProjectObject(self, filename)
|
||||
profile.putPreference('lastFile', item.filename)
|
||||
self.list.append(item)
|
||||
self.selection = item
|
||||
self._updateListbox()
|
||||
self.OnListSelect(None)
|
||||
self.preview.Refresh()
|
||||
|
||||
def OnPrintTypeChange(self):
|
||||
self.printMode = 0
|
||||
if self.printAllAtOnce.GetValue():
|
||||
|
@ -391,6 +404,7 @@ class projectPlanner(wx.Frame):
|
|||
self.scaleCtrl.SetValue(str(self.selection.scale))
|
||||
self.rotateCtrl.SetValue(int(self.selection.rotate))
|
||||
if int(profile.getPreference('extruder_amount')) > 1:
|
||||
|
||||
self.extruderCtrl.SetValue(str(self.selection.extruder+1))
|
||||
|
||||
self.mirrorX.SetValue(self.selection.flipX)
|
||||
|
|
Loading…
Reference in a new issue