swift
Loading...
Searching...
No Matches
sampleutils.cpp
1// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
4#include "sampleutils.h"
5
6#include <QString>
7#include <QStringList>
8#include <QTextStream>
9#include <QtGlobal>
10
11namespace swift::misc
12{
13 QString CSampleUtils::selectDirectory(const QStringList &directoryOptions, QTextStream &streamOut,
14 QTextStream &streamIn)
15 {
16 Q_ASSERT(!directoryOptions.isEmpty());
17 if (directoryOptions.isEmpty())
18 {
19 return {};
20 }
21 if (directoryOptions.size() < 2)
22 {
23 return directoryOptions.first();
24 }
25
26 QString selectedDir;
27 do
28 {
29 for (int i = 0; i < directoryOptions.size(); i++)
30 {
31 if (i > 0)
32 {
33 streamOut << " ";
34 }
35 streamOut << (i + 1) << ") " << directoryOptions.at(i);
36 }
37 streamOut << Qt::endl;
38 streamOut << "Select [1-" << directoryOptions.size() << "]: ";
39 streamOut.flush();
40
41 QString input = streamIn.readLine();
42 bool ok;
43 int s = input.trimmed().toInt(&ok);
44 if (ok && s > 0 && s <= directoryOptions.size())
45 {
46 selectedDir = directoryOptions.at(s - 1);
47 break;
48 }
49 }
50 while (true);
51 return selectedDir;
52 }
53} // namespace swift::misc
static QString selectDirectory(const QStringList &directoryOptions, QTextStream &streamOut, QTextStream &streamIn)
Select directory among given ones.
Free functions in swift::misc.
QList< T >::const_reference at(qsizetype i) const const
T & first()
bool isEmpty() const const
qsizetype size() const const
int toInt(bool *ok, int base) const const
QString trimmed() const const
QTextStream & endl(QTextStream &stream)
void flush()
QString readLine(qint64 maxlen)