Index: trunk/BNC/src/rinex/graphwin.cpp
===================================================================
--- trunk/BNC/src/rinex/graphwin.cpp	(revision 8564)
+++ trunk/BNC/src/rinex/graphwin.cpp	(revision 8566)
@@ -55,7 +55,8 @@
 // Constructor
 ////////////////////////////////////////////////////////////////////////////
-t_graphWin::t_graphWin(QWidget* parent, const QString& fileName,
-                       const QVector<QWidget*>& plots, const QByteArray* scaleTitle,
-                       const QwtInterval* scaleInterval, bool specialLayout) :  QDialog(parent) {
+t_graphWin::t_graphWin(QWidget* parent, const QString& fileName, const QVector<QWidget*>& plots,
+                       bool specialLayout, const QByteArray* scaleTitle,
+                       const QwtInterval* scaleInterval,
+                       const QVector<int>* rows) : QDialog(parent) {
 
   _fileName = fileName;
@@ -66,5 +67,4 @@
 
   int ww = QFontMetrics(font()).width('w');
-  setMinimumSize(plots.size()*40*ww, 40*ww);
 
   // Buttons
@@ -115,11 +115,22 @@
   }
   else {
-    QHBoxLayout* plotLayout = new QHBoxLayout(_canvas);
+    int iRow = -1;
+    QVBoxLayout* plotLayout = new QVBoxLayout(_canvas);
+    QHBoxLayout* rowLayout  = new QHBoxLayout();
     for (int ip = 0; ip < plots.size(); ip++) {
-      plotLayout->addWidget(plots[ip]);
+      if (rows) {
+        if (iRow != -1 && iRow != rows->at(ip)) {
+          plotLayout->addLayout(rowLayout);
+          rowLayout = new QHBoxLayout();
+        }
+        iRow = rows->at(ip);
+      }
+      plots[ip]->setMinimumSize(30*ww, 30*ww);
+      rowLayout->addWidget(plots[ip]);
     }
     if (_colorScale) {
-      plotLayout->addWidget(_colorScale);
+      rowLayout->addWidget(_colorScale);
     }
+    plotLayout->addLayout(rowLayout);
   }
 
Index: trunk/BNC/src/rinex/graphwin.h
===================================================================
--- trunk/BNC/src/rinex/graphwin.h	(revision 8564)
+++ trunk/BNC/src/rinex/graphwin.h	(revision 8566)
@@ -55,7 +55,7 @@
 
  public:
-  t_graphWin(QWidget* parent, const QString& fileName,
-             const QVector<QWidget*>& plots, const QByteArray* scaleTitle,
-             const QwtInterval* scaleInterval, bool specialLayout);
+  t_graphWin(QWidget* parent, const QString& fileName, const QVector<QWidget*>& plots,
+             bool specialLayout, const QByteArray* scaleTitle = 0,
+             const QwtInterval* scaleInterval = 0, const QVector<int>* rows = 0);
   ~t_graphWin();
 
Index: trunk/BNC/src/rinex/reqcanalyze.cpp
===================================================================
--- trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 8564)
+++ trunk/BNC/src/rinex/reqcanalyze.cpp	(revision 8566)
@@ -547,8 +547,10 @@
       it1 != _signalTypes.end(); it1++) {
 
+    char sys = it1.key();
+
     for (int ii = 0; ii < it1.value().size(); ii++) {
 
-      skyPlotDataMP.append(t_skyPlotData());  t_skyPlotData& dataMP = skyPlotDataMP.last();
-      skyPlotDataSN.append(t_skyPlotData());  t_skyPlotData& dataSN = skyPlotDataSN.last();
+      skyPlotDataMP.append(t_skyPlotData(sys));  t_skyPlotData& dataMP = skyPlotDataMP.last();
+      skyPlotDataSN.append(t_skyPlotData(sys));  t_skyPlotData& dataSN = skyPlotDataSN.last();
 
       dataMP._title = "Multipath\n"             + QString(it1.key()) + ":" + it1.value()[ii] + " ";
@@ -611,5 +613,8 @@
 
     QVector<QWidget*> plots;
+    QVector<int>      rows;
     QMutableVectorIterator<t_skyPlotData> it(skyPlotData);
+    int iRow = 0;
+    char sys = ' ';
     while (it.hasNext()) {
       t_skyPlotData&          plotData = it.next();
@@ -620,8 +625,13 @@
       plot->addCurve(data);
       plots << plot;
-    }
-
-    t_graphWin* graphWin = new t_graphWin(0, fileName, plots,
-                                          &scaleTitle, &scaleInterval, false);
+      if (sys != ' ' && sys != plotData._sys) {
+        iRow += 1;
+      }
+      sys = plotData._sys;
+      rows  << iRow;
+    }
+
+    t_graphWin* graphWin = new t_graphWin(0, fileName, plots, false,
+                                          &scaleTitle, &scaleInterval, &rows);
 
     graphWin->show();
@@ -699,5 +709,5 @@
     QVector<QWidget*> plots;
     plots << plotA << plotZ << plotD;
-    t_graphWin* graphWin = new t_graphWin(0, fileName, plots, 0, 0, true);
+    t_graphWin* graphWin = new t_graphWin(0, fileName, plots, true);
 
     int ww = QFontMetrics(graphWin->font()).width('w');
Index: trunk/BNC/src/rinex/reqcanalyze.h
===================================================================
--- trunk/BNC/src/rinex/reqcanalyze.h	(revision 8564)
+++ trunk/BNC/src/rinex/reqcanalyze.h	(revision 8566)
@@ -60,7 +60,13 @@
    public:
     t_skyPlotData() {
+      _sys  = ' ';
       _data = new QVector<t_polarPoint*>;
     }
+    t_skyPlotData(char sys) {
+      _sys  = sys;
+      _data = new QVector<t_polarPoint*>;
+    }
     ~t_skyPlotData() {}
+    char                    _sys;
     QString                 _title;
     QVector<t_polarPoint*>* _data;
