void MainWindow::open() { if(this->isHidden()) this->show(); sdprinting = false; QString filename; QDir home; if(lastDir == "") { filename = QFileDialog::getOpenFileName(this, tr("Open GCODE"), home.home().absolutePath(), "GCODE (*.g *.gco *.gcode *.nc)"); } else { filename = QFileDialog::getOpenFileName(this, tr("Open GCODE"), lastDir, "GCODE (*.g *.gco *.gcode *.nc)"); } if(filename.isEmpty() || filename.isNull()) return; //Remember the last folder lastDir.clear(); lastDir.append(filename); int filenameChars = 0; for(int i = filename.count()-1; filename.at(i) != QDir::separator(); i--) { filenameChars++; //Count how many characters are in the filename } lastDir.remove(lastDir.count()-filenameChars, filenameChars);//remove filename gfile.setFileName(filename); if(!recentFiles.contains(filename)) { recentFiles.prepend(filename); if(recentFiles.size() >= 10) recentFiles.removeLast(); } updateRecent(); parseFile(filename); }