head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.8 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.6 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.4 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.2 pkgsrc-2025Q2-base:1.1; locks; strict; comment @// @; 1.1 date 2025.04.28.12.16.35; author hauke; state Exp; branches; next ; commitid VBbDeT0pTAa4AOSF; desc @@ 1.1 log @Qtl866 provides a GUI for the MiniPRO TL866, MiniPRO TL866CS and MiniPRO TL866A programmers. It utilizes the command-line based minipro tool and supports more than 13000 target devices, including AVRs, PICs, various BIOSes and EEPROMs. @ text @$NetBSD$ Get devices list directly from minipro tool From fix: signal and slot name, from --- mainwindow.cpp.orig 2017-04-05 04:34:13.000000000 +0000 +++ mainwindow.cpp @@@@ -45,13 +45,20 @@@@ MainWindow::MainWindow(QWidget *parent) QMainWindow(parent), ui(new Ui::MainWindow) { - unsigned int i; QString selected; QSettings settings; - selected=settings.value("session/seldevice","PIC16F886").toString(); + QString cmd=settings.value("options/command","minipro").toString(); + selected=settings.value("session/seldevice","PIC16F88").toString(); ui->setupUi(this); - for (i=0;idevice->addItem(devnames[i],devnames[i]); + QProcess proc(this); + proc.setReadChannel(QProcess::StandardOutput); + proc.start(cmd, QStringList() << "-l"); + proc.waitForFinished(); + devices=QString(proc.readAllStandardOutput()).split("\n"); + if(devices.empty()){ + QMessageBox::critical(this,tr("Error"),tr("Can't get supported devices from minipro")); + } + ui->device->addItems(devices); ui->device->setCurrentText(selected); ui->filename->setText(settings.value("session/filename","").toString()); ui->useisp->setChecked(settings.value("session/isp",false).toBool()); @@@@ -124,17 +131,17 @@@@ void MainWindow::shellAppend(QString col statusBar()->showMessage(text.split('\n').last()); } -void MainWindow::on_process_stderr() +void MainWindow::onProcessStderr() { shellAppend("red", slave->readAllStandardError()); } -void MainWindow::on_process_stdout() +void MainWindow::onProcessStdout() { shellAppend("black", slave->readAllStandardOutput()); } -void MainWindow::on_process_error(QProcess::ProcessError) +void MainWindow::onProcessError(QProcess::ProcessError) { QProcess *process = qobject_cast(sender()); QMessageBox error(this); @@@@ -147,7 +154,6 @@@@ void MainWindow::on_process_error(QProce void MainWindow::on_exec_clicked() { - unsigned int i; bool found=false; bool reading=true; QSettings settings; @@@@ -163,13 +169,8 @@@@ void MainWindow::on_exec_clicked() } // TODO: detect .hex .srec etc and convert to temporary file on write (or could do this in script) devname=ui->device->currentText(); - for (i=0;icontrols->setEnabled(false); slave=new QProcess(this); connect(slave,SIGNAL(finished(int)),this,SLOT(on_finished(int))); - connect(slave, SIGNAL(error(QProcess::ProcessError)), this, SLOT(on_process_error(QProcess::ProcessError))); - connect(slave, SIGNAL(readyReadStandardOutput()), this, SLOT(on_process_stdout())); - connect(slave, SIGNAL(readyReadStandardError()), this, SLOT(on_process_stderr())); + connect(slave, SIGNAL(errorOccurred(QProcess::ProcessError)), this, SLOT(onProcessError(QProcess::ProcessError))); + connect(slave, SIGNAL(readyReadStandardOutput()), this, SLOT(onProcessStdout())); + connect(slave, SIGNAL(readyReadStandardError()), this, SLOT(onProcessStderr())); qDebug() << "Executing" << cmd << args; slave->start(cmd, args, QProcess::ReadWrite|QProcess::Unbuffered); @