Exemple #1
0
MainWindow::MainWindow( QWidget *parent ):
    QMainWindow( parent )
{
    d_plot = new Plot( this );
    setCentralWidget( d_plot );

    QToolBar *toolBar = new QToolBar( this );

    QComboBox *typeBox = new QComboBox( toolBar );
    typeBox->addItem( "Bars" );
    typeBox->addItem( "CandleSticks" );
    typeBox->setCurrentIndex( 1 );
    typeBox->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );

    QToolButton *btnExport = new QToolButton( toolBar );
    btnExport->setText( "Export" );
    btnExport->setToolButtonStyle( Qt::ToolButtonTextUnderIcon );
    connect( btnExport, SIGNAL( clicked() ), d_plot, SLOT( exportPlot() ) );

    toolBar->addWidget( typeBox );
    toolBar->addWidget( btnExport );
    addToolBar( toolBar );

    d_plot->setMode( typeBox->currentIndex() );
    connect( typeBox, SIGNAL( currentIndexChanged( int ) ),
        d_plot, SLOT( setMode( int ) ) );
}
FlightController::FlightController(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::FlightController), mm(NULL)
{
    ui->setupUi(this);
    ui->mainPanel->setCurrentIndex(0);
    connect(ui->ClearButton, SIGNAL(clicked()), ui->LogViewport, SLOT(clearButtonClick()));
    connect(ui->CopyAllButton, SIGNAL(clicked()), ui->LogViewport, SLOT(copyAllButtonClick()));
    connect(ui->RedButton, SIGNAL(toggled(bool)), this, SLOT(redButtonToggle(bool)));
    connect(ui->BootloaderButton, SIGNAL(clicked()), this, SLOT(bootloaderButtonClick()));
    connect(ui->MatrixMonitorButton, SIGNAL(clicked()), this, SLOT(matrixMonitorButtonClick()));
    connect(ui->statusRequestButton, SIGNAL(clicked()), this, SLOT(statusRequestButtonClick()));
    DeviceInterface &di = Singleton<DeviceInterface>::instance();
    di.setLogger(ui->LogViewport);
    di.start();
    connect(this, SIGNAL(sendCommand(uint8_t,uint8_t)), &di, SLOT(sendCommand(uint8_t, uint8_t)));
    ui->ColumnMapping->setLayout(new QHBoxLayout());
    for (uint8_t i = 0; i<16; i++)
    {
        QComboBox *b = new QComboBox();
        b->addItem(0, "Skip");
        b->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
        b->sizeHint().setWidth(0);
        ui->ColumnMapping->layout()->addWidget(b);
        columns[i] = b;
    }

    ui->RowMapping->setLayout(new QGridLayout());
}
Exemple #3
0
//! [10]
QComboBox *Window::createComboBox(const QString &text) {
  QComboBox *comboBox = new QComboBox;
  comboBox->setEditable(true);
  comboBox->addItem(text);
  comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
  return comboBox;
}
Exemple #4
0
MainWindow::MainWindow( QWidget *parent ):
    QMainWindow( parent )
{
    d_plot = new Plot( this );

    setCentralWidget( d_plot );

    QToolBar *toolBar = new QToolBar( this );

#ifndef QT_NO_PRINTER
    QToolButton *btnPrint = new QToolButton( toolBar );
    btnPrint->setText( "Print" );
    btnPrint->setToolButtonStyle( Qt::ToolButtonTextUnderIcon );
    toolBar->addWidget( btnPrint );
    connect( btnPrint, SIGNAL( clicked() ),
        d_plot, SLOT( printPlot() ) );

    toolBar->addSeparator();
#endif

    toolBar->addWidget( new QLabel("Color Map " ) );
    QComboBox *mapBox = new QComboBox( toolBar );
    mapBox->addItem( "RGB" );
    mapBox->addItem( "Indexed Colors" );
    mapBox->addItem( "Hue" );
    mapBox->addItem( "Alpha" );
    mapBox->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
    toolBar->addWidget( mapBox );
    connect( mapBox, SIGNAL( currentIndexChanged( int ) ),
             d_plot, SLOT( setColorMap( int ) ) );

    toolBar->addWidget( new QLabel( " Opacity " ) );
    QSlider *slider = new QSlider( Qt::Horizontal );
    slider->setRange( 0, 255 );
    slider->setValue( 255 );
    connect( slider, SIGNAL( valueChanged( int ) ), 
        d_plot, SLOT( setAlpha( int ) ) );

    toolBar->addWidget( slider );
    toolBar->addWidget( new QLabel("   " ) );

    QCheckBox *btnSpectrogram = new QCheckBox( "Spectrogram", toolBar );
    toolBar->addWidget( btnSpectrogram );
    connect( btnSpectrogram, SIGNAL( toggled( bool ) ),
        d_plot, SLOT( showSpectrogram( bool ) ) );

    QCheckBox *btnContour = new QCheckBox( "Contour", toolBar );
    toolBar->addWidget( btnContour );
    connect( btnContour, SIGNAL( toggled( bool ) ),
        d_plot, SLOT( showContour( bool ) ) );

    addToolBar( toolBar );

    btnSpectrogram->setChecked( true );
    btnContour->setChecked( false );

}
Exemple #5
0
//! [10]
QComboBox *Window::createComboBox(const QString &text)
{
    QComboBox *comboBox = new QComboBox;
    comboBox->setEditable(true);
    comboBox->addItem(text);
    comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5) || defined(Q_WS_SIMULATOR)
    comboBox->setMinimumContentsLength(3);
#endif
    return comboBox;
}
QComboBox *createDirectoryComboBox(const QString &defaultDirectory)
{
    QComboBox *comboBox = new QComboBox;
    comboBox->addItem(defaultDirectory);
    comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);

    for (const QString &dir :  QDir(defaultDirectory).entryList(QDir::AllDirs | QDir::NoDotAndDotDot))
        comboBox->addItem(defaultDirectory + "/" +dir);

    return comboBox;
}
Exemple #7
0
// Create new combo widget
QtWidgetObject* AtenTreeGuiDialog::addCombo(TreeGuiWidget* widget, QString label)
{
	QtWidgetObject* qtwo = widgetObjects_.add();
	QComboBox* combo = new QComboBox(this);
	qtwo->set(widget, combo, label);
	// Add items to combo and set current index
	for (int n=0; n<widget->comboItems().count(); ++n) combo->addItem(widget->comboItems().at(n));
	combo->setCurrentIndex(widget->valueI() - 1);
	combo->setEnabled(widget->enabled());
	combo->setVisible(widget->visible());
	combo->setMinimumHeight(WIDGETHEIGHT);
	combo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
	// Connect signal to master slot
	QObject::connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(comboWidget_currentIndexChanged(int)));
	return qtwo;
}
Exemple #8
0
KTitleBarActionsConfig::KTitleBarActionsConfig(bool _standAlone, KConfig *_config, QWidget *parent, const char *)
    : KCModule(parent, "kcmkwm"), config(_config), standAlone(_standAlone)
{
    QString strWin1, strWin2, strWin3, strAllKey, strAll1, strAll2, strAll3;
    QVBoxLayout *layout = new QVBoxLayout(this, 0, KDialog::spacingHint());
    QGrid *grid;
    QGroupBox *box;
    QLabel *label;
    QString strMouseButton1, strMouseButton3, strMouseWheel;
    QString txtButton1, txtButton3, txtButton4;
    QStringList items;
    bool leftHandedMouse = (KGlobalSettings::mouseSettings().handed == KGlobalSettings::KMouseSettings::LeftHanded);

    /** Titlebar doubleclick ************/

    QHBoxLayout *hlayout = new QHBoxLayout(layout);

    label = new QLabel(i18n("&Titlebar double-click:"), this);
    hlayout->addWidget(label);
    QWhatsThis::add(label, i18n("Here you can customize mouse click behavior when double clicking on the"
                                " titlebar of a window."));

    QComboBox *combo = new QComboBox(this);
    combo->insertItem(i18n("Maximize"));
    combo->insertItem(i18n("Maximize (vertical only)"));
    combo->insertItem(i18n("Maximize (horizontal only)"));
    combo->insertItem(i18n("Minimize"));
    combo->insertItem(i18n("Shade"));
    combo->insertItem(i18n("Lower"));
    combo->insertItem(i18n("On All Desktops"));
    combo->insertItem(i18n("Nothing"));
    combo->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    hlayout->addWidget(combo);
    coTiDbl = combo;
    QWhatsThis::add(combo, i18n("Behavior on <em>double</em> click into the titlebar."));

    label->setBuddy(combo);

    /** Mouse Wheel Events  **************/
    QHBoxLayout *hlayoutW = new QHBoxLayout(layout);
    strMouseWheel = i18n("Titlebar wheel event:");
    label = new QLabel(strMouseWheel, this);
    hlayoutW->addWidget(label);
    txtButton4 = i18n("Handle mouse wheel events");
    QWhatsThis::add(label, txtButton4);

    // Titlebar and frame mouse Wheel
    QComboBox *comboW = new QComboBox(this);
    comboW->insertItem(i18n("Raise/Lower"));
    comboW->insertItem(i18n("Shade/Unshade"));
    comboW->insertItem(i18n("Maximize/Restore"));
    comboW->insertItem(i18n("Keep Above/Below"));
    comboW->insertItem(i18n("Move to Previous/Next Desktop"));
    comboW->insertItem(i18n("Change Opacity"));
    comboW->insertItem(i18n("Nothing"));
    comboW->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
    connect(comboW, SIGNAL(activated(int)), SLOT(changed()));
    hlayoutW->addWidget(comboW);
    coTiAct4 = comboW;
    QWhatsThis::add(comboW, txtButton4);
    label->setBuddy(comboW);

    /** Titlebar and frame  **************/

    box = new QVGroupBox(i18n("Titlebar && Frame"), this, "Titlebar and Frame");
    box->layout()->setMargin(KDialog::marginHint());
    box->layout()->setSpacing(KDialog::spacingHint());
    layout->addWidget(box);
    QWhatsThis::add(box, i18n("Here you can customize mouse click behavior when clicking on the"
                              " titlebar or the frame of a window."));

    grid = new QGrid(4, Qt::Vertical, box);


    new QLabel(grid); // dummy

    strMouseButton1 = i18n("Left button:");
    txtButton1 = i18n(
        "In this row you can customize left click behavior when clicking into"
        " the titlebar or the frame.");

    strMouseButton3 = i18n("Right button:");
    txtButton3 = i18n(
        "In this row you can customize right click behavior when clicking into"
        " the titlebar or the frame.");

    if(leftHandedMouse)
    {
        qSwap(strMouseButton1, strMouseButton3);
        qSwap(txtButton1, txtButton3);
    }

    label = new QLabel(strMouseButton1, grid);
    QWhatsThis::add(label, txtButton1);

    label = new QLabel(i18n("Middle button:"), grid);
    QWhatsThis::add(label, i18n("In this row you can customize middle click behavior when clicking into"
                                " the titlebar or the frame."));

    label = new QLabel(strMouseButton3, grid);
    QWhatsThis::add(label, txtButton3);


    label = new QLabel(i18n("Active"), grid);
    label->setAlignment(AlignCenter);
    QWhatsThis::add(label, i18n("In this column you can customize mouse clicks into the titlebar"
                                " or the frame of an active window."));

    // Titlebar and frame, active, mouse button 1
    combo = new QComboBox(grid);
    combo->insertItem(i18n("Raise"));
    combo->insertItem(i18n("Lower"));
    combo->insertItem(i18n("Operations Menu"));
    combo->insertItem(i18n("Toggle Raise & Lower"));
    combo->insertItem(i18n("Nothing"));
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    coTiAct1 = combo;

    txtButton1 = i18n(
        "Behavior on <em>left</em> click into the titlebar or frame of an "
        "<em>active</em> window.");

    txtButton3 = i18n(
        "Behavior on <em>right</em> click into the titlebar or frame of an "
        "<em>active</em> window.");

    // Be nice to left handed users
    if(leftHandedMouse)
        qSwap(txtButton1, txtButton3);

    QWhatsThis::add(combo, txtButton1);

    // Titlebar and frame, active, mouse button 2

    items << i18n("Raise") << i18n("Lower") << i18n("Operations Menu") << i18n("Toggle Raise & Lower") << i18n("Nothing") << i18n("Shade");

    combo = new QComboBox(grid);
    combo->insertStringList(items);
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    coTiAct2 = combo;
    QWhatsThis::add(combo, i18n("Behavior on <em>middle</em> click into the titlebar or frame of an <em>active</em> window."));

    // Titlebar and frame, active, mouse button 3
    combo = new QComboBox(grid);
    combo->insertStringList(items);
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    coTiAct3 = combo;
    QWhatsThis::add(combo, txtButton3);

    txtButton1 = i18n(
        "Behavior on <em>left</em> click into the titlebar or frame of an "
        "<em>inactive</em> window.");

    txtButton3 = i18n(
        "Behavior on <em>right</em> click into the titlebar or frame of an "
        "<em>inactive</em> window.");

    // Be nice to left handed users
    if(leftHandedMouse)
        qSwap(txtButton1, txtButton3);

    label = new QLabel(i18n("Inactive"), grid);
    label->setAlignment(AlignCenter);
    QWhatsThis::add(label, i18n("In this column you can customize mouse clicks into the titlebar"
                                " or the frame of an inactive window."));

    items.clear();
    items << i18n("Activate & Raise") << i18n("Activate & Lower") << i18n("Activate") << i18n("Shade") << i18n("Operations Menu") << i18n("Raise")
          << i18n("Lower") << i18n("Nothing");

    combo = new QComboBox(grid);
    combo->insertStringList(items);
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    coTiInAct1 = combo;
    QWhatsThis::add(combo, txtButton1);

    combo = new QComboBox(grid);
    combo->insertStringList(items);
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    coTiInAct2 = combo;
    QWhatsThis::add(combo, i18n("Behavior on <em>middle</em> click into the titlebar or frame of an <em>inactive</em> window."));

    combo = new QComboBox(grid);
    combo->insertStringList(items);
    connect(combo, SIGNAL(activated(int)), SLOT(changed()));
    coTiInAct3 = combo;
    QWhatsThis::add(combo, txtButton3);

    /**  Maximize Button ******************/

    box = new QHGroupBox(i18n("Maximize Button"), this, "Maximize Button");
    box->layout()->setMargin(KDialog::marginHint());
    box->layout()->setSpacing(KDialog::spacingHint());
    layout->addWidget(box);
    QWhatsThis::add(box, i18n("Here you can customize behavior when clicking on the maximize button."));

    QString strMouseButton[] = {i18n("Left button:"), i18n("Middle button:"), i18n("Right button:")};

    QString txtButton[] = {i18n("Behavior on <em>left</em> click onto the maximize button."),
                           i18n("Behavior on <em>middle</em> click onto the maximize button."),
                           i18n("Behavior on <em>right</em> click onto the maximize button.")};

    if(leftHandedMouse) // Be nice to lefties
    {
        qSwap(strMouseButton[0], strMouseButton[2]);
        qSwap(txtButton[0], txtButton[2]);
    }

    createMaxButtonPixmaps();
    for(int b = 0; b < 3; ++b)
    {
        if(b != 0)
            new QWidget(box); // Spacer

        QLabel *label = new QLabel(strMouseButton[b], box);
        QWhatsThis::add(label, txtButton[b]);
        label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum));

        coMax[b] = new ToolTipComboBox(box, tbl_Max);
        for(int t = 0; t < 3; ++t)
            coMax[b]->insertItem(maxButtonPixmaps[t]);
        connect(coMax[b], SIGNAL(activated(int)), SLOT(changed()));
        connect(coMax[b], SIGNAL(activated(int)), coMax[b], SLOT(changed()));
        QWhatsThis::add(coMax[b], txtButton[b]);
        coMax[b]->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum));
    }

    connect(kapp, SIGNAL(kdisplayPaletteChanged()), SLOT(paletteChanged()));

    layout->addStretch();

    load();
}
QWidget * MTPageNym_AltLocation::createSingleContactItem(GroupBoxContactItems * pGroupBox, int nComboIndex/*=0*/,
                                                         const QString textValue/*=""*/, const bool bIsPrimary/*=false*/)
{
    QWidget      * pWidgetContactItem = new QWidget;
    // ----------------------------------------------------------
    QComboBox    * pComboType = new QComboBox(pWidgetContactItem);
    QLineEdit    * pLineEditItemValue = new QLineEdit(pWidgetContactItem);
    QPushButton  * pBtnDelete = new QPushButton(tr("Delete"), pWidgetContactItem);
    QRadioButton * pBtnRadio = new QRadioButton(tr("Primary"), pWidgetContactItem);

    pGroupBox->addRadioButton(pBtnRadio);
    // ----------------------------------------------------------
    pComboType->setMinimumWidth(60);
    pComboType->setMinimumHeight(25);
    pComboType->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    pBtnDelete->setMinimumHeight(25);
    pBtnDelete->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    pLineEditItemValue->setMinimumWidth(55);
    pLineEditItemValue->setMinimumHeight(25);
    pLineEditItemValue->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
    // ----------------------------------------------------------
    pWidgetContactItem->setProperty("groupbox",          VPtr<GroupBoxContactItems>::asQVariant(pGroupBox));
    pWidgetContactItem->setProperty("combo",             VPtr<QComboBox>::asQVariant(pComboType));
    pWidgetContactItem->setProperty("lineedit",          VPtr<QLineEdit>::asQVariant(pLineEditItemValue));
    pWidgetContactItem->setProperty("deletebtn",         VPtr<QPushButton>::asQVariant(pBtnDelete));
    pWidgetContactItem->setProperty("radiobtn",          VPtr<QRadioButton>::asQVariant(pBtnRadio));
    // ----------------------------------------------------------
    pComboType        ->setProperty("contactitemwidget", VPtr<QWidget>::asQVariant(pWidgetContactItem));
    pLineEditItemValue->setProperty("contactitemwidget", VPtr<QWidget>::asQVariant(pWidgetContactItem));
    pBtnDelete        ->setProperty("contactitemwidget", VPtr<QWidget>::asQVariant(pWidgetContactItem));
    pBtnRadio         ->setProperty("contactitemwidget", VPtr<QWidget>::asQVariant(pWidgetContactItem));
    // ---------------------------------------------------------
//  pBtnDelete->setMinimumWidth(60);
//  pBtnDelete->setProperty("contactSection",     contactSection);
//  pBtnDelete->setProperty("contactSectionType", contactSectionType);
    // ----------------------------------------------------------
    for (QMap<uint32_t, QString>::iterator it_types = pGroupBox->mapTypeNames_.begin();
         it_types != pGroupBox->mapTypeNames_.end();
         ++it_types)
    {
        const uint32_t  & key   = it_types.key();       // section type ID
        const QString   & value = it_types.value();     // section type name

        pComboType->addItem(value, QVariant::fromValue(key));
    }
    // ----------------------------------------------------------
    // We don't set this until here, underneath the above loop.
    // After all, you can't set the combo box to a certain current index
    // if you haven't even populated it yet!
    //
    pBtnRadio->setChecked(bIsPrimary);
    pComboType->setCurrentIndex(nComboIndex);
    pLineEditItemValue->setText(textValue);
    // ----------------------------------------------------------
    QHBoxLayout *layout = new QHBoxLayout(pWidgetContactItem);

    layout->setMargin(0);

    layout->addWidget(pComboType);
    layout->addWidget(pLineEditItemValue);
    layout->addWidget(pBtnRadio);
    layout->addWidget(pBtnDelete);
    // ----------------------------------------------------------
    pWidgetContactItem->setLayout(layout);

    connect(pComboType, SIGNAL(currentIndexChanged(int)), this, SLOT(on_comboBox_currentIndexChanged(int)) );
    connect(pBtnDelete, SIGNAL(clicked()), this, SLOT(on_btnContactItemDelete_clicked()));
    connect(pLineEditItemValue, SIGNAL(textChanged(QString)), this, SLOT(on_lineEditItemValue_textChanged(QString)));
    connect(pBtnRadio, SIGNAL(toggled(bool)), this, SLOT(on_btnPrimary_toggled(bool)));
//  connect(this, SIGNAL(initialNameProfileSetting(QString)), pLineEditItemValue, SIGNAL(textChanged(QString)));
    // ----------------------------------------------------------
//    layout->setStretch(0,  0);
//    layout->setStretch(1, -1);
//    layout->setStretch(2,  0);
    // ----------------------------------------------------------
    return pWidgetContactItem;
}
scannerwindow::scannerwindow(QList<int> parameters, QMainWindow *parent, bool load, QTextStream* stream):
    QObject(parent)
{
    this->parameters=parameters;
    widget = new QWidget();
    widget->setAttribute(Qt::WA_DeleteOnClose);
    graph = new Q3DSurface();
    container = QWidget::createWindowContainer(graph, widget);
    container->setAttribute(Qt::WA_AcceptTouchEvents);

    widget->setGeometry(
        QStyle::alignedRect(
            Qt::LeftToRight,
            Qt::AlignTop,
            widget->size(),
            qApp->desktop()->availableGeometry()
        )
    );

    bitmapForward=new QCustomPlot(widget);
    bitmapBackward=new QCustomPlot(widget);
    bitmapCombined=new QCustomPlot(widget);

    bitmapForward->setContextMenuPolicy(Qt::CustomContextMenu);
    bitmapBackward->setContextMenuPolicy(Qt::CustomContextMenu);
    bitmapCombined->setContextMenuPolicy(Qt::CustomContextMenu);



    bitmapBackward->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    bitmapForward->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    bitmapCombined->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    initializeBitmapForward(bitmapForward);
    initializeBitmapBackward(bitmapBackward);
    initializeBitmapCombined(bitmapCombined);

    if (!graph->hasContext()) {
        QMessageBox msgBox;
        msgBox.setText("Couldn't initialize the OpenGL context.");
        msgBox.exec();
    }

    QSize screenSize = graph->screen()->size();
    container->setMinimumSize(QSize(screenSize.width() / 3, screenSize.height()/4));
    container->setMaximumSize(screenSize);
    container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    container->setFocusPolicy(Qt::StrongFocus);

    bitmapBackward->setMinimumSize(screenSize.width()/4, screenSize.height()/4);
    bitmapForward->setMinimumSize(screenSize.width()/4, screenSize.height()/4);
    bitmapCombined->setMinimumSize(screenSize.width()/4, screenSize.height()/4);


    QHBoxLayout *hLayout = new QHBoxLayout(widget);
    QVBoxLayout *vLayout = new QVBoxLayout();
    QSplitter *hSplitterMain = new QSplitter();
    QSplitter *vSplitterRight = new QSplitter();

    hLayout->setSizeConstraint(QBoxLayout::SizeConstraint::SetMinimumSize);

    vSplitterRight->addWidget(bitmapForward);
    vSplitterRight->addWidget(bitmapBackward);
    vSplitterRight->addWidget(bitmapCombined);

    vSplitterRight->setOrientation(Qt::Orientation::Vertical);
    vSplitterRight->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
    hSplitterMain->setOrientation(Qt::Orientation::Horizontal);

    hSplitterMain->addWidget(container);
    hSplitterMain->addWidget(vSplitterRight);

    hSplitterMain->setStyleSheet("QSplitter::handle {background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0,stop:0 rgba(255, 255, 255, 0),stop:0.407273 rgba(200, 200, 200, 255),stop:0.4825 rgba(101, 104, 113, 235), stop:0.6 rgba(255, 255, 255, 0));}");
    vSplitterRight->setStyleSheet("QSplitter::handle {background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0,stop:0 rgba(255, 255, 255, 0),stop:0.407273 rgba(200, 200, 200, 255),stop:0.4825 rgba(101, 104, 113, 235), stop:0.6 rgba(255, 255, 255, 0));}");

    hLayout->addWidget(hSplitterMain);
    hLayout->addLayout(vLayout);
    vLayout->setAlignment(Qt::AlignTop);

    widget->setWindowTitle(QStringLiteral("AFM Scan"));
    QGroupBox *modelGroupBox = new QGroupBox(QStringLiteral("Scan"));



if(!load){
    AFM_Scan_3D_RB = new QPushButton(widget);
    AFM_Scan_3D_RB->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
    AFM_Scan_3D_RB->setText(QStringLiteral("Start Scan"));
    AFM_Scan_3D_RB->setCheckable(true);
    AFM_Scan_3D_RB->setChecked(false);



}
    SaveSurface = new QPushButton(widget);
    SaveSurface->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
    SaveSurface->setText(QStringLiteral("Save Data"));

    BitmapView = new QPushButton(widget);
    BitmapView->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
    BitmapView->setText(QStringLiteral("Save BMP"));

    QVBoxLayout *modelVBox = new QVBoxLayout;

   if(!load){
       modelVBox->addWidget(AFM_Scan_3D_RB);


   }
    modelVBox->addWidget(BitmapView);
    modelVBox->addWidget(SaveSurface);
    modelGroupBox->setLayout(modelVBox);

    QGroupBox *selectionGroupBox = new QGroupBox(QStringLiteral("Selection Mode"));
    selectionGroupBox->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));

    QCheckBox *piezoMove = new QCheckBox(widget);
    piezoMove->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    piezoMove->setText(QStringLiteral("Piezo"));
    piezoMove->setChecked(true);
    modelVBox->addWidget(piezoMove);

    QRadioButton *modeNoneRB = new QRadioButton(widget);
    modeNoneRB->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    modeNoneRB->setText(QStringLiteral("No selection"));
    modeNoneRB->setChecked(false);

    QRadioButton *modeItemRB = new QRadioButton(widget);
    modeItemRB->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    modeItemRB->setText(QStringLiteral("Item"));
    modeItemRB->setChecked(false);

    QRadioButton *modeSliceRowRB = new QRadioButton(widget);
    modeSliceRowRB->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    modeSliceRowRB->setText(QStringLiteral("Row Slice"));
    modeSliceRowRB->setChecked(false);

    QRadioButton *modeSliceColumnRB = new QRadioButton(widget);
    modeSliceColumnRB->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    modeSliceColumnRB->setText(QStringLiteral("Column Slice"));
    modeSliceColumnRB->setChecked(false);

    QVBoxLayout *selectionVBox = new QVBoxLayout;
    selectionVBox->addWidget(modeNoneRB);
    selectionVBox->addWidget(modeItemRB);
    selectionVBox->addWidget(modeSliceRowRB);
    selectionVBox->addWidget(modeSliceColumnRB);
    selectionGroupBox->setLayout(selectionVBox);

    QSlider *axisCameraSliderZ = new QSlider(Qt::Horizontal, widget);
    axisCameraSliderZ->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
    axisCameraSliderZ->setMinimum(0);
    axisCameraSliderZ->setMaximum(179);
    axisCameraSliderZ->setTickInterval(1);
    axisCameraSliderZ->setEnabled(true);

    QSlider *axisCameraSliderY = new QSlider(Qt::Horizontal, widget);
    axisCameraSliderY->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
    axisCameraSliderY->setMinimum(0);
    axisCameraSliderY->setMaximum(180);
    axisCameraSliderY->setTickInterval(0);
    axisCameraSliderY->setEnabled(true);


    QComboBox *themeList = new QComboBox(widget);
    themeList->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));

    themeList->addItem(QStringLiteral("Qt"));
    themeList->addItem(QStringLiteral("Primary Colors"));
    themeList->addItem(QStringLiteral("Digia"));
    themeList->addItem(QStringLiteral("Stone Moss"));    
    themeList->addItem(QStringLiteral("Army Blue"));
    themeList->addItem(QStringLiteral("Retro"));
    themeList->addItem(QStringLiteral("Ebony"));
    themeList->addItem(QStringLiteral("Isabelle"));

    QGroupBox *colorGroupBox = new QGroupBox(QStringLiteral("Custom gradient"));

    QLinearGradient grBtoY(0, 0, 1, 100);
    grBtoY.setColorAt(1.0, Qt::black);
    grBtoY.setColorAt(0.67, Qt::blue);
    grBtoY.setColorAt(0.33, Qt::red);
    grBtoY.setColorAt(0.0, Qt::yellow);

    QPixmap pm(24, 100);
    QPainter pmp(&pm);
    pmp.setBrush(QBrush(grBtoY));
    pmp.setPen(Qt::NoPen);
    pmp.drawRect(0, 0, 24, 100);

    QPushButton *gradientBtoYPB = new QPushButton(widget);
    gradientBtoYPB->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    gradientBtoYPB->setIcon(QIcon(pm));
    gradientBtoYPB->setIconSize(QSize(24, 100));

    QLinearGradient grGtoR(0, 0, 1, 100);
    grGtoR.setColorAt(1.0, Qt::darkGreen);
    grGtoR.setColorAt(0.5, Qt::yellow);
    grGtoR.setColorAt(0.2, Qt::red);
    grGtoR.setColorAt(0.0, Qt::darkRed);
    pmp.setBrush(QBrush(grGtoR));
    pmp.drawRect(0, 0, 24, 100);

    QPushButton *gradientGtoRPB = new QPushButton(widget);
    gradientGtoRPB->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
    gradientGtoRPB->setIcon(QIcon(pm));
    gradientGtoRPB->setIconSize(QSize(24, 100));

    QHBoxLayout *colorHBox = new QHBoxLayout;
    colorHBox->addWidget(gradientBtoYPB);
    colorHBox->addWidget(gradientGtoRPB);
    colorGroupBox->setLayout(colorHBox);

    vLayout->addWidget(modelGroupBox);
    vLayout->addWidget(selectionGroupBox);

    vLayout->addWidget(new QLabel(QStringLiteral("Camera Position")));
    vLayout->addWidget(axisCameraSliderZ);
    vLayout->addWidget(axisCameraSliderY);
    vLayout->addWidget(new QLabel(QStringLiteral("Theme")));
    vLayout->addWidget(themeList);
    vLayout->addWidget(colorGroupBox);

    widget->show();
    modifier= new SurfaceGraph(graph, widget,parameters);

if(!load){

    QObject::connect(parent, SIGNAL(plotDataReceived(QList <QByteArray>)),
                     modifier, SLOT(dataHandler(QList <QByteArray>)));

    QObject::connect(AFM_Scan_3D_RB, SIGNAL (toggled(bool)),
                     this, SLOT(AFMButtonHandler(bool)));

    QObject::connect(this, SIGNAL (AFMStart()),
                     modifier, SLOT (enableAFMModel()));

    QObject::connect(this, SIGNAL (AFMDone()),
                     parent, SLOT (sendDone()));

    QObject::connect(this, SIGNAL (AFMStart()),
                     parent, SLOT (sendGo()));

    QObject::connect(this, SIGNAL (AFMStart()),
                     parent, SLOT(sendReady()));}