aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui/src/QUtility.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/src/QUtility.cpp')
-rw-r--r--src/gui/src/QUtility.cpp115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/gui/src/QUtility.cpp b/src/gui/src/QUtility.cpp
new file mode 100644
index 0000000..7757adf
--- /dev/null
+++ b/src/gui/src/QUtility.cpp
@@ -0,0 +1,115 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2013-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "QUtility.h"
+
+#include "ProcessorArch.h"
+#include "CommandProcess.h"
+
+#if defined(Q_OS_LINUX)
+#include <QProcess>
+#endif
+
+#if defined(Q_OS_WIN)
+#define WIN32_LEAN_AND_MEAN
+#include <Windows.h>
+#endif
+
+void setIndexFromItemData(QComboBox* comboBox, const QVariant& itemData)
+{
+ for (int i = 0; i < comboBox->count(); ++i)
+ {
+ if (comboBox->itemData(i) == itemData)
+ {
+ comboBox->setCurrentIndex(i);
+ return;
+ }
+ }
+}
+
+QString hash(const QString& string)
+{
+ QByteArray data = string.toUtf8();
+ QByteArray hash = QCryptographicHash::hash(data, QCryptographicHash::Md5);
+ return hash.toHex();
+}
+
+QString getFirstMacAddress()
+{
+ QString mac;
+ foreach (const QNetworkInterface &interface, QNetworkInterface::allInterfaces())
+ {
+ mac = interface.hardwareAddress();
+ if (mac.size() != 0)
+ {
+ break;
+ }
+ }
+ return mac;
+}
+
+qProcessorArch getProcessorArch()
+{
+#if defined(Q_OS_WIN)
+ SYSTEM_INFO systemInfo;
+ GetNativeSystemInfo(&systemInfo);
+
+ switch (systemInfo.wProcessorArchitecture) {
+ case PROCESSOR_ARCHITECTURE_INTEL:
+ return kProcessorArchWin32;
+ case PROCESSOR_ARCHITECTURE_IA64:
+ return kProcessorArchWin64;
+ case PROCESSOR_ARCHITECTURE_AMD64:
+ return kProcessorArchWin64;
+ default:
+ return kProcessorArchUnknown;
+ }
+#endif
+
+#if defined(Q_OS_LINUX)
+#ifdef __i386__
+ return kProcessorArchLinux32;
+#else
+ return kProcessorArchLinux64;
+#endif
+#endif
+
+ return kProcessorArchUnknown;
+}
+
+QString getOSInformation()
+{
+ QString result;
+
+#if defined(Q_OS_LINUX)
+ result = "Linux";
+ try {
+ QStringList arguments;
+ arguments.append("/etc/os-release");
+ CommandProcess cp("/bin/cat", arguments);
+ QString output = cp.run();
+
+ QRegExp resultRegex(".*PRETTY_NAME=\"([^\"]+)\".*");
+ if (resultRegex.exactMatch(output)) {
+ result = resultRegex.cap(1);
+ }
+ } catch (...) {
+ }
+#endif
+
+ return result;
+}