Got entirely rid of global variables

remotes/origin/HEAD
markuspg 6 years ago
parent 9704e65a06
commit d663ec6aeb

@ -18,14 +18,13 @@
*/
#include "clientpinger.h"
#include "lablib.h"
#include "settings.h"
#include <memory>
extern std::unique_ptr<lc::Settings> settings;
extern std::unique_ptr<lc::Lablib> lablib;
#include <QMessageBox>
#include <QTimer>
lc::Client::Client(const QString &argIP, const QString &argMAC, const QString &argName,
const Settings *const argSettings,
const unsigned short int argXPosition,
const unsigned short int argYPosition,
const QString &argPingCmd):
@ -34,7 +33,8 @@ lc::Client::Client(const QString &argIP, const QString &argMAC, const QString &a
name{argName},
xPosition{argXPosition},
yPosition{argYPosition},
protectedCycles{0}
protectedCycles{0},
settings{argSettings}
{
qRegisterMetaType<state_t>("state_t");

@ -29,6 +29,7 @@ class QTimer;
namespace lc {
class ClientPinger;
class Settings;
//! Class which represents the clients in the lab
/*!
@ -58,6 +59,7 @@ public:
* \param argYPosition The client's y coordinate in the lab's grid
*/
Client(const QString &argIP, const QString &argMAC, const QString &argName,
const Settings *const argSettings,
const unsigned short int argXPosition,
const unsigned short int argYPosition,
const QString &argPingCmd);
@ -148,6 +150,7 @@ private:
unsigned short int protectedCycles;
ClientPinger *pinger = nullptr;
QThread pingerThread;
const Settings *const settings = nullptr;
state_t state = state_t::UNINITIALIZED;
//! QTimer used to trigger pings by pinger's ClientPinger instance
QTimer *pingTimer = nullptr;

@ -26,8 +26,6 @@
#include <QTcpServer>
#include <QTcpSocket>
#include <memory>
lc::ClientHelpNotificationServer::ClientHelpNotificationServer(const Settings *const argSettings,
QObject *argParent) :
QObject{argParent},

@ -21,7 +21,6 @@
#define LABLIB_H
#include <list>
#include <memory>
#include <QDir>
#include <QItemSelectionModel>
@ -130,7 +129,7 @@ private:
QThread netstatThread;
//! A timer for regular execution of the NetstatAgent instance's request mechanism
QTimer *netstatTimer = nullptr;
QVector< quint16 > occupiedPorts;
QVector<quint16> occupiedPorts;
//! A derivation from QAbstractTableModel used to store the single Session instances
SessionsModel *sessionsModel = nullptr;
Settings *const settings = nullptr;

@ -17,8 +17,6 @@
* along with Labcontrol. If not, see <http://www.gnu.org/licenses/>.
*/
#include <memory>
#include <QDebug>
#include "receipts_handler.h"

@ -22,8 +22,6 @@
#include <QDir>
#include <memory>
lc::Session::Session(QVector<Client *> &&argAssocClients,
const QString &argZTreeDataTargetPath, const quint16 argZTreePort,
const QString &argZTreeVersionPath, bool argPrintReceiptsForLocalClients,

@ -134,12 +134,12 @@ lc::Settings::Settings(const QSettings &argSettings, QObject *argParent) :
installedZTreeVersions{DetectInstalledzTreeVersions()},
clientHelpNotificationServerPort{GetClientHelpNotificationServerPort(argSettings)},
chosenzTreePort{GetInitialPort(argSettings)},
clients{CreateClients(argSettings, pingCmd)},
localzLeafName{ReadSettingsItem("local_zLeaf_name",
"The local zLeaf default name will default to 'local'.",
argSettings, false)},
clIPsToClMap{CreateClIPsToClMap(clients)}
argSettings, false)}
{
clients = CreateClients(argSettings, pingCmd);
clIPsToClMap = CreateClIPsToClMap(clients);
// Let the local zLeaf name default to 'local' if none was given in the settings
if (localzLeafName.isEmpty()) {
qDebug() << "'local_zLeaf_name' was not set, defaulting to 'local'";
@ -241,9 +241,11 @@ QVector<lc::Client *> lc::Settings::CreateClients(const QSettings &argSettings,
qDebug() << "clientYPositions:" << clientYPositions.join(" / ");
for (int i = 0; i < clientQuantity; i++) {
tempClientVec.append(new Client{clientIPs[i], clientMACs[i], clientNames[i],
tempClientVec.append(new Client{clientIPs[i], clientMACs[i],
clientNames[i], this,
clientXPositions[i].toUShort(),
clientYPositions[i].toUShort(), argPingCmd});
clientYPositions[i].toUShort(),
argPingCmd});
}
return tempClientVec;

@ -103,8 +103,8 @@ private:
static bool CheckPathAndComplain(const QString &argPath,
const QString &argVariableName,
const QString &argMessage);
static QVector<Client *> CreateClients(const QSettings &argSettings,
const QString &argPingCmd);
QVector<Client *> CreateClients(const QSettings &argSettings,
const QString &argPingCmd);
static QMap<QString, Client *> CreateClIPsToClMap(const QVector<Client *> &argClients);
QStringList DetectInstalledLaTeXHeaders() const;
QStringList DetectInstalledzTreeVersions() const;
@ -119,11 +119,11 @@ private:
bool argItemIsFile);
int chosenzTreePort = 0;
QVector< Client * > clients;
QVector<Client *> clients;
QString localzLeafName;
public:
const QMap<QString, Client *> clIPsToClMap;
QMap<QString, Client *> clIPsToClMap;
};
} // namespace lc

@ -23,8 +23,6 @@
#include <QDebug>
#include <QDir>
#include <memory>
lc::ZTree::ZTree(const Settings *const argSettings,
const QString &argZTreeDataTargetPath, const int argZTreePort,
const QString &argZTreeVersionPath, QObject *argParent) :

@ -23,8 +23,6 @@
#include <QMessageBox>
#include <memory>
lc::LocalzLeafStarter::LocalzLeafStarter(Settings *const argSettings,
QWidget *argParent) :
QWidget{argParent},

@ -22,16 +22,11 @@
#include <QApplication>
#include <memory>
std::unique_ptr<lc::Settings> settings;
int main(int argc, char *argv[])
{
QApplication a{argc, argv};
settings = std::make_unique<lc::Settings>(QSettings{"Labcontrol",
"Labcontrol"});
lc::MainWindow w{settings.get()};
lc::Settings settings{QSettings{"Labcontrol", "Labcontrol"}};
lc::MainWindow w{&settings};
w.show();
return a.exec();

@ -24,8 +24,6 @@
#include <QFileDialog>
#include <QMessageBox>
#include <memory>
lc::ManualPrintingSetup::ManualPrintingSetup(const Settings *const argSettings,
QWidget *argParent) :
QWidget{argParent},

Loading…
Cancel
Save