private void startCheck() {
        Runnable run = new Runnable() {
            @Override
            public void run() {
                for (PFile file : Data.getFiles()) {
                    if (file.toUpload) {
                        if(Data.settings.checkPrefixBlacklist) {
                            checkPrefixBlacklist(file);
                        }
                        
                        if(Data.settings.checkIfExists) {
                            checkIfExists(file);
                        }
                        
                        if(Data.settings.checkGPS) {
                            checkGPS(file);
                        }
                        
                        if(Data.settings.checkUniqueNames) {
                            checkUniqueNames(file);
                        }
                    }
                }

                //summary
                if (model.getRowCount() > 0) {
                    tProgress.setIcon(new ImageIcon(getClass().getResource("/cuploader/resources/exclamation.png")));
                    tProgress.setText(Data.text("uploadcheck-errors") + ": " + model.getRowCount());
                    bUpload.setIcon(new ImageIcon(getClass().getResource("/cuploader/resources/exclamation.png")));
                    bUpload.setEnabled(true);
                } else {
                    tProgress.setIcon(new ImageIcon(getClass().getResource("/cuploader/resources/tick.png")));
                    tProgress.setText(Data.text("uploadcheck-ok"));
                    bUpload.setEnabled(true);
                    bUpload.requestFocus();
                }
                stopCheck();
            }
        };

        Thread t = new Thread(run);
        t.setName("FUploadCheck");
        t.start();
    }