diff --git a/gui/ollie9pclient.cpp b/gui/ollie9pclient.cpp index 383f6b8..9bc6fe7 100644 --- a/gui/ollie9pclient.cpp +++ b/gui/ollie9pclient.cpp @@ -87,13 +87,15 @@ void Ollie9pClient::setActiveSessionId(const QString &id) void Ollie9pClient::refreshSessions() { QByteArray out = run9p({"read", "session/idx"}); - QString raw = QString::fromUtf8(out).trimmed(); - qDebug() << "refreshSessions: output length =" << out.length() << "content:" << raw.left(200); + // Don't trim the whole output — trailing tabs are significant fields + QString raw = QString::fromUtf8(out); m_sessions.clear(); if (!raw.isEmpty()) { - for (const QString &line : raw.split('\n')) { - QStringList parts = line.split('\t'); + for (const QString &line : raw.split('\n', Qt::SkipEmptyParts)) { + QString trimmed = line.trimmed(); + if (trimmed.isEmpty()) continue; + QStringList parts = trimmed.split('\t'); if (parts.size() >= 2) { QVariantMap session; session["id"] = parts[0]; @@ -104,7 +106,6 @@ void Ollie9pClient::refreshSessions() } } } - qDebug() << "refreshSessions: m_sessions count =" << m_sessions.size(); emit sessionsChanged(); // Auto-select first session if none active @@ -540,13 +541,15 @@ void Ollie9pClient::onEventReadyRead() { // eventwait returned the full session index — use it directly QByteArray data = m_eventProc->readAllStandardOutput(); - QString raw = QString::fromUtf8(data).trimmed(); - qDebug() << "onEventReadyRead: data length =" << data.length() << "content:" << raw.left(200); + // Don't trim the whole output — trailing tabs are significant fields + QString raw = QString::fromUtf8(data); m_sessions.clear(); if (!raw.isEmpty()) { - for (const QString &line : raw.split('\n')) { - QStringList parts = line.split('\t'); + for (const QString &line : raw.split('\n', Qt::SkipEmptyParts)) { + QString trimmed = line.trimmed(); + if (trimmed.isEmpty()) continue; + QStringList parts = trimmed.split('\t'); if (parts.size() >= 2) { QVariantMap session; session["id"] = parts[0]; @@ -557,7 +560,6 @@ void Ollie9pClient::onEventReadyRead() } } } - qDebug() << "onEventReadyRead: m_sessions count =" << m_sessions.size(); emit sessionsChanged(); // Auto-select first session if none active