filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process

Sun, 11 Aug 2013 22:17:02 +0200

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Sun, 11 Aug 2013 22:17:02 +0200
changeset 56
c8a47a8536b0
parent 55
f8f333fffe81
child 57
ddf3165e3d62

filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process

ChangeLog file | annotate | diff | comparison | revisions
CxFreeze/CxfreezeConfigDialog.py file | annotate | diff | comparison | revisions
CxFreeze/CxfreezeConfigDialog.ui file | annotate | diff | comparison | revisions
CxFreeze/CxfreezeExecDialog.py file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_cs.ts file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_de.qm file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_de.ts file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_en.ts file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_es.ts file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_fr.ts file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_it.ts file | annotate | diff | comparison | revisions
CxFreeze/i18n/cxfreeze_ru.ts file | annotate | diff | comparison | revisions
PluginCxFreeze.py file | annotate | diff | comparison | revisions
PluginCxFreeze.zip file | annotate | diff | comparison | revisions
--- a/ChangeLog	Sat Jul 13 15:36:08 2013 +0200
+++ b/ChangeLog	Sun Aug 11 22:17:02 2013 +0200
@@ -13,6 +13,9 @@
 - fixed an issue finding the executable in different registries 
   on 64-bit Windows systems
 - little layout changes
+- filedialog to add distribution dependent files, e.g. *.ui, readme, which
+  are copied after the freeze process
+
 
 Version 5.1.2:
 - bug fix
--- a/CxFreeze/CxfreezeConfigDialog.py	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/CxfreezeConfigDialog.py	Sun Aug 11 22:17:02 2013 +0200
@@ -18,7 +18,8 @@
 import copy
 
 from PyQt4.QtCore import pyqtSlot, QDir, QProcess
-from PyQt4.QtGui import QDialog
+from PyQt4.QtGui import QDialog, QListWidgetItem, QFileDialog, QPushButton, QTreeView, \
+    QItemSelection, QLineEdit
 
 from E5Gui import E5FileDialog
 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
@@ -27,6 +28,103 @@
 
 import Utilities
 
+
+class DirFileDialog(QFileDialog):
+    """
+    Derived QFileDialog to select files and folders at once.
+    For this purpose the none native filedialog is used.
+    """
+    def __init__(self, parent=None, caption="", directory="",
+                             filter=""):
+        """
+        Extend the normal none native filedialog to select files and folders at once.
+        
+        @param args same argument list like QFileDialog
+        """
+        self.selectedFilesFolders = []
+        QFileDialog.__init__(self, parent, caption, directory, filter)
+        self.setFileMode(QFileDialog.ExistingFiles)
+        btns = self.findChildren(QPushButton)
+        self.openBtn = [x for x in btns if 'open' in str(x.text()).lower()][0]
+        self.openBtn.clicked.disconnect()
+        self.openBtn.clicked.connect(self.on_openClicked)
+        self.tree = self.findChild(QTreeView)
+        self.fileNameEdit = self.findChild(QLineEdit)
+        self.fileNameEdit.textChanged.disconnect()
+        self.fileNameEdit.textChanged.connect(self.on_textChanged)
+        self.directoryEntered.connect(self.on_directoryEntered)
+        self.tree.selectionModel().selectionChanged.connect(self.on_selectionChanged)
+
+    @pyqtSlot()
+    def on_openClicked(self):
+        """
+        Update the list with the selected files and folders.
+        """
+        # Special case if a drive selected in Windows
+        if self.directory().dirName() != '.':
+            selectedItems = self.tree.selectionModel().selectedIndexes()
+            path = os.path.normpath(self.directory().absolutePath())
+            self.selectedFilesFolders = [os.path.join(path, itm.data())
+                for itm in selectedItems if itm.column() == 0]
+            # normalize path to slashes
+            self.selectedFilesFolders = [x.replace(os.sep, '/')
+                for x in self.selectedFilesFolders]
+        self.hide()
+
+    @pyqtSlot(str)
+    def on_directoryEntered(self, dir):
+        """
+        Reset selections if another directory was entered.
+        
+        @param dir name of the directory entered
+        """
+        self.tree.selectionModel().clear()
+        self.fileNameEdit.clear()
+
+    @pyqtSlot(QItemSelection, QItemSelection)
+    def on_selectionChanged(self, selected, deselected):
+        """
+        Determine the selected files and folders and update the lineedit.
+        
+        @param selected newly selected entries
+        @param deselected deselected entries
+        """
+        selectedItems = self.tree.selectionModel().selectedIndexes()
+        if self.tree.rootIndex() in selectedItems or selectedItems == []:
+            self.fileNameEdit.setText('')
+        else:
+            selectedItems = [x.data() for x in selectedItems if x.column() == 0]
+            selectedItems.sort()
+            self.fileNameEdit.setText(';'.join(selectedItems))
+
+    @pyqtSlot(str)
+    def on_textChanged(self, text):
+        """
+        Set the state of the open button.
+        
+        @param text text written into the lineedit.
+        """
+        self.openBtn.setEnabled(text!='')
+
+    @staticmethod
+    def getOpenFileNames(parent=None, caption="", directory="",
+                             filter="", options=QFileDialog.Options()):
+        """
+        Module function to get the names of files and folders for opening it.
+        
+        @param parent parent widget of the dialog (QWidget)
+        @param caption window title of the dialog (string)
+        @param directory working directory of the dialog (string)
+        @param filter filter string for the dialog (string)
+        @param options various options for the dialog (QFileDialog.Options)
+        @return names of the selected files and folders (list)
+        """
+        options |= QFileDialog.DontUseNativeDialog
+        dlg = DirFileDialog(parent, caption, directory, filter)
+        dlg.exec_()
+        return dlg.selectedFilesFolders
+
+
 class CxfreezeConfigDialog(QDialog, Ui_CxfreezeConfigDialog):
     """
     Class implementing a dialog to enter the parameters for cxfreeze.
@@ -89,6 +187,9 @@
         self.includeModulesEdit.setText(','.join(self.parameters['includeModules']))
         self.excludeModulesEdit.setText(','.join(self.parameters['excludeModules']))
         self.extListFileEdit.setText(self.parameters['extListFile'])
+        
+        # initialize additional files tab
+        self.fileOrFolderList.addItems(self.parameters['additionalFiles'])
     
     def __initializeDefaults(self):
         """
@@ -115,6 +216,9 @@
             'includeModules': [],
             'excludeModules': [],
             'extListFile': '',
+            
+            # additional files tab
+            'additionalFiles': [],
         }
         # overwrite 'baseName' if OS is Windows
         if sys.platform == 'win32':
@@ -197,6 +301,10 @@
             parms['extListFile'] = self.parameters['extListFile']
             args.append('--ext-list-file={0}'.format(self.parameters['extListFile']))
         
+        # 2.3 additional files tab
+        if self.parameters['additionalFiles'] != []:
+            parms['additionalFiles'] = self.parameters['additionalFiles']
+        
         return (args, parms)
 
     @pyqtSlot()
@@ -340,6 +448,79 @@
             self.initscriptCombo.addItems([os.path.splitext(i)[0] for i in initList])
             self.initscriptCombo.setEditText(currentText)
     
+    def on_fileOrFolderList_currentRowChanged(self, row):
+        """
+        Private slot to handle the currentRowChanged signal of the fileOrFolderList.
+        
+        @param row the current row (integer)
+        """
+        self.deleteSelectedButton.setEnabled(row != -1)
+        if row != -1:
+            self.fileOrFolderList.setCurrentRow(row)
+    
+    @pyqtSlot(QListWidgetItem)
+    def on_fileOrFolderList_itemDoubleClicked(self, itm):
+        """
+        Private slot to handle the currentRowChanged signal of the fileOrFolderList.
+        
+        @param itm the selected row
+        """
+        self.fileOrFolderEdit.setText(itm.text())
+        row = self.fileOrFolderList.currentRow()
+        self.fileOrFolderList.takeItem(row)
+    
+    @pyqtSlot()
+    def on_addFileOrFolderButton_clicked(self):
+        """
+        Private slot to add the entered file or directory to the list view.
+        """
+        txt = self.fileOrFolderEdit.text()
+        if txt:
+            self.fileOrFolderList.addItem(txt)
+            self.fileOrFolderEdit.clear()
+        row = self.fileOrFolderList.currentRow()
+        self.on_fileOrFolderList_currentRowChanged(row)
+
+    @pyqtSlot(str)
+    def on_fileOrFolderEdit_textChanged(self, txt):
+        """
+        Private slot to handle the textChanged signal of the directory edit.
+        
+        @param txt the text of the directory edit (string)
+        """
+        self.addFileOrFolderButton.setEnabled(txt != "")
+
+    @pyqtSlot()
+    def on_deleteSelectedButton_clicked(self):
+        """
+        Private slot to delete the selected entry from the list view.
+        """
+        row = self.fileOrFolderList.currentRow()
+        self.fileOrFolderList.takeItem(row)
+        row = self.fileOrFolderList.currentRow()
+        self.on_fileOrFolderList_currentRowChanged(row)
+
+    @pyqtSlot()
+    def on_selectFileOrFolderButton_clicked(self):
+        """
+        Private slot to select files or folders.
+        
+        It displays a file and directory selection dialog to
+        select the files and directorys which should copied into
+        the distribution folder..
+        """
+        items = DirFileDialog.getOpenFileNames(
+            None,
+            self.trUtf8("Select files and folders"))
+
+        ppath = self.project.ppath.replace(os.sep, '/') + '/'
+        for itm in items:
+            if itm.startswith(ppath):
+                itm = itm.replace(ppath, '')
+            self.fileOrFolderList.addItem(Utilities.toNativeSeparators(itm))
+        row = self.fileOrFolderList.currentRow()
+        self.on_fileOrFolderList_currentRowChanged(row)
+
     def accept(self):
         """
         Protected slot called by the Ok button.
@@ -375,6 +556,11 @@
             self.__splitIt(self.excludeModulesEdit.text(), ',')
         self.parameters['extListFile'] = self.extListFileEdit.text()
         
+        # get data of the additional files tab
+        additionalFiles = [self.fileOrFolderList.item(x).text()
+            for x in range(self.fileOrFolderList.count())]
+        self.parameters['additionalFiles'] = additionalFiles
+
         # call the accept slot of the base class
         QDialog.accept(self)
 
--- a/CxFreeze/CxfreezeConfigDialog.ui	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/CxfreezeConfigDialog.ui	Sun Aug 11 22:17:02 2013 +0200
@@ -379,6 +379,82 @@
        </item>
       </layout>
      </widget>
+     <widget class="QWidget" name="tab">
+      <attribute name="title">
+       <string>Additional &amp;files</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <item>
+        <widget class="QLabel" name="headerLabel">
+         <property name="text">
+          <string>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QListWidget" name="fileOrFolderList">
+         <property name="toolTip">
+          <string>List of files and directories which are copied into the distribution directory
+See 'What's this'</string>
+         </property>
+         <property name="whatsThis">
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it's outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don't have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+         </property>
+         <property name="alternatingRowColors">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <layout class="QHBoxLayout" name="addFilesButtonBox">
+         <item>
+          <widget class="QPushButton" name="deleteSelectedButton">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="toolTip">
+            <string>Press to delete the selected entry from the list</string>
+           </property>
+           <property name="text">
+            <string>Delete</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="addFileOrFolderButton">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="toolTip">
+            <string>Press to add the entered file or directory to the list</string>
+           </property>
+           <property name="text">
+            <string>Add</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="fileOrFolderEdit">
+           <property name="toolTip">
+            <string>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="selectFileOrFolderButton">
+           <property name="toolTip">
+            <string>Press to select a file or directory via a selection dialog</string>
+           </property>
+           <property name="text">
+            <string>...</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
    <item>
@@ -417,6 +493,11 @@
   <tabstop>excludeModulesEdit</tabstop>
   <tabstop>extListFileEdit</tabstop>
   <tabstop>extListFileButton</tabstop>
+  <tabstop>selectFileOrFolderButton</tabstop>
+  <tabstop>fileOrFolderEdit</tabstop>
+  <tabstop>addFileOrFolderButton</tabstop>
+  <tabstop>deleteSelectedButton</tabstop>
+  <tabstop>fileOrFolderList</tabstop>
   <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
--- a/CxFreeze/CxfreezeExecDialog.py	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/CxfreezeExecDialog.py	Sun Aug 11 22:17:02 2013 +0200
@@ -13,9 +13,12 @@
 except (NameError):
     pass
 
+import shutil
+import errno
+import fnmatch
 import os.path
 
-from PyQt4.QtCore import pyqtSlot, QProcess, QTimer
+from PyQt4.QtCore import pyqtSlot, QProcess, QTimer, QThread, pyqtSignal
 from PyQt4.QtGui import QDialog, QDialogButtonBox, QAbstractButton
 
 from E5Gui import E5MessageBox
@@ -45,21 +48,28 @@
         self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
         
         self.process = None
+        self.copyProcess = None
         self.cmdname = cmdname
     
-    def start(self, args, script):
+    def start(self, args, parms, ppath, mainscript):
         """
         Public slot to start the packager command.
         
         @param args commandline arguments for packager program (list of strings)
+        @param parms parameters got from the config dialog (dict)
+        @param ppath project path (string)
         @param script main script name to be processed by by the packager (string)
         @return flag indicating the successful start of the process
         """
         self.errorGroup.hide()
-        
+        script = os.path.join(ppath, mainscript)
         dname = os.path.dirname(script)
         script = os.path.basename(script)
         
+        self.ppath = ppath
+        self.additionalFiles = parms.get('additionalFiles', [])
+        self.targetDirectory = os.path.join(parms.get('targetDirectory', 'dist'))
+        
         self.contents.clear()
         self.errors.clear()
         
@@ -70,7 +80,7 @@
         
         self.process.readyReadStandardOutput.connect(self.__readStdout)
         self.process.readyReadStandardError.connect(self.__readStderr)
-        self.process.finished.connect(self.__finish)
+        self.process.finished.connect(self.__finishedFreeze)
             
         self.setWindowTitle(self.trUtf8('{0} - {1}').format(self.cmdname, script))
         self.contents.insertPlainText(' '.join(args) + '\n\n')
@@ -98,6 +108,7 @@
         if button == self.buttonBox.button(QDialogButtonBox.Close):
             self.accept()
         elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
+            self.additionalFiles = []   # Skip copying additional files
             self.__finish()
     
     def __finish(self):
@@ -107,22 +118,52 @@
         It is called when the process finished or
         the user pressed the cancel button.
         """
-        if self.process is not None and \
-           self.process.state() != QProcess.NotRunning:
+        if self.process is not None:
+            self.process.disconnect(self.__finishedFreeze)
             self.process.terminate()
             QTimer.singleShot(2000, self.process.kill)
             self.process.waitForFinished(3000)
+        self.process = None
         
+        if self.copyProcess is not None:
+            self.copyProcess.terminate()
+        self.copyProcess = None
+        
+        self.contents.insertPlainText(
+            self.trUtf8('\n{0} aborted.\n').format(self.cmdname))
+        
+        self.__enableButtons()
+    
+    def __finishedFreeze(self):
+        """
+        Private slot called when the process finished.
+        
+        It is called when the process finished or
+        the user pressed the cancel button.
+        """
+        self.process = None
+
+        self.contents.insertPlainText(
+            self.trUtf8('\n{0} finished.\n').format(self.cmdname))
+        
+        self.copyProcess = copyAdditionalFiles(self)
+        self.copyProcess.insertPlainText.connect(self.contents.insertPlainText)
+        self.copyProcess.finished.connect(self.__enableButtons)
+        self.copyProcess.start()
+    
+    def __enableButtons(self):
+        """
+        Private slot called when all processes finished.
+        
+        It is called when the process finished or
+        the user pressed the cancel button.
+        """
+        self.copyProcess = None
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
-        
-        self.process = None
-        
-        self.contents.insertPlainText(
-            self.trUtf8('\n{0} finished.\n').format(self.cmdname))
         self.contents.ensureCursorVisible()
-    
+
     def __readStdout(self):
         """
         Private slot to handle the readyReadStandardOutput signal.
@@ -155,3 +196,110 @@
                     'replace')
             self.errors.insertPlainText(s)
             self.errors.ensureCursorVisible()
+
+
+class copyAdditionalFiles(QThread):
+    """
+    Thread to copy the distribution dependend files.
+    
+    @signal insertPlainText(text) emitted to inform user about the copy progress
+    """
+    insertPlainText = pyqtSignal(str)
+    
+    def __init__(self, main):
+        """
+        Constructor, which stores the needed variables.
+        
+        @param main self-object of the caller
+        """
+        super(copyAdditionalFiles, self).__init__()
+        
+        self.ppath = main.ppath
+        self.additionalFiles = main.additionalFiles
+        self.targetDirectory = main.targetDirectory
+    
+    def __copytree(self, src, dst):
+        """
+        Copies a file or folder. Wildcards allowed. Existing files are overwitten.
+        
+        @param src source file or folder to copy. Wildcards allowed. (str)
+        @param dst destination (str)
+        """
+        def src2dst(srcname, base, dst):
+            """
+            Combines the relativ path of the source (srcname) with the
+            destination folder.
+            
+            @param srcname actual file or folder to copy
+            @param base basename of the source folder
+            @param dst basename of the destination folder
+            @return destination path
+            """
+            delta = srcname.split(base)[1]
+            return os.path.join(dst, delta[1:])
+        
+        base, fileOrFolderName = os.path.split(src)
+        initDone = False
+        for root, dirs, files in os.walk(base):
+            copied = False
+            # remove all none matching directorynames, create all others
+            for dir in dirs[:]:
+                pathname = os.path.join(root, dir)
+                if initDone or fnmatch.fnmatch(pathname, src):
+                    newDir = src2dst(pathname, base, dst)
+                    # avoid infinit loop
+                    if fnmatch.fnmatch(newDir, src):
+                        dirs.remove(dir)
+                        continue
+                    try:
+                        copied = True
+                        os.makedirs(newDir)
+                    except OSError as err:
+                        if err.errno != errno.EEXIST:     # it's ok if directory already exists
+                            raise err
+                else:
+                    dirs.remove(dir)
+            
+            for file in files:
+                fn = os.path.join(root, file)
+                if initDone or fnmatch.fnmatch(fn, src):
+                    newFile = src2dst(fn, base, dst)
+                    # copy files, give errors to caller
+                    shutil.copy2(fn, newFile)
+                    copied = True
+            
+            # check if file was found and copied
+            if len(files) and not copied:
+                raise IOError(errno.ENOENT,
+                    self.trUtf8("No such file or directory: '{0}'").format(src))
+            
+            initDone = True
+            
+    def run(self):
+        """
+        QThread entry point to copy the selected additional files and folders.
+        """
+        self.insertPlainText.emit('----\n')
+        os.chdir(self.ppath)
+        for fn in self.additionalFiles:
+            self.insertPlainText.emit(
+                self.trUtf8('\nCopying {0}: ').format(fn))
+            
+            # on linux normpath doesn't replace backslashes to slashes.
+            fn = fn.replace('\\', '/')
+            fn = os.path.abspath(os.path.normpath(fn))
+            dst = os.path.join(self.ppath, self.targetDirectory)
+            if fn.startswith(os.path.normpath(self.ppath)):
+                dirname = fn.split(self.ppath+os.sep)[1]
+                dst = os.path.join(dst, os.path.dirname(dirname))
+                try:
+                    os.makedirs(dst)
+                except OSError as err:
+                    if err.errno != errno.EEXIST:     # it's ok if directory already exists
+                        raise err
+            
+            try:
+                self.__copytree(fn, dst)
+                self.insertPlainText.emit(self.trUtf8('ok'))
+            except IOError as err:
+                self.insertPlainText.emit(self.trUtf8('failed: {0}').format(err.strerror))
--- a/CxFreeze/i18n/cxfreeze_cs.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_cs.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -28,37 +28,37 @@
         <translation>Balíčkovače - cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation>V aktuálním projektu není definován hlavní skript.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation>cxfreeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation>Použít cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation>Použít cx_&amp;freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation>Generovat distribuční balíček za použití cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Použít cx_freeze&lt;/b&gt;&lt;p&gt;Generování distribučního balíčku za použití cx_freeze. Příkaz je vykonán v cestě projektu. Všechny soubory a adresáře musí být zadány absolutně nebo relativně vůči adresáři projektu.&lt;/p&gt;</translation>
     </message>
@@ -164,7 +164,7 @@
         <translation>Cílové jméno:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -289,7 +289,7 @@
         <translation>Externí seznam souborů:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation>Výběr cílového adresáře</translation>
     </message>
@@ -299,7 +299,7 @@
         <translation type="obsolete">Výběr Python společné knihovny</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation>Výběr externího seznamu souborů</translation>
     </message>
@@ -334,20 +334,77 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -370,22 +427,22 @@
         <translation>&lt;b&gt;Provedení balíčkovače&lt;/b&gt;&lt;p&gt;Zobrazuje se výstup z příkazu balíčkovače.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation>{0} - {1}</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation>Chyba v procesu generování</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Proces {0} nelze spustit. Ověřte, že je umístěn v požadované cestě.</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
@@ -403,5 +460,36 @@
         <source>Errors</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
Binary file CxFreeze/i18n/cxfreeze_de.qm has changed
--- a/CxFreeze/i18n/cxfreeze_de.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_de.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -9,37 +9,37 @@
         <translation>Paketierer - cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation>Für das Projekt ist kein Hauptskript festgelegt.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation>Das cxfreeze Programm konnte nicht gefunden werden.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation>cxfreeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation>Benutze cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation>Benutze cx_&amp;freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation>Erzeuge ein Distributionspaket mittels cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Benutze cx_freeze&lt;/b&gt;&lt;p&gt;Erzeuge ein Distributionspaket mittels cx_freeze. Der Befehl wird im Projektverzeichnis ausgeführt. Alle Datei- und Verzeichnisnamen müssen absolut oder relativ zum Projektverzeichnis angegeben werden.&lt;/p&gt;</translation>
     </message>
@@ -59,12 +59,12 @@
 <context>
     <name>CxfreezeConfigDialog</name>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation>Wähle das Zielverzeichnis</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation>Wähle die externe Listendatei</translation>
     </message>
@@ -163,7 +163,7 @@
         <translation>Zielname:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -298,17 +298,17 @@
         <translation>cx_Freeze Startdatei:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation>Icons</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation>Alle Dateien</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation>Wähle das Icon für die Anwendung</translation>
     </message>
@@ -317,6 +317,65 @@
         <source>Select the cx_freeze executable</source>
         <translation>Wähle die cx_Freeze Startdatei</translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation>Zusätzliche &amp;Dateien</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation>&lt;b&gt;Zusätzliche Dateien oder Ordner hinzufügen, welche in den Distributions-Ordner kopiert werden:&lt;/b&gt;</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation>Liste der Dateien und Verzeichnisse, welche in den Distributions-Ordner kopiert werden
+Siehe auch &apos;Hilfe&apos;</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Liste zusätzlicher Dateien&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Dateien, welche für die Applikation relevant sind, aber nicht von cx_Freeze eingebunden werden, können hier hinzugefügt werden. Dies können z.B. Dateien für das UI oder ein Ordner  mit den Übersetzungen sein.&lt;/p&gt;&lt;p&gt;Die hinzugefügten Dateien und Ordner werden nach dem Erstellen der Applikation dazukopiert.&lt;/p&gt;&lt;p&gt;Hinweise: &lt;/p&gt;&lt;p&gt;- Jede Datei bzw. jeder Ordner wird relativ zu dem Zielordner kopiert, auch wenn die Quelle außerhalb des Quellcodeverzeichnisses liegt.&lt;/p&gt;&lt;p&gt;- Dateien bzw. Verzeichnisse brauchen nicht dem Eric Projekt hinzugefügt worden sein.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation>Drücken, um den ausgewählten Eintrag aus der Liste zu löschen</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation>Löschen</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation>Drücken, um die eingegebene(n) Datei(en)/ Ordner der Liste hinzuzufügen</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation>Hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation>Eine Datei oder ein Verzeichnis eingeben, welches hinzugefügt werden soll.
+Platzhalter sind erlaubt, wie z.B. *.ui</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation>Wähle Dateien und Ordner</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation>Drücken, um Dateinen und Ordner über einen Dialog auszuwählen</translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -340,22 +399,22 @@
 &lt;p&gt;Dies zeigt die Fehler des Paketierer Befehls.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation>{0} - {1}</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation>Fehler beim Prozessstart</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Der Prozess {0} konnte nicht gestartet werden. Stellen Sie sicher, dass er sich im Suchpfad befindet.</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
@@ -373,5 +432,60 @@
         <source>Errors</source>
         <translation>Fehler</translation>
     </message>
+    <message>
+        <location filename="../CxfreezeExecDialog.py" line="222"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="obsolete">Datei oder Verzeichnis nicht gefunden: {0}</translation>
+    </message>
+    <message>
+        <location filename="../CxfreezeExecDialog.py" line="234"/>
+        <source>
+Copying {0}: </source>
+        <translation type="obsolete">
+Kopiere {0}: </translation>
+    </message>
+    <message>
+        <location filename="../CxfreezeExecDialog.py" line="252"/>
+        <source>ok</source>
+        <translation type="obsolete">ok</translation>
+    </message>
+    <message>
+        <location filename="../CxfreezeExecDialog.py" line="254"/>
+        <source>failed: {0}</source>
+        <translation type="obsolete">fehlgeschlagen: {0}</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation>
+{0} abgebrochen.</translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation>Datei oder Verzeichnis nicht gefunden: {0}</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation>
+Kopiere {0}: </translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation>ok</translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation>fehlgeschlagen: {0}</translation>
+    </message>
 </context>
 </TS>
--- a/CxFreeze/i18n/cxfreeze_en.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_en.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -13,37 +13,37 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -123,7 +123,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -283,30 +283,87 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -338,26 +395,57 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
--- a/CxFreeze/i18n/cxfreeze_es.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_es.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -28,37 +28,37 @@
         <translation type="obsolete">&lt;b&gt;Usar cx_Freeze&lt;/b&gt;&lt;p&gt;Generar un paquete de distribución utilizando cx_Freeze. El comando se ejecuta en la ruta del proyecto. Todos los archivos y directorios deben ser proporcionados de forma absoluta o relativa al directorio del proyecto.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation>No hay script principal definido para el proyecto actual.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation>No se ha podido encontrar el ejecutable de cxfreeze.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation>cxfreeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation>Usar cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation>Usar cx_&amp;freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation>Generar un paquete de distribución utilizando cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Usar cx_freeze&lt;/b&gt;&lt;p&gt;Generar un paquete de distribución utilizando cx_freeze. El comando se ejecuta en la ruta del proyecto. Todos los archivos y directorios deben ser proporcionados de forma absoluta o relativa al directorio del proyecto.&lt;/p&gt;</translation>
     </message>
@@ -165,7 +165,7 @@
         <translation>Nombre de destino:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -290,7 +290,7 @@
         <translation>Archivo de lista externo:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation>Seleccionar directorio de destino</translation>
     </message>
@@ -300,7 +300,7 @@
         <translation type="obsolete">Seleccionar biblioteca compartida de Python</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation>Seleccionar archivo de lista externo</translation>
     </message>
@@ -335,20 +335,77 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -372,22 +429,22 @@
 &lt;p&gt;Muestra los errores del comando del empaquetador.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation>{0} - {1}</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation>Error de Generación de Proceso</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>El proceso {0} no pudo ser ejecutado. Asegúrese de que esta en la ruta de búsqueda.</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
@@ -403,5 +460,36 @@
         <source>Errors</source>
         <translation>Errores</translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
--- a/CxFreeze/i18n/cxfreeze_fr.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_fr.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -28,37 +28,37 @@
         <translation>Packageurs - cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation>Il n&apos;y a pas de script principal défini dans le projet courant.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation>cxfreeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation>Utiliser cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation>Utiliser cx_&amp;freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation>Générer un package de distribution en utilisant cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Utiliser cx_freeze&lt;/b&gt;&lt;p&gt;Générer un package de distribution en utilisant cx_freeze. Cette commande est executée depuis le chemin du projet. Tous les fichiers et réperoires doivent être indiqués soit par un chemin absolu, soit par un chemin relatif au répertoire du projet.&lt;/p&gt;</translation>
     </message>
@@ -71,7 +71,7 @@
 <context>
     <name>CxfreezeConfigDialog</name>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation>Sélectionner un répertoire de destination</translation>
     </message>
@@ -81,7 +81,7 @@
         <translation type="obsolete">Sélectionner la librairie partagée Python</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation>Sélectionner une liste externe de fichiers</translation>
     </message>
@@ -180,7 +180,7 @@
         <translation>Nom de la cible:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -335,20 +335,77 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -372,22 +429,22 @@
 &lt;p&gt;Affiche les messages d&apos;erreurs générés par le packageur.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation>{0} - {1}</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation>Erreur du processus</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Impossible de lancer le processus {0}. Assurez-vous qu&apos;il est bien dans le chemin de recherche.</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
@@ -405,5 +462,36 @@
         <source>Errors</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
--- a/CxFreeze/i18n/cxfreeze_it.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_it.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -28,37 +28,37 @@
         <translation>Pacchettizzatore - cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation>Non c&apos;è uno script principale per il progetto corrente.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation>L&apos;eseguibile cxfreeze non è stato trovato.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation>cxfreeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation>Utilizza cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation>Utilizza cx_&amp;freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation>Genera un pacchetto distribuibili utilizzando cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Utilizza cx_freeze&lt;/b&gt;&lt;p&gt;Genera un pacchetto distribuibili utilizzando cx_freeze. Il comando viene eseguiro nel percorso del progetto. Tutti i file e le directory devono essere indicati con i percorsi assoluti o relativi alla directory del progetto.&lt;/p&gt;</translation>
     </message>
@@ -71,7 +71,7 @@
 <context>
     <name>CxfreezeConfigDialog</name>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation>Sélectionner un répertoire de destination</translation>
     </message>
@@ -81,7 +81,7 @@
         <translation type="obsolete">Sélectionner la librairie partagée Python</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation>Sélectionner une liste externe de fichiers</translation>
     </message>
@@ -180,7 +180,7 @@
         <translation>Nom de la cible:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -335,20 +335,77 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -372,22 +429,22 @@
 &lt;p&gt;Mostra gli errori del comando.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation>{0} - {1}</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation>Errore Generazione Processo</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Il processo {0} non può essere avviato. Assicurarsi che sia nel percorso di ricerca.</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
@@ -405,5 +462,36 @@
         <source>Errors</source>
         <translation>Errori</translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
--- a/CxFreeze/i18n/cxfreeze_ru.ts	Sat Jul 13 15:36:08 2013 +0200
+++ b/CxFreeze/i18n/cxfreeze_ru.ts	Sun Aug 11 22:17:02 2013 +0200
@@ -8,37 +8,37 @@
         <translation>Пакетировщики — cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="327"/>
+        <location filename="../../PluginCxFreeze.py" line="328"/>
         <source>There is no main script defined for the current project.</source>
         <translation>В текущем проекте не выбран главный сценарий.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>The cxfreeze executable could not be found.</source>
         <translation>cxfreeze не найден.</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="337"/>
+        <location filename="../../PluginCxFreeze.py" line="338"/>
         <source>cxfreeze</source>
         <translation>cxfreeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_freeze</source>
         <translation>Использовать cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="255"/>
+        <location filename="../../PluginCxFreeze.py" line="256"/>
         <source>Use cx_&amp;freeze</source>
         <translation>Использовать cx_&amp;freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="258"/>
+        <location filename="../../PluginCxFreeze.py" line="259"/>
         <source>Generate a distribution package using cx_freeze</source>
         <translation>Создать дистрибутивный пакет с помощью cx_freeze</translation>
     </message>
     <message>
-        <location filename="../../PluginCxFreeze.py" line="260"/>
+        <location filename="../../PluginCxFreeze.py" line="261"/>
         <source>&lt;b&gt;Use cx_freeze&lt;/b&gt;&lt;p&gt;Generate a distribution package using cx_freeze. The command is executed in the project path. All files and directories must be given absolute or relative to the project directory.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Использовать cx_freeze&lt;/b&gt;
 &lt;p&gt;Создать дистрибутивный пакет с помощью cx_freeze. Команда исполняется в пути проекта. Имена всех файлов и каталогоа должны быть абсолютными или относительными к каталогу проекта.&lt;/p&gt;</translation>
@@ -52,12 +52,12 @@
 <context>
     <name>CxfreezeConfigDialog</name>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="259"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="368"/>
         <source>Select target directory</source>
         <translation>Выберите каталог назначения</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="210"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="319"/>
         <source>Select external list file</source>
         <translation>Выберите файл со списком внешних файлов</translation>
     </message>
@@ -156,7 +156,7 @@
         <translation>Имя цели:</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="363"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="450"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -298,20 +298,77 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="230"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="339"/>
         <source>Icons</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="231"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="340"/>
         <source>All files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="239"/>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="348"/>
         <source>Select the application icon</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="384"/>
+        <source>Additional &amp;files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="390"/>
+        <source>&lt;b&gt;Add depending files or folders to copy into the distribution folder:&lt;/b&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="397"/>
+        <source>List of files and directories which are copied into the distribution directory
+See &apos;What&apos;s this&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="401"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Additional files list&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Here you can add files and folders which will not frozen by cx_Freeze, but maybe relevant to your application. This could be, e.g., some UI files or a dirctory with your translation files.&lt;/p&gt;&lt;p&gt;Easily add them to the list and they get copied after the freeze.&lt;/p&gt;&lt;p&gt;Remarks: &lt;/p&gt;&lt;p&gt;- Every file or folder will be copied relativ to the destination folder even if it&apos;s outside the sourcetree.&lt;/p&gt;&lt;p&gt;- Files and folders don&apos;t have to be added to the Eric project first.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="416"/>
+        <source>Press to delete the selected entry from the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="419"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="429"/>
+        <source>Press to add the entered file or directory to the list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="432"/>
+        <source>Add</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="439"/>
+        <source>Enter a file or directory to be added.
+Wildcards are allowed, e.g. *.ui</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.py" line="515"/>
+        <source>Select files and folders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeConfigDialog.ui" line="447"/>
+        <source>Press to select a file or directory via a selection dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>CxfreezeExecDialog</name>
@@ -335,22 +392,22 @@
 &lt;p&gt;Отображает ошибки команды упаковщика.&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="75"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="85"/>
         <source>{0} - {1}</source>
         <translation>{0} - {1}</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>Process Generation Error</source>
         <translation>Ошибка процесса генерации</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="83"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="93"/>
         <source>The process {0} could not be started. Ensure, that it is in the search path.</source>
         <translation>Не могу запустить процесс &apos;{0}&apos;. Убедитесь, что он находится в пути поиска.</translation>
     </message>
     <message>
-        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="122"/>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="146"/>
         <source>
 {0} finished.
 </source>
@@ -366,5 +423,36 @@
         <source>Errors</source>
         <translation>ошибка</translation>
     </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="132"/>
+        <source>
+{0} aborted.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>copyAdditionalFiles</name>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="273"/>
+        <source>No such file or directory: &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="285"/>
+        <source>
+Copying {0}: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="303"/>
+        <source>ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../../CxFreeze/CxfreezeExecDialog.py" line="305"/>
+        <source>failed: {0}</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 </TS>
--- a/PluginCxFreeze.py	Sat Jul 13 15:36:08 2013 +0200
+++ b/PluginCxFreeze.py	Sun Aug 11 22:17:02 2013 +0200
@@ -55,15 +55,15 @@
     """
     dataList = []
     data = {
-        "programEntry"      : True,
-        "header"            : QCoreApplication.translate("CxFreezePlugin",
+        "programEntry": True,
+        "header": QCoreApplication.translate("CxFreezePlugin",
                                 "Packagers - cx_freeze"),
-        "exe"               : 'dummyfreeze',
-        "versionCommand"    : '--version',
-        "versionStartsWith" : 'dummyfreeze',
-        "versionPosition"   : -1,
-        "version"           : "",
-        "versionCleanup"    : None,
+        "exe": 'dummyfreeze',
+        "versionCommand": '--version',
+        "versionStartsWith": 'dummyfreeze',
+        "versionPosition": -1,
+        "version": "",
+        "versionCleanup": None,
     }
     
     if _checkProgram():
@@ -209,6 +209,7 @@
     else:
         return True
 
+
 class CxFreezePlugin(QObject):
     """
     Class implementing the CxFreeze plugin.
@@ -354,7 +355,7 @@
             from CxFreeze.CxfreezeExecDialog import CxfreezeExecDialog
             dia = CxfreezeExecDialog("cxfreeze")
             dia.show()
-            res = dia.start(args,
-                os.path.join(project.ppath, project.pdata["MAINSCRIPT"][0]))
+            res = dia.start(args, parms, project.ppath,
+                project.pdata["MAINSCRIPT"][0])
             if res:
                 dia.exec_()
Binary file PluginCxFreeze.zip has changed

eric ide

mercurial