]> Devoid-pointer.net GitWeb - anyanka.git/commitdiff
Fixes for MSVC11 build.
authorMichal Malý <madcatxster@prifuk.cz>
Sun, 17 Nov 2013 10:07:18 +0000 (11:07 +0100)
committerMichal Malý <madcatxster@prifuk.cz>
Sun, 17 Nov 2013 10:07:18 +0000 (11:07 +0100)
Anyanka.pro
agreinterface.cpp
agreinterface.h
datafilesloader.cpp
datamanager.cpp
main.cpp
signal.h
windows_defines.h [new file with mode: 0644]

index 779d7e0f8dc925de35019672696ee97528a393da..d5ec37851322dd2e28cdde1927fc48d920313107 100644 (file)
@@ -16,6 +16,9 @@ unix {
         LIBS += -ldl
         QMAKE_CXXFLAGS += -std=c++11 -Wall
 }
+win32 {
+        SOURCES += windows_defines.h
+}
 
 INCLUDEPATH += libAGRE
 # Add project root directory to work around VC11 include path scheme
@@ -67,7 +70,8 @@ HEADERS  += \
     integrator.h \
     integrationtablemodel.h \
     gui/aboutanyanka.h \
-    globalinfo.h
+    globalinfo.h \
+    windows_defines.h
 
 FORMS += \
     gui/mainwindow.ui \
index b022a9717c3a1f34227cae02a8633feefd1cbab1..eeef5494136c7e7b7b20430c5ef28f1ce52fc226 100644 (file)
@@ -109,12 +109,12 @@ AGREInterface::ReturnCode AGREInterface::initialize()
 
 /* Public methods */
 
-const std::vector<std::string>* AGREInterface::debugAGREInfo()
+const std::vector<std::string>& AGREInterface::debugAGREInfo()
 {
   if (!m_inited)
-    return nullptr;
+    throw std::bad_exception("Reader not initialized");
 
-  return &m_readerIFace->debug_info_list();
+  return m_readerIFace->debug_info_list();
 }
 
 AGREInterface::ReturnCode AGREInterface::readFile(const std::string& fileName, std::shared_ptr<AGRE_MeasurementInfo>& minfo)
index 75d899c9581ca0dc783b7066e57669a2f4a002d4..749ac52825d3c05430f5ebbded9e60b6e088085a 100644 (file)
@@ -42,7 +42,7 @@ public:
     E_CANNOT_READ_FILE
   };
 
-  const std::vector<std::string>* debugAGREInfo();
+  const std::vector<std::string>& debugAGREInfo();
   AGRE_ReturnCode lastAGREError() { AGRE_ReturnCode r = m_lastAGREError; m_lastAGREError = AGRE_ReturnCode::SUCCESS; return r; }
   ReturnCode initialize();
   static AGREInterface* instance();
index 61a9a8864e7339260ba6d2cbc80ad226e7d2a14f..a1645aed61d385308b04a5dac7e90e1f7997e07f 100644 (file)
@@ -50,12 +50,12 @@ DataFilesLoader::ReturnCode DataFilesLoader::loadSingleRun(const QDir& path, std
     } else {
       QString errDesc = errorToString(AGREInterface::instance()->lastAGREError());
       Logger::log(Logger::Level::DEBUG, ME_SENDER_STR, "Error reading file '" + s + "'" + errDesc);
-      const std::vector<std::string>* const dbgMsgs = AGREInterface::instance()->debugAGREInfo();
-      if (dbgMsgs == nullptr)
-        Logger::log(Logger::Level::CRITICAL, ME_SENDER_STR, "Null pointer to debug messages list. This should not happen!\n");
-      else {
-        for (const std::string& s : *dbgMsgs)
+      try {
+        const std::vector<std::string>& dbgMsgs = AGREInterface::instance()->debugAGREInfo();
+        for (const std::string& s : dbgMsgs)
           Logger::log(Logger::Level::INFO, ME_SENDER_STR, QString("AGRE debug:") + QString(s.c_str()));
+      } catch (std::bad_exception& ) {
+        Logger::log(Logger::Level::CRITICAL, ME_SENDER_STR, "Null pointer to debug messages list. This should not happen!\n");
       }
       QMessageBox::warning(nullptr, "Error reading file '" + s + "'", errDesc);
       return ReturnCode::E_READ_ERROR;
index 20e330cde7f62e783f694de8231f38fbae0d2bf0..0482962b6bc3764cd5b4bd12e8f72ee2a2e119d1 100644 (file)
@@ -32,7 +32,7 @@ const char DataManager::UNIT_MICROAMPERES_TEXT[] = {static_cast<char>(0xB5), 0x4
 const char DataManager::UNIT_MILLIAU_TEXT[] = {0x6D, 0x41, 0x55, 0x00};
 const char DataManager::UNIT_MILLIVOLTS_TEXT[] = {0x6D, 0x56, 0x00};
 const char DataManager::UNIT_WATTS_TEXT[] = {0x57, 0x00};
-const QStringList DataManager::DATA_DIR_SUFFIX = { "*.D" };
+const QStringList DataManager::DATA_DIR_SUFFIX = QStringList() << "*.D";
 
 DataManager::DataManager(QObject* parent) :
   QObject(parent),
index bb4b0e3dd20a4616fd3d6964193f269cbafe8b2d..bd8eea995f26d7886ee0ed3755e93ca68a70e4e8 100644 (file)
--- a/main.cpp
+++ b/main.cpp
 #include "logger.h"
 #include <QApplication>
 #include <QtWidgets/QMessageBox>
+#ifdef Q_OS_WIN
+#include "windows_defines.h"
+#endif
 
 int main(int argc, char *argv[])
 {
   QApplication a(argc, argv);
 
+#ifndef COMPILER_MSVC11
 #warning Revisit the metatype shared_ptr<SignalView> registration
+#endif
   qRegisterMetaType<std::shared_ptr<SignalView>>();
 
   Logger::initializeGlobal();
index dded6ce61bd27e8b4a588909427dc1e58495ed8c..3034a7e59b3bcf7e778759daa8fa0a59921aa7ad 100644 (file)
--- a/signal.h
+++ b/signal.h
@@ -23,6 +23,7 @@
 #ifndef SIGNAL_H
 #define SIGNAL_H
 
+#include <cstdint>
 #include <vector>
 #include <QtCore/QObject>
 
diff --git a/windows_defines.h b/windows_defines.h
new file mode 100644 (file)
index 0000000..bb6e1bb
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef WINDOWS_DEFINES_H\r
+#define WINDOWS_DEFINES_H\r
+\r
+#define COMPILER_MSVC11\r
+\r
+#endif // WINDOWS_DEFINES_H\r