swift
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 
11 namespace 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()) { return {}; }
18  if (directoryOptions.size() < 2) { return directoryOptions.first(); }
19 
20  QString selectedDir;
21  do {
22  for (int i = 0; i < directoryOptions.size(); i++)
23  {
24  if (i > 0) { streamOut << " "; }
25  streamOut << (i + 1) << ") " << directoryOptions.at(i);
26  }
27  streamOut << Qt::endl;
28  streamOut << "Select [1-" << directoryOptions.size() << "]: ";
29  streamOut.flush();
30 
31  QString input = streamIn.readLine();
32  bool ok;
33  int s = input.trimmed().toInt(&ok);
34  if (ok && s > 0 && s <= directoryOptions.size())
35  {
36  selectedDir = directoryOptions.at(s - 1);
37  break;
38  }
39  }
40  while (true);
41  return selectedDir;
42  }
43 } // namespace swift::misc
static QString selectDirectory(const QStringList &directoryOptions, QTextStream &streamOut, QTextStream &streamIn)
Select directory among given ones.
Definition: sampleutils.cpp:13
Free functions in swift::misc.