diff --git a/CMakeLists.txt b/CMakeLists.txt
index a84496e59b374c35feb836e34a56becd1b8a04a4..ea7a298c9b7ad5552edf5490892ca3afea94811c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -199,6 +199,13 @@ else()
   set( HAVE_QT5_15 OFF )
 endif()
 
+add_definitions(
+    -DQT_NO_CAST_TO_ASCII
+    -DQT_NO_URL_CAST_FROM_STRING
+    -DQT_NO_KEYWORDS
+    -DQT_NO_FOREACH
+)
+
 #
 # Find optional packages
 #
diff --git a/externals/qtcolorpicker/src/qtcolorpicker.cpp b/externals/qtcolorpicker/src/qtcolorpicker.cpp
index 6ea7167e2baaa7ba91149cd2184aedb59bf8d1a8..a45e78a2d0b97874a02191de0448340555c08374 100644
--- a/externals/qtcolorpicker/src/qtcolorpicker.cpp
+++ b/externals/qtcolorpicker/src/qtcolorpicker.cpp
@@ -145,7 +145,7 @@ class ColorPickerButton : public QFrame
 public:
     ColorPickerButton(QWidget *parent);
 
-signals:
+Q_SIGNALS:
     void clicked();
 
 protected:
@@ -176,11 +176,11 @@ public:
 
     void setSelected(bool);
     bool isSelected() const;
-signals:
+Q_SIGNALS:
     void clicked();
     void selected();
 
-public slots:
+public Q_SLOTS:
     void setColor(const QColor &color, const QString &text = QString());
 
 protected:
@@ -217,14 +217,14 @@ public:
     ColorPickerItem *find(const QColor &col) const;
     QColor color(int index) const;
 
-signals:
+Q_SIGNALS:
     void selected(const QColor &);
     void hid();
 
-public slots:
+public Q_SLOTS:
     void getColorFromDialog();
 
-protected slots:
+protected Q_SLOTS:
     void updateSelected();
 
 protected:
@@ -448,7 +448,7 @@ void QtColorPicker::setCurrentColor(const QColor &color)
     repaint();
 
     item->setSelected(true);
-    emit colorChanged(color);
+    Q_EMIT colorChanged(color);
 }
 
 /*!
@@ -669,7 +669,7 @@ void ColorPickerPopup::updateSelected()
     if (sender() && sender()->inherits("ColorPickerItem")) {
         ColorPickerItem *item = (ColorPickerItem *)sender();
         lastSel = item->color();
-        emit selected(item->color());
+        Q_EMIT selected(item->color());
     }
 
     hide();
@@ -754,7 +754,7 @@ void ColorPickerPopup::keyPressEvent(QKeyEvent *e)
                 }
 
                 lastSel = wi->color();
-                emit selected(wi->color());
+                Q_EMIT selected(wi->color());
                 hide();
             } else if (w && w->inherits("QPushButton")) {
                 ColorPickerItem *wi = reinterpret_cast<ColorPickerItem *>(w);
@@ -774,7 +774,7 @@ void ColorPickerPopup::keyPressEvent(QKeyEvent *e)
                 }
 
                 lastSel = wi->color();
-                emit selected(wi->color());
+                Q_EMIT selected(wi->color());
                 hide();
             }
         }
@@ -801,7 +801,7 @@ void ColorPickerPopup::hideEvent(QHideEvent *e)
 
     setFocus();
 
-    emit hid();
+    Q_EMIT hid();
     QFrame::hideEvent(e);
 }
 
@@ -893,7 +893,7 @@ void ColorPickerPopup::getColorFromDialog()
 
     insertColor(col, tr("Custom"), -1);
     lastSel = col;
-    emit selected(col);
+    Q_EMIT selected(col);
 }
 
 /*!
@@ -979,7 +979,7 @@ void ColorPickerItem::mouseMoveEvent(QMouseEvent *)
 void ColorPickerItem::mouseReleaseEvent(QMouseEvent *)
 {
     sel = true;
-    emit selected();
+    Q_EMIT selected();
 }
 
 /*!
@@ -1047,7 +1047,7 @@ void ColorPickerButton::mouseReleaseEvent(QMouseEvent *)
 {
     setFrameShadow(Raised);
     repaint();
-    emit clicked();
+    Q_EMIT clicked();
 }
 
 /*!
@@ -1081,7 +1081,7 @@ void ColorPickerButton::keyReleaseEvent(QKeyEvent *e)
     } else if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Space || e->key() == Qt::Key_Return) {
         setFrameShadow(Raised);
         repaint();
-        emit clicked();
+        Q_EMIT clicked();
     } else {
         QFrame::keyReleaseEvent(e);
     }
diff --git a/plugins/CriticalPath/CriticalPath.hpp b/plugins/CriticalPath/CriticalPath.hpp
index 26786612dd9dd4d8aa2b7fe0c212e8845ce25abe..714ea2df8d63c8e6381ebd34a7c563608f174a52 100644
--- a/plugins/CriticalPath/CriticalPath.hpp
+++ b/plugins/CriticalPath/CriticalPath.hpp
@@ -70,13 +70,13 @@ private:
      */
     void set_line_edit_defaults( QLineEdit *le, std::string name, std::string def_name );
 
-public slots:
+public Q_SLOTS:
     /*
      * \brief What to do when execute button is clicked
      */
     void execute();
 
-private slots:
+private Q_SLOTS:
     /*
      * \brief Button for openning Dag file, path is then put in correspondant QLineEdit in UI
      */
diff --git a/plugins/Distribution/Distribution.cpp b/plugins/Distribution/Distribution.cpp
index fc3535f4d554110a4ceff08b6c7a449d1f7ae1c9..7a8dc1f0576aee0d152c86df7c20c4b8dec67f02 100644
--- a/plugins/Distribution/Distribution.cpp
+++ b/plugins/Distribution/Distribution.cpp
@@ -487,7 +487,7 @@ public:
         return "Distribution";
     }
 
-public slots:
+public Q_SLOTS:
     void execute() {
         _text_info->clear();
         QString text ("<center><h1> Distribution </h1></center>");
diff --git a/plugins/MatrixVisualizer/MatrixVisualizer.hpp b/plugins/MatrixVisualizer/MatrixVisualizer.hpp
index bc6dad892a7b1de65c00cc396492de4da9a0fbbd..1b7c8fd8306fe49e70f4793895eee6658a66a8f3 100644
--- a/plugins/MatrixVisualizer/MatrixVisualizer.hpp
+++ b/plugins/MatrixVisualizer/MatrixVisualizer.hpp
@@ -36,10 +36,10 @@ private:
     void connect_widgets();
     void set_line_edit_defaults( QLineEdit *le, std::string name, std::string def_name );
 
-public slots:
+public Q_SLOTS:
     void execute();
 
-private slots:
+private Q_SLOTS:
     static void on_tool_button_symbol_clicked();
     static void on_tool_button_order_clicked();
     static void on_tool_button_values_clicked();
diff --git a/plugins/TraceInfos/TraceInfos.hpp b/plugins/TraceInfos/TraceInfos.hpp
index 15bde7101342505ed91f565fcd2f6f0fe15eedb0..172ad551cd6c24658ab0a5b0f4a1c82fbb0711ec 100644
--- a/plugins/TraceInfos/TraceInfos.hpp
+++ b/plugins/TraceInfos/TraceInfos.hpp
@@ -25,7 +25,7 @@ public:
     void set_arguments(std::map<std::string /*argname*/, QVariant */*argValue*/>);
     std::string get_name();
 
-public slots:
+public Q_SLOTS:
     void execute();
 
 };
diff --git a/src/core/Core.cpp b/src/core/Core.cpp
index 1e744598a90ae363e745b5c1c6d7ec868c1f3b23..f86430c4448ea63be5f45afd7a508e914500cb35 100644
--- a/src/core/Core.cpp
+++ b/src/core/Core.cpp
@@ -538,7 +538,7 @@ bool Core::draw_trace(const string & filename, const int format) {
         time_elapsed.start();
         buf_txt.str("");
         bool parsing_finished=false;
-        emit run_parsing();
+        Q_EMIT run_parsing();
 
         while( !parsing_finished && !killed) {
 
@@ -560,11 +560,11 @@ bool Core::draw_trace(const string & filename, const int format) {
 
                 QMutexLocker locker(_mutex);
                 if(format != _STATE_SPLITTING)   {
-                    emit build_finished(true);
+                    Q_EMIT build_finished(true);
                 }
                 else{
 #if defined(USE_ITC) && defined(BOOST_SERIALIZE)
-                    emit dump(Info::Splitter::path, Info::Splitter::filename);
+                    Q_EMIT dump(Info::Splitter::path, Info::Splitter::filename);
 
 #elif defined(USE_ITC)
                     *Message::get_instance() << QObject::tr("Splitting was asked but BOOST_SERIALIZE flag was not set ").toStdString() << Message::ende;
@@ -612,7 +612,7 @@ bool Core::draw_trace(const string & filename, const int format) {
                     *Message::get_instance() << QObject::tr("The trace opening was canceled by the user at ").toStdString() << loaded << "%" << Message::ende;
                     //locks the mutex and automatically unlocks it when going out of scope
 
-                    emit build_finished(true);
+                    Q_EMIT build_finished(true);
                     QMutexLocker locker(_mutex);
                     _closed->wait(_mutex);
                     break; // Quit the loop
@@ -709,7 +709,7 @@ bool Core::draw_trace(const string & filename, const int format) {
     }else{
         // *Message::get_instance() << "Parsing was not finished properly" << Message::ende;
         _is_window_displayed=false;
-        emit close_windows();
+        Q_EMIT close_windows();
         return false;
     }
 }
@@ -840,8 +840,8 @@ void Core::launch_action(int state, void* arg) {
          parser->set_canceled();
          //locks the mutex and automatically unlocks it when going out of scope
          QMutexLocker locker(_mutex);
-         emit build_finished(false);
-         emit close_windows();
+         Q_EMIT build_finished(false);
+         Q_EMIT close_windows();
          while(parser!=NULL)
          _closed->wait(_mutex,100);
          }*/
diff --git a/src/core/Core.hpp b/src/core/Core.hpp
index 3188990df749581ada1355a88f673e6c11d6dc73..91e3fb7d9b2180c0841c1411658d7260b40d53a6 100644
--- a/src/core/Core.hpp
+++ b/src/core/Core.hpp
@@ -521,7 +521,7 @@ public:
     void reload_events();
 
     //Qt signals fo the Parsing Thread
-signals:
+Q_SIGNALS:
 
     /*!
      *\brief run_parsing()
diff --git a/src/interface/Interface_graphic.cpp b/src/interface/Interface_graphic.cpp
index 145795f197acbdea798b80734c7a25c228f49bc4..95024f163f53076326d42100ff56dc2fa73ef991 100644
--- a/src/interface/Interface_graphic.cpp
+++ b/src/interface/Interface_graphic.cpp
@@ -1081,7 +1081,7 @@ void Interface_graphic::dropEvent(QDropEvent *event) {
         return ;
     }
 
-    foreach (QUrl url, event->mimeData()->urls()) {
+    for (QUrl url: event->mimeData()->urls()) {
 #ifdef WIN32
         const QString filename = url.toString().right(url.toString().size()-8);
 #else
diff --git a/src/interface/Interface_graphic.hpp b/src/interface/Interface_graphic.hpp
index 80e6a9961e344d54d7a6cd31721b48fab1724dc8..5bc7eede487dc6489e52d823ba1406e9d44c65fa 100644
--- a/src/interface/Interface_graphic.hpp
+++ b/src/interface/Interface_graphic.hpp
@@ -510,7 +510,7 @@ public:
 
 
 
-protected slots:
+protected Q_SLOTS:
 
 
 
diff --git a/src/interface/Interval_select.cpp b/src/interface/Interval_select.cpp
index 88828501f6e89738fbe374ea89f995de33a6374d..c80ab1ce9ec811442bdcfa0c68a634efd67fba51 100644
--- a/src/interface/Interval_select.cpp
+++ b/src/interface/Interval_select.cpp
@@ -174,7 +174,7 @@ void Interval_select::minSpinBoxValueChanged( double value )
         interval_slider->setLowerValue( int(position) );
         interval_slider->blockSignals(v);
 
-        emit minValueChanged( minSpinBox->value() );
+        Q_EMIT minValueChanged( minSpinBox->value() );
 
         myPalette.setColor(QPalette::Active, QPalette::Text,            Qt::black);
         myPalette.setColor(QPalette::Active, QPalette::HighlightedText, Qt::white);
@@ -209,7 +209,7 @@ void Interval_select::maxSpinBoxValueChanged( double value )
         interval_slider->setLowerValue( int(position) );
         interval_slider->blockSignals(v);
 
-        emit maxValueChanged( maxSpinBox->value() );
+        Q_EMIT maxValueChanged( maxSpinBox->value() );
 
         myPalette.setColor(QPalette::Active, QPalette::Text,            Qt::black);
         myPalette.setColor(QPalette::Active, QPalette::HighlightedText, Qt::white);
@@ -237,7 +237,7 @@ void Interval_select::minSliderValueChanged( int _value )
         bool v = minSpinBox->blockSignals(true);
         minSpinBox->setValue( _value *(_trace->get_max_date() - minSpinBox->minimum())/(interval_slider->maximum() - interval_slider->minimum()));
         minSpinBox->blockSignals(v);
-        emit minValueChanged( minSpinBox->value() );
+        Q_EMIT minValueChanged( minSpinBox->value() );
         if(_auto_refresh)apply_settings();
     }
     _applied = false;
@@ -250,7 +250,7 @@ void Interval_select::maxSliderValueChanged( int _value )
         bool v = maxSpinBox->blockSignals(true);
         maxSpinBox->setValue( _value * (_trace->get_max_date() - maxSpinBox->minimum())/(interval_slider->maximum() - interval_slider->minimum()));
         maxSpinBox->blockSignals(v);
-        emit maxValueChanged( maxSpinBox->value() );
+        Q_EMIT maxValueChanged( maxSpinBox->value() );
         if(_auto_refresh)apply_settings();
     }
     _applied = false;
diff --git a/src/interface/Interval_select.hpp b/src/interface/Interval_select.hpp
index 5e40d3a93117f5fea9792bcb680e9a6a1d2b1e25..75caba550a5775c244297f9a11fddf08393bec6f 100644
--- a/src/interface/Interval_select.hpp
+++ b/src/interface/Interval_select.hpp
@@ -113,23 +113,21 @@ public:
     void update_values();
 
 
- private slots:
-      void minSpinBoxValueChanged( double value );
-      void minSliderValueChanged( int value );
-          void maxSpinBoxValueChanged( double value );
-      void maxSliderValueChanged( int value );
+ private Q_SLOTS:
+    void minSpinBoxValueChanged( double value );
+    void minSliderValueChanged( int value );
+    void maxSpinBoxValueChanged( double value );
+    void maxSliderValueChanged( int value );
 
     void on_ok_button_clicked();
     void on_cancel_button_clicked();
-        void on_reset_button_clicked();
-        void on_apply_button_clicked();
-        void on_auto_refresh_box_stateChanged();
-
-signals:
-      void minValueChanged( double value );
-          void maxValueChanged( double value );
-
+    void on_reset_button_clicked();
+    void on_apply_button_clicked();
+    void on_auto_refresh_box_stateChanged();
 
+Q_SIGNALS:
+    void minValueChanged( double value );
+    void maxValueChanged( double value );
 };
 
 #endif // INTERVAL_SELECT_HPP
diff --git a/src/interface/Node_select.hpp b/src/interface/Node_select.hpp
index 9220a8ea387dae5e4ea04d068823c4477d326f9f..cd283c01aabf0fdc5b01d7f01e66dfe28543ad87 100644
--- a/src/interface/Node_select.hpp
+++ b/src/interface/Node_select.hpp
@@ -183,7 +183,7 @@ private:
 
 
 
-private slots:
+private Q_SLOTS:
 
     void on_reset_button_clicked();
     void on_export_button_clicked();
diff --git a/src/interface/Settings_window.cpp b/src/interface/Settings_window.cpp
index d525f6b1d6faf999d5b1a7656eb4b4ad741bac8b..7f40360f9f372cae6558b248c5fd56d02cb92022 100644
--- a/src/interface/Settings_window.cpp
+++ b/src/interface/Settings_window.cpp
@@ -636,7 +636,7 @@ Settings_window::on_btn_ok_clicked()
 
     if( _changed ) {
         // Catch by at least the interface_graphic which will dispatch it to the classes which needs
-        emit settings_changed();
+        Q_EMIT settings_changed();
 
         _c->launch_action(Core::_STATE_RENDER_UPDATE);
     }
diff --git a/src/interface/Settings_window.hpp b/src/interface/Settings_window.hpp
index 57421d7375b84bea9e8f5a6f96fc96f8d6c55d31..27056bf5ebea7e85bddb4d01f9c86d8269e57804 100644
--- a/src/interface/Settings_window.hpp
+++ b/src/interface/Settings_window.hpp
@@ -107,11 +107,11 @@ private:
     void fill_table( bool used=true );
     void update_table_from_palette(const std::string &);
 
-public slots:
+public Q_SLOTS:
     void on_btn_apply_clicked();
     void on_btn_cancel_clicked();
 
-private slots:
+private Q_SLOTS:
 
     /*!
      * \fn item_changed(int row = -1)
@@ -170,7 +170,7 @@ public:
     void show();
     void refresh();
 
-public slots:
+public Q_SLOTS:
     /*!
      * \fn on_tabWidget_currentChanged(int index)
      * \brief Called when the user changes the tab.
@@ -179,7 +179,7 @@ public slots:
      */
     void on_tabWidget_currentChanged(int index);
 
-private slots:
+private Q_SLOTS:
 
     /*!
      * \fn on_rm_dir_btn_clicked()
@@ -216,7 +216,7 @@ private slots:
     void on_cb_noevents_stateChanged(int state);
     void on_cb_tip_currentIndexChanged(int index);
 
-signals:
+Q_SIGNALS:
     void settings_changed();
 };
 
diff --git a/src/interface/qxtspanslider.cpp b/src/interface/qxtspanslider.cpp
index d1992805191759e5947c9e17bd4889c1c8a32984..c12b36a434b5daf4e224b7a21731f73485487b09 100644
--- a/src/interface/qxtspanslider.cpp
+++ b/src/interface/qxtspanslider.cpp
@@ -81,7 +81,7 @@ void QxtSpanSliderPrivate::handleMousePress(const QPoint& pos, QStyle::SubContro
         offset = pick(pos - sr.topLeft());
         lastPressed = handle;
         p->setSliderDown(true);
-        emit p->sliderPressed(handle);
+        Q_EMIT p->sliderPressed(handle);
     }
     if (control != oldControl)
         p->update(sr);
@@ -459,15 +459,15 @@ void QxtSpanSlider::setSpan(int lower, int upper)
         {
             qxt_d().lower = low;
             qxt_d().lowerPos = low;
-            emit lowerValueChanged(low);
+            Q_EMIT lowerValueChanged(low);
         }
         if (upp != qxt_d().upper)
         {
             qxt_d().upper = upp;
             qxt_d().upperPos = upp;
-            emit upperValueChanged(upp);
+            Q_EMIT upperValueChanged(upp);
         }
-        emit spanChanged(qxt_d().lower, qxt_d().upper);
+        Q_EMIT spanChanged(qxt_d().lower, qxt_d().upper);
         update();
     }
 }
@@ -489,7 +489,7 @@ void QxtSpanSlider::setLowerPosition(int lower)
         if (!hasTracking())
             update();
         if (isSliderDown())
-            emit lowerPositionChanged(lower);
+            Q_EMIT lowerPositionChanged(lower);
         if (hasTracking() && !qxt_d().blockTracking)
         {
             bool main = (qxt_d().mainControl == QxtSpanSlider::LowerHandle);
@@ -515,7 +515,7 @@ void QxtSpanSlider::setUpperPosition(int upper)
         if (!hasTracking())
             update();
         if (isSliderDown())
-            emit upperPositionChanged(upper);
+            Q_EMIT upperPositionChanged(upper);
         if (hasTracking() && !qxt_d().blockTracking)
         {
             bool main = (qxt_d().mainControl == QxtSpanSlider::UpperHandle);
diff --git a/src/interface/viteqtreewidget.cpp b/src/interface/viteqtreewidget.cpp
index e9758d184a8f268a92898fb9f767fbaab4383681..538256a1a20b569f1d1766f5b24b458ea49f7c18 100644
--- a/src/interface/viteqtreewidget.cpp
+++ b/src/interface/viteqtreewidget.cpp
@@ -35,7 +35,7 @@ void viteQTreeWidget::dropEvent(QDropEvent *e){
 
             // this is used to determine if the target is itself a child
           
-                foreach(QTreeWidgetItem* item, selected_items)
+                for(QTreeWidgetItem* item: selected_items)
                 {
 
                     // if target and item don't share the same parent...
@@ -75,7 +75,7 @@ void viteQTreeWidget::dropEvent(QDropEvent *e){
                 initial_count=topLevelItemCount();
                 
                 //we want to insert below the pointed event
-                foreach(QTreeWidgetItem* item, selected_items)
+                for(QTreeWidgetItem* item: selected_items)
                 {
                     //remove all items from their parent
                     
@@ -99,7 +99,7 @@ void viteQTreeWidget::dropEvent(QDropEvent *e){
                 if(target->parent()){
                     if(index+modifier > target->parent()->childCount()){
                         max=target->parent()->childCount();
-                        foreach(QTreeWidgetItem* item, selected_items)
+                        for(QTreeWidgetItem* item: selected_items)
                         {
                             target->parent()->insertChild(max, item);
                             max++;
@@ -111,7 +111,7 @@ void viteQTreeWidget::dropEvent(QDropEvent *e){
                 }else{
                     if(index+modifier > topLevelItemCount()){
                         max=topLevelItemCount();
-                        foreach(QTreeWidgetItem* item, selected_items)
+                        for(QTreeWidgetItem* item: selected_items)
                         {
                             insertTopLevelItem(max, item);
                             max++;
@@ -132,7 +132,7 @@ void viteQTreeWidget::dropEvent(QDropEvent *e){
                 if (count!=initial_count){
                    //prevent loss of elements if insertions failed (can happen sometimes)
                    //try to reinsert all elements at the end
-                    foreach(QTreeWidgetItem* item, selected_items)
+                    for(QTreeWidgetItem* item: selected_items)
                     {
                         if(target->parent())
                             target->parent()->insertChild(target->parent()->childCount(), item);
diff --git a/src/parser/OTFParser/OTFTraceBuilderThread.hpp b/src/parser/OTFParser/OTFTraceBuilderThread.hpp
index c9a47a0f920fcc37ca712e6d06a7c6f9a08be80d..49f080d22eb60ad618964a718183f7c45585f38c 100644
--- a/src/parser/OTFParser/OTFTraceBuilderThread.hpp
+++ b/src/parser/OTFParser/OTFTraceBuilderThread.hpp
@@ -162,7 +162,7 @@ private:
 
 
 
-public slots:
+public Q_SLOTS:
 
   void build_trace(int n, OTF_Trace_builder_struct* tb_struct); 
   void build_finished(); 
diff --git a/src/parser/OTFParser/mt_ParserEventOTF.cpp b/src/parser/OTFParser/mt_ParserEventOTF.cpp
index b8cd8a5273ed47e533a35e673d1e2599a16c9990..d39473e9dba06f068a504d7938ec7025937acb41 100644
--- a/src/parser/OTFParser/mt_ParserEventOTF.cpp
+++ b/src/parser/OTFParser/mt_ParserEventOTF.cpp
@@ -135,7 +135,7 @@ int mt_ParserEventOTF::handler_BeginProcess( void* trace,
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_begin_process;
     _n_read++;
 
-   //emit my_address->signal_handler_begin_process(trace,time,process);
+   //Q_EMIT my_address->signal_handler_begin_process(trace,time,process);
 
     return OTF_RETURN_OK;
 }
@@ -151,7 +151,7 @@ int mt_ParserEventOTF::handler_EndProcess( void* userData,
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_end_process;
     _n_read++;
 
-    //emit my_address->signal_handler_end_process (trace,time, proc_id);
+    //Q_EMIT my_address->signal_handler_end_process (trace,time, proc_id);
     return OTF_RETURN_OK;
 }
 
@@ -169,7 +169,7 @@ int mt_ParserEventOTF::handler_Enter( void* userData,
     _tb_struct[_n_read].process2=proc_id;
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_enter;
     _n_read++;
-  // emit my_address->signal_handler_enter(trace, time, func_id,proc_id,0);
+  // Q_EMIT my_address->signal_handler_enter(trace, time, func_id,proc_id,0);
     return OTF_RETURN_OK;
 }
 
@@ -197,7 +197,7 @@ int mt_ParserEventOTF::handler_Counter( void* userData,
     _tb_struct[_n_read].value=value;
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_counter;
     _n_read++;
-  // emit my_address->signal_handler_counter(trace, time, proc_id,counter_id,value);
+  // Q_EMIT my_address->signal_handler_counter(trace, time, proc_id,counter_id,value);
     return OTF_RETURN_OK;
 }
 
@@ -215,7 +215,7 @@ int mt_ParserEventOTF::handler_DefMarker(void *,
     _tb_struct[_n_read].type=type;
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_defmarker;
     _n_read++;
-   //emit my_address->signal_handler_defmarker(NULL, stream, id,name,type);
+   //Q_EMIT my_address->signal_handler_defmarker(NULL, stream, id,name,type);
     return OTF_RETURN_OK;
 }
 
@@ -234,7 +234,7 @@ int mt_ParserEventOTF::handler_Marker(void *userData,
     _tb_struct[_n_read].text=text;
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_marker;
     _n_read++;
-  // emit my_address->signal_handler_marker(trace, time, proc_id,id,text);
+  // Q_EMIT my_address->signal_handler_marker(trace, time, proc_id,id,text);
     return OTF_RETURN_OK;
 }
 
@@ -259,7 +259,7 @@ int mt_ParserEventOTF::handler_SendMsg( void* userData,
     _tb_struct[_n_read].source=source;
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_send_message;
     _n_read++;
-//emit my_address->signal_handler_send_message(trace, time, sender, receiver, group, type,length, source);
+//Q_EMIT my_address->signal_handler_send_message(trace, time, sender, receiver, group, type,length, source);
     return OTF_RETURN_OK;
 }
 
@@ -283,7 +283,7 @@ int mt_ParserEventOTF::handler_RecvMsg( void* userData,
     _tb_struct[_n_read].source=source;
     _tb_struct[_n_read].func=OTFTraceBuilderThread::handler_receive_message;
     _n_read++;
-//emit my_address->signal_handler_receive_message(trace, time, receiver, sender, group, type,length, source);
+//Q_EMIT my_address->signal_handler_receive_message(trace, time, receiver, sender, group, type,length, source);
     return OTF_RETURN_OK;
 }
 
diff --git a/src/parser/OTFParser/mt_ParserOTF.cpp b/src/parser/OTFParser/mt_ParserOTF.cpp
index 5a1dd8c3e04d9b3b291dd1b82854ce02bef49230..956e354813eecbc85756c9c53bfa99b41e41b524 100644
--- a/src/parser/OTFParser/mt_ParserOTF.cpp
+++ b/src/parser/OTFParser/mt_ParserOTF.cpp
@@ -152,13 +152,13 @@ void mt_ParserOTF::parse(Trace &trace,
             break;
         }
         freeSlots.acquire(); //do not produce too fast (5 blocks max at a time)
-        emit(build_trace(n_read, tb_structs));
+        Q_EMIT build_trace(n_read, tb_structs);
         linesProduced.release();
         tb_structs = new OTF_Trace_builder_struct[n_events];
     }
 
     freeSlots.acquire(); //do not produce too fast (5 blocks max at a time)
-    emit(build_trace(n_read, tb_structs));
+    Q_EMIT build_trace(n_read, tb_structs);
     linesProduced.release();
     //tb_structs= NULL;
 
@@ -168,13 +168,13 @@ void mt_ParserOTF::parse(Trace &trace,
             && (!_is_canceled)) {
 
         freeSlots.acquire(); //do not produce too fast (5 blocks max at a time)
-        emit(build_trace(n_read, tb_structs));
+        Q_EMIT build_trace(n_read, tb_structs);
         linesProduced.release();
         tb_structs= new OTF_Trace_builder_struct[n_events];
     }
 
     freeSlots.acquire(); //do not produce too fast (5 blocks max at a time)
-    emit(build_trace(n_read, tb_structs));
+    Q_EMIT build_trace(n_read, tb_structs);
     linesProduced.release();
 
     finish();
@@ -184,7 +184,7 @@ void mt_ParserOTF::parse(Trace &trace,
     }
 
     QMutexLocker locker(&mutex);
-    emit build_finished();
+    Q_EMIT build_finished();
     ended.wait(&mutex);
     locker.unlock();
     traceThread.quit();
diff --git a/src/parser/OTFParser/mt_ParserOTF.hpp b/src/parser/OTFParser/mt_ParserOTF.hpp
index b38bff5a63751a946c9d0d51a1efa913c8a5fe46..2a452f4e4cb8d0161f0c2d29d6c01a449d550813 100644
--- a/src/parser/OTFParser/mt_ParserOTF.hpp
+++ b/src/parser/OTFParser/mt_ParserOTF.hpp
@@ -108,7 +108,7 @@ public:
      */
     float get_percent_loaded() const;
 
-    signals:
+    Q_SIGNALS:
 	void build_finished();
 	void build_trace(int, OTF_Trace_builder_struct*);
 
diff --git a/src/parser/PajeParser/BuilderThread.cpp b/src/parser/PajeParser/BuilderThread.cpp
index 5870fbe63231474b909d2a23e6de484635c81a8b..1b191fd8e85da1219f87697c965fc6d97d402d31 100644
--- a/src/parser/PajeParser/BuilderThread.cpp
+++ b/src/parser/PajeParser/BuilderThread.cpp
@@ -87,7 +87,7 @@ void BuilderThread::run(int n, PajeLine* line) {
             n_without_errors++;
         free(line[j]._tokens); // release tokens allocated in the PajeFileManager
     }
-    emit(build_trace(n_without_errors, tb_structs));
+    Q_EMIT build_trace(n_without_errors, tb_structs);
     _linesProduced->release();
     free(line);
 }
@@ -98,7 +98,7 @@ void BuilderThread::finish_build() {
     //finish the TraceBuilderThread before closing this one
     //locks the mutex and automatically unlocks it when going out of scope
     QMutexLocker locker2(_mutex2);
-    emit build_finished();
+    Q_EMIT build_finished();
     _trace_cond->wait(_mutex2);
     locker2.unlock();
 
diff --git a/src/parser/PajeParser/BuilderThread.hpp b/src/parser/PajeParser/BuilderThread.hpp
index 782b3d9a6345e22ae59323d51eef4d9ae639b4fc..93d15269e1ae8efcb3dc6e81b35ef6b96e539435 100644
--- a/src/parser/PajeParser/BuilderThread.hpp
+++ b/src/parser/PajeParser/BuilderThread.hpp
@@ -90,7 +90,7 @@ public:
 
     bool is_finished();
 
-public slots:
+public Q_SLOTS:
     void finish_build();
 
     /*!
@@ -99,7 +99,7 @@ public slots:
      */
     void run(int n, PajeLine* line);
 
-signals:
+Q_SIGNALS:
         void build_finished();
         void build_trace(int, Trace_builder_struct*);
 };
diff --git a/src/parser/PajeParser/mt_ParserEventPaje.hpp b/src/parser/PajeParser/mt_ParserEventPaje.hpp
index e56645721fb9614f36f8159a5de06cd2bfd571b3..bde3e2a8d8fab2bf1dfca906a3b1202575263f27 100644
--- a/src/parser/PajeParser/mt_ParserEventPaje.hpp
+++ b/src/parser/PajeParser/mt_ParserEventPaje.hpp
@@ -108,7 +108,7 @@ public:
     int store_event(const PajeLine_t *line, Trace &trace, Trace_builder_struct* tb_struct);
     
       
-signals:
+Q_SIGNALS:
     void build_trace(int n, Trace_builder_struct* tb_struct);  
   };  
     
diff --git a/src/parser/PajeParser/mt_ParserPaje.cpp b/src/parser/PajeParser/mt_ParserPaje.cpp
index 222ce6336e2566e973096a2a1ce599ab17957c3a..2e4f24be65f247dde4a91de2638fd52fd61e7d24 100644
--- a/src/parser/PajeParser/mt_ParserPaje.cpp
+++ b/src/parser/PajeParser/mt_ParserPaje.cpp
@@ -228,7 +228,7 @@ void mt_ParserPaje::parse(Trace &trace,
                 if(i==10000){//we finished to build a block, send it to the BuilderThread
 
                     linesProduced.acquire();
-                    emit produced(i, line);
+                    Q_EMIT produced(i, line);
                     i=0;
                     line=(PajeLine*)calloc(10000,sizeof(PajeLine));
 
@@ -245,14 +245,14 @@ void mt_ParserPaje::parse(Trace &trace,
             }
         }
         //send the last batch
-        emit produced(i, line);
+        Q_EMIT produced(i, line);
         line = NULL;
 
         //send the finish signal to the BuilderThread, which will do the same to the TraceBuilderThread
         //both threads will then be finished and ready to destroy
         //locks the mutex and automatically unlocks it when going out of scope
         QMutexLocker locker(&mutex);
-        emit build_finish();
+        Q_EMIT build_finish();
         ended.wait(&mutex);
         locker.unlock();
 
diff --git a/src/parser/PajeParser/mt_ParserPaje.hpp b/src/parser/PajeParser/mt_ParserPaje.hpp
index a5f3c70c55b6c56efbadd5174f30fe7adc2b359c..916ed05c844f08f77e9b6b0b94ea12bb8506b42b 100644
--- a/src/parser/PajeParser/mt_ParserPaje.hpp
+++ b/src/parser/PajeParser/mt_ParserPaje.hpp
@@ -103,7 +103,7 @@ public:
     float get_percent_loaded() const override;
 
 
-	signals:
+	Q_SIGNALS:
     void produced(int i, PajeLine* line);
 	void build_finish();
 
diff --git a/src/parser/ParserSplitted.hpp b/src/parser/ParserSplitted.hpp
index 74c97a689ab8048ca50ec380bdeadcfa42536edc..df67986c1644b059fbb879038617429f8e3a672b 100644
--- a/src/parser/ParserSplitted.hpp
+++ b/src/parser/ParserSplitted.hpp
@@ -104,7 +104,7 @@ public:
      */
     ParserDefinitionPaje *get_parser_def() const;
 
-signals:
+Q_SIGNALS:
     void produced(int i, PajeLine* line);
     void build_finish();
 };
diff --git a/src/parser/ParsingThread.hpp b/src/parser/ParsingThread.hpp
index 5e5bdf67ee56661ce9459feb72197910ef0149f4..da10892fc0bc737a398f13f5a2651ab237c88613 100644
--- a/src/parser/ParsingThread.hpp
+++ b/src/parser/ParsingThread.hpp
@@ -90,7 +90,7 @@ public:
      */
     bool is_killed();
     
-protected slots:
+protected Q_SLOTS:
     /*!
      *  \fn run()
      *  \brief run the thread.
diff --git a/src/plugin/Command_window.hpp b/src/plugin/Command_window.hpp
index 56a67df767bccc0ae28ddf68e0ada706168aa1f8..61a0fa577be7646745d8ace45916c33417b154fb 100644
--- a/src/plugin/Command_window.hpp
+++ b/src/plugin/Command_window.hpp
@@ -85,7 +85,7 @@ public :
     void init_window();
     void set_trace(Trace * t);
 
-private slots :
+private Q_SLOTS:
     void on_execute_button_clicked();
 };
 
diff --git a/src/plugin/Plugin_window.hpp b/src/plugin/Plugin_window.hpp
index 23823dcf033499c1797b25bd246e636791faf353..a3a4e87fd74b6f7ca862f8914457d4c7f92e6bb7 100644
--- a/src/plugin/Plugin_window.hpp
+++ b/src/plugin/Plugin_window.hpp
@@ -141,7 +141,7 @@ private:
      */
    void add_plugin(Plugin *plug);
 
-public slots:
+public Q_SLOTS:
     /*!
      * \fn reload_plugin(int index)
      * \brief Reload the trace of the index-th plugin
diff --git a/src/render/opengl/Render_opengl.hpp b/src/render/opengl/Render_opengl.hpp
index d824345aeb1bb68f7772162c5f2436557d64bcc7..08f854cee9b9cc03a72790066f6a88d9b7d50ca2 100644
--- a/src/render/opengl/Render_opengl.hpp
+++ b/src/render/opengl/Render_opengl.hpp
@@ -427,7 +427,7 @@ public:
     //    void set_vertical_line(int l){}
     //  void draw_vertical_line();
 
-public slots:
+public Q_SLOTS:
     /*!
      * \brief slot connected to the simple click event
      */
diff --git a/src/render/vbo/Render_alternate.hpp b/src/render/vbo/Render_alternate.hpp
index 3142cb10567aa03575b791ebabe147aa34d2ac18..37a434ae3bc16dda4060442b74387b25e7d8745b 100644
--- a/src/render/vbo/Render_alternate.hpp
+++ b/src/render/vbo/Render_alternate.hpp
@@ -566,7 +566,7 @@ public:
     void update_ev_couple( EntityValue *ev,
                            std::map<EntityValue*, std::pair<Vbo*, Vbo*> > *evmap,
                            bool shaded );
-public slots:
+public Q_SLOTS:
     /*!
      * \brief slot connected to the simple click event
      */
diff --git a/src/statistics/ChartView.cpp b/src/statistics/ChartView.cpp
index 22ee2399d030948b416b3d72772c46e2ce51b311..9277039ee52c905675c7e67a4ebaf4091c326af6 100644
--- a/src/statistics/ChartView.cpp
+++ b/src/statistics/ChartView.cpp
@@ -138,5 +138,5 @@ void Chart_View::on_y_scroll_changed(int x) {
 }
 
 void Chart_View::focusInEvent(QFocusEvent* event) {
-	emit chart_focused();
+	Q_EMIT chart_focused();
 }
diff --git a/src/statistics/ChartView.hpp b/src/statistics/ChartView.hpp
index f70ecb6b1738ed5cbf16833294ccca870b2e1643..e641b63e8a5ebc7b40b775b28efcdf763a215f5f 100644
--- a/src/statistics/ChartView.hpp
+++ b/src/statistics/ChartView.hpp
@@ -32,7 +32,7 @@ public:
 
     void reset_scroll_zoom();
 
-signals:
+Q_SIGNALS:
     void chart_focused();
 
 protected:
@@ -41,7 +41,7 @@ protected:
     void wheelEvent(QWheelEvent* event);
     void mousePressEvent(QMouseEvent *event);
     void mouseMoveEvent(QMouseEvent *event);
-public slots:
+public Q_SLOTS:
     void on_x_scroll_changed(int x);
     void on_y_scroll_changed(int x);
 };
\ No newline at end of file
diff --git a/src/statistics/Statistics_window.hpp b/src/statistics/Statistics_window.hpp
index 3c5895899aadbbaf65eca9af77e07cfb5238ef8b..7cae53c1c7cfa6320f82f29b257e743d2b416343 100644
--- a/src/statistics/Statistics_window.hpp
+++ b/src/statistics/Statistics_window.hpp
@@ -160,10 +160,10 @@ private:
     */
     void set_selected_nodes(const std::string &);
 
-public slots:
+public Q_SLOTS:
     void auto_update_stats();
 
-private slots:
+private Q_SLOTS:
     void on_auto_reload_box_stateChanged(int);
     void on_want_stacked_stateChanged(int);
 
diff --git a/src/trace/Container.hpp b/src/trace/Container.hpp
index 56c9cdbc3415be6305c2df52794426f385ae0dbc..c0ef590c877ea32e5bd5fdf7c02ea66d4099c466 100644
--- a/src/trace/Container.hpp
+++ b/src/trace/Container.hpp
@@ -432,7 +432,7 @@ public:
      */
     int get_depth();
     //#if defined(USE_ITC) && defined(BOOST_SERIALIZE)
-    //       signals:
+    //       Q_SIGNALS:
     //
     //     void dump_on_disk(IntervalOfContainer*,const  char*);
     //     void build_finish();
diff --git a/src/trace/EntityValue.cpp b/src/trace/EntityValue.cpp
index 45e741fd5e093bc1ff448c12347ffb4899e5c190..0da6227ca1f3631427d0a5ed18fee7ece9a0ac0a 100644
--- a/src/trace/EntityValue.cpp
+++ b/src/trace/EntityValue.cpp
@@ -182,7 +182,7 @@ EntityValue::set_used_color(Color *c)
     }
     _usedcolor = c;
 
-    emit changedColor( this );
+    Q_EMIT changedColor( this );
 }
 
 void
@@ -190,7 +190,7 @@ EntityValue::set_visible(bool b)
 {
     if ( _visible != b ) {
         _visible = b;
-        emit changedVisible( this );
+        Q_EMIT changedVisible( this );
     }
 }
 
diff --git a/src/trace/EntityValue.hpp b/src/trace/EntityValue.hpp
index 1fba366df5e136027441f5ea8fb442940389d484..add711e3ae0744b921f53c82830b856d84465953 100644
--- a/src/trace/EntityValue.hpp
+++ b/src/trace/EntityValue.hpp
@@ -111,7 +111,7 @@ public:
 
     void reload_file_color();
 
-signals:
+Q_SIGNALS:
     void changedColor( EntityValue * );
     void changedVisible( EntityValue * );
 };
diff --git a/src/trace/SerializerDispatcher.cpp b/src/trace/SerializerDispatcher.cpp
index 70cf178eee9c510f758191b2ca2d2abac4754e67..73aeecd5930f3d08eab470320a269c1d39f9fdaa 100644
--- a/src/trace/SerializerDispatcher.cpp
+++ b/src/trace/SerializerDispatcher.cpp
@@ -80,7 +80,7 @@ void SerializerDispatcher::kill_all_threads(){
                         SLOT(finish_build()));
                 //locks the mutex and automatically unlocks it when going out of scope
                                 QMutexLocker locker(_mutex);
-                emit build_finish();
+                Q_EMIT build_finish();
                 QWaitCondition* _cond=_evt_array[i].get_cond();
                 _cond->wait(_mutex);
                 locker.unlock();
@@ -120,7 +120,7 @@ void SerializerDispatcher::dump(IntervalOfContainer* itc, char* name){
 
     }
     itc->_loaded=false;
-    emit dump_on_disk(itc, name);
+    Q_EMIT dump_on_disk(itc, name);
     _evt_array[_previous_call].get_sem_free()->release();
 }
 
@@ -152,7 +152,7 @@ void SerializerDispatcher::load(IntervalOfContainer* itc, char* name){
 
     }
     itc->_loaded=true;
-    emit load_data(itc, name);
+    Q_EMIT load_data(itc, name);
     _evt_array[_previous_call].get_sem_free()->release();
 }
 
diff --git a/src/trace/SerializerDispatcher.hpp b/src/trace/SerializerDispatcher.hpp
index e4556b2c0d1c4e529fa79df47490c9e6a8c0a6e5..c7d68a0c14d9469a120a5d70269179d6cb9fc87a 100644
--- a/src/trace/SerializerDispatcher.hpp
+++ b/src/trace/SerializerDispatcher.hpp
@@ -78,7 +78,7 @@ public:
      //dump an itc, after choosing a free thread to use
      void dump(IntervalOfContainer* itc, char* );
      void load(IntervalOfContainer*, char*);
-     signals:
+     Q_SIGNALS:
      void load_data(IntervalOfContainer*, char*);
      void dump_on_disk(IntervalOfContainer*, char*);
      void build_finish();
diff --git a/src/trace/SerializerWriter.hpp b/src/trace/SerializerWriter.hpp
index 5b3292a3a6202c7ae9853f2c3ce5fba5b691fc88..607e9b232ea6c5123f990bb9270a3553518430ff 100644
--- a/src/trace/SerializerWriter.hpp
+++ b/src/trace/SerializerWriter.hpp
@@ -84,7 +84,7 @@ public:
 
         QThread* get_thread();
 
-public slots:
+public Q_SLOTS:
 
         void dump_on_disk(IntervalOfContainer* itc, char* filename);
 
diff --git a/src/trace/TraceBuilderThread.hpp b/src/trace/TraceBuilderThread.hpp
index 4b24844a489212f882ef6a6281ac1370081cae45..6c72c4087763fb1b9fc494077620cc21c01c7e6e 100644
--- a/src/trace/TraceBuilderThread.hpp
+++ b/src/trace/TraceBuilderThread.hpp
@@ -90,7 +90,7 @@ public:
     static void end_link(Trace_builder_struct* tb_struct);
 
 
-  public slots:
+  public Q_SLOTS:
   void build_trace(int n, Trace_builder_struct* tb_struct);
   void build_finished();
   bool is_finished();
diff --git a/tests/generator/GeneratorWindow.hpp b/tests/generator/GeneratorWindow.hpp
index 540193c8a79b93e1d78e6536f1b229def3003ad8..21c5df23e43ce9b83a605de17838cf5e29225540 100644
--- a/tests/generator/GeneratorWindow.hpp
+++ b/tests/generator/GeneratorWindow.hpp
@@ -102,7 +102,7 @@ public :
     void cleanParam ();
     int run ();
 
-protected slots :
+protected Q_SLOTS:
     void generateButton_clicked ();
     void resetButton_clicked    ();
 
diff --git a/tests/plugin/Plug1.cpp b/tests/plugin/Plug1.cpp
index e9cefe7903632ca93d12ac65dba2d38011977ddc..509f983cbce37857b5cb26898bd06f7ec8d4019c 100644
--- a/tests/plugin/Plug1.cpp
+++ b/tests/plugin/Plug1.cpp
@@ -6,7 +6,7 @@ public:
     void set_arguments(std::map<std::string /*argname*/, QVariant */*argValue*/>) {}
     std::string get_name() { return "Plug1"; }
 
-public slots:
+public Q_SLOTS:
     void execute() { printf("Plug1 : exec\n"); }
 };
 
diff --git a/tests/plugin/Plug2.cpp b/tests/plugin/Plug2.cpp
index afef088861776bfb7ca5ff8615323be00531c541..3a5600abde878dadbacef5954fa2e71572600555 100644
--- a/tests/plugin/Plug2.cpp
+++ b/tests/plugin/Plug2.cpp
@@ -7,7 +7,7 @@ public:
 
     std::string get_name() { return "Plug2"; }
 
-public slots:
+public Q_SLOTS:
     void execute() { printf("Plug2 : exec\n"); }
 };
 
diff --git a/tests/plugin/Plug3.hpp b/tests/plugin/Plug3.hpp
index b39b359bba8b1aaf5cc8dfe27534cc1740582471..7ac3d41b896342076bfb353419a6bc3d9be601e0 100644
--- a/tests/plugin/Plug3.hpp
+++ b/tests/plugin/Plug3.hpp
@@ -10,7 +10,7 @@ public:
 
     std::string get_name() { return "Plug3"; }
 
-public slots:
+public Q_SLOTS:
     void execute() { printf("Plug3 : exec\n"); }
 };
 
diff --git a/tests/plugin/PluginWindow.hpp b/tests/plugin/PluginWindow.hpp
index 20f783f34d50d15cd172d9bc53c8b458adbf145a..c757a5834ee0d344def364baff4969d335c0ab02 100644
--- a/tests/plugin/PluginWindow.hpp
+++ b/tests/plugin/PluginWindow.hpp
@@ -28,7 +28,7 @@ private:
     void load_shared_plugins();
     void add_plugin(Plugin *plug);
 
-public slots:
+public Q_SLOTS:
     void init_plugin(int index);
     void execute_plugin();
 };