void DialogEditSIMDRegister::set_value(const Register& newReg)
{
	resetLayout();
	assert(newReg.bitSize()<=8*sizeof value_);
	reg=newReg;
	util::markMemory(&value_,value_.size());
	if(QRegExp("mm[0-7]").exactMatch(reg.name()))
	{
		const auto value=reg.value<edb::value64>();
		std::memcpy(&value_,&value,sizeof value);
		hideColumns(MMX_FIRST_COL);
		// MMX registers are never used in float computations, so hide useless rows
		hideRows(FLOATS32_ROW);
		hideRows(FLOATS64_ROW);
	}
	else if(QRegExp("xmm[0-9]+").exactMatch(reg.name()))
	{
		const auto value=reg.value<edb::value128>();
		std::memcpy(&value_,&value,sizeof value);
		hideColumns(XMM_FIRST_COL);
	}
	else if(QRegExp("ymm[0-9]+").exactMatch(reg.name()))
	{
		const auto value=reg.value<edb::value256>();
		std::memcpy(&value_,&value,sizeof value);
		hideColumns(YMM_FIRST_COL);
	}
	else qCritical() << "DialogEditSIMDRegister::set_value(" << reg.name() << "): register type unsupported";
	setWindowTitle(tr("Modify %1").arg(reg.name().toUpper()));
	updateAllEntriesExcept(nullptr);
}
Example #2
0
AppletHandle::AppletHandle(AppletContainer* parent)
    : QWidget(parent),
      m_applet(parent),
      m_menuButton(0),
      m_drawHandle(false),
      m_popupDirection(KPanelApplet::Up),
      m_handleHoverTimer(0)
{
    setBackgroundOrigin(AncestorOrigin);
    setMinimumSize(widthForHeight(0), heightForWidth(0));
    m_layout = new QBoxLayout(this, QBoxLayout::BottomToTop, 0, 0);

    m_dragBar = new AppletHandleDrag(this);
    m_dragBar->installEventFilter(this);
    m_layout->addWidget(m_dragBar);

    if (kapp->authorizeKAction("kicker_rmb"))
    {
        m_menuButton = new AppletHandleButton( this );
        m_menuButton->setPixmap(xpmPixmap(up_xpm, "up"));
        m_menuButton->installEventFilter(this);
        m_layout->addWidget(m_menuButton);

        connect(m_menuButton, SIGNAL(pressed()),
                this, SLOT(menuButtonPressed()));
        QToolTip::add(m_menuButton, i18n("%1 menu").arg(parent->info().name()));
    }

    QToolTip::add(this, i18n("%1 applet handle").arg(parent->info().name()));
    resetLayout();
}
Example #3
0
MagicMenuItem::MagicMenuItem()
{
  int itemSize = 55;

  setRect( -itemSize/2, -itemSize/2, itemSize, itemSize );
  setBrush( QColor( 230,229,229 ) );

  QPen pen;
  pen.setBrush( Qt::NoBrush );
  setPen( pen );

  QGraphicsTextItem *textItem = new QGraphicsTextItem( i18n("Magic"), this );

  int textWidth = textItem->boundingRect().width();
  int textHeight = textItem->boundingRect().height();

  textItem->setPos( - textWidth / 2, - textHeight / 2 );

  m_fanMenu = new FanMenu( this );
  m_fanMenu->setZValue( 50 );
  m_fanMenu->hide();
  m_fanMenu->setStartAngle( 80 );
  m_fanMenu->setEndAngle( 280 );

  FanMenuItem *menuItem = m_fanMenu->addItem( i18n("Reset\nlayout") );
  connect( menuItem, SIGNAL( clicked() ), SIGNAL( resetLayout() ) );
  menuItem = m_fanMenu->addItem( i18n("Settings") );
  connect( menuItem, SIGNAL( clicked() ), SIGNAL( showSettings() ) );

  m_fanMenu->setupItems( 80 );

  setAcceptHoverEvents( true );
}
Example #4
0
void KScrollBar::setSliderMinimumHeight( qreal height )
{
	if(m_sliderMinimumHeight == height)
		return;
	m_sliderMinimumHeight = height;
	resetLayout();
}
Example #5
0
void KCommonDecoration::reset( unsigned long changed )
{
    if (changed & SettingButtons) {
        resetLayout();
        widget()->update();
    }
}
Example #6
0
void KScrollBar::setButtonHeight( qreal height )
{
	if(m_buttonHeight == height)
		return;
	m_buttonHeight = height;
	resetLayout();
}
Example #7
0
void Manager::init()
{
   createMainWidget(WNoAutoErase);

   widget()->installEventFilter(this);
   widget()->setBackgroundMode(NoBackground);

   leftButtonList_.setAutoDelete(true);
   rightButtonList_.setAutoDelete(true);

   resetLayout();
}
Example #8
0
void AppletHandle::checkHandleHover()
{
    if (!m_handleHoverTimer ||
        (m_menuButton && m_menuButton->isOn()) ||
        m_applet->geometry().contains(m_applet->mapToParent(
                                      m_applet->mapFromGlobal(QCursor::pos()))))
    {
        return;
    }

    m_handleHoverTimer->stop();
    m_drawHandle = false;
    resetLayout();
}
Example #9
0
void KCommonDecoration::init()
{
    createMainWidget(WNoAutoErase);

    // for flicker-free redraws
    widget()->setBackgroundMode(NoBackground);

    widget()->installEventFilter( this );

    resetLayout();

    connect(this, SIGNAL(keepAboveChanged(bool) ), SLOT(keepAboveChange(bool) ) );
    connect(this, SIGNAL(keepBelowChanged(bool) ), SLOT(keepBelowChange(bool) ) );

    updateCaption();
}
Example #10
0
/* ------------------------------------------------------------------ */ 
int initLayout(int level) {
  int i;
  
  for (i=0; i<nMenu; i++) {                    /* init the menu*/
    guiMenu[i].x = OFFX + (MX+GAPX)*i;
    guiMenu[i].y = MYZERO;
  }
  strcpy(guiMenu[0].name, " New Game ");
  strcpy(guiMenu[1].name, " Restart  ");
  strcpy(guiMenu[2].name, " Backward ");
  strcpy(guiMenu[3].name, " Forward  ");
  strcpy(guiMenu[4].name, " Strategy ");
  strcpy(guiMenu[5].name, " Play     ");
  strcpy(guiMenu[6].name, " Quit     ");
  strcpy(guiMenu[7].name, " Save     ");
  guiCountLabel.x = OFFX + (MX+GAPX)*i;  /* init the count label*/
  guiCountLabel.y = MYZERO+10;
  resetLayout();
  return (0);
}
Example #11
0
void AppletHandle::setFadeOutHandle(bool fadeOut)
{
    if (fadeOut)
    {
        if (!m_handleHoverTimer)
        {
            m_handleHoverTimer = new QTimer(this);
            connect(m_handleHoverTimer, SIGNAL(timeout()),
                    this, SLOT(checkHandleHover()));
            m_applet->installEventFilter(this);
        }
    }
    else
    {
        delete m_handleHoverTimer;
        m_handleHoverTimer = 0;
        m_applet->removeEventFilter(this);
    }

    resetLayout();
}
Example #12
0
bool AppletHandle::eventFilter(QObject *o, QEvent *e)
{
    if (o == parent())
    {
        switch (e->type())
        {
            case QEvent::Enter:
            {
                m_drawHandle = true;
                resetLayout();

                if (m_handleHoverTimer)
                {
                    m_handleHoverTimer->start(250);
                }
                break;
            }

            case QEvent::Leave:
            {
                if (m_menuButton && m_menuButton->isOn())
                {
                    break;
                }

                QWidget* w = dynamic_cast<QWidget*>(o);

                bool nowDrawIt = false;
                if (w)
                {
                    // a hack for applets that have out-of-process
                    // elements (e.g the systray) so that the handle
                    // doesn't flicker when moving over those elements
                    if (w->rect().contains(w->mapFromGlobal(QCursor::pos())))
                    {
                        nowDrawIt = true;
                    }
                }

                if (nowDrawIt != m_drawHandle)
                {
                    if (m_handleHoverTimer)
                    {
                        m_handleHoverTimer->stop();
                    }

                    m_drawHandle = nowDrawIt;
                    resetLayout();
                }
                break;
            }

            default:
                break;
        }

        return QWidget::eventFilter( o, e );
    }
    else if (o == m_dragBar)
    {
        if (e->type() == QEvent::MouseButtonPress)
        {
            QMouseEvent* ev = static_cast<QMouseEvent*>(e);
            if (ev->button() == LeftButton || ev->button() == MidButton)
            {
                emit moveApplet(m_applet->mapFromGlobal(ev->globalPos()));
            }
        }
    }

    if (m_menuButton && e->type() == QEvent::MouseButtonPress)
    {
        QMouseEvent* ev = static_cast<QMouseEvent*>(e);
        if (ev->button() == RightButton)
        {
            if (!m_menuButton->isDown())
            {
                m_menuButton->setDown(true);
                menuButtonPressed();
            }

            return true;
        }
    }

    return QWidget::eventFilter(o, e);    // standard event processing
}
void ArtsControlApplet::positionChange( Position ) {
	kdDebug() << k_funcinfo << endl;
	resetLayout();
}
DialogEditSIMDRegister::DialogEditSIMDRegister(QWidget* parent)
	: QDialog(parent),
	  byteHexValidator (new QRegExpValidator(QRegExp("[0-9a-fA-F]{0,2}"),this)),
	  wordHexValidator (new QRegExpValidator(QRegExp("[0-9a-fA-F]{0,4}"),this)),
	  dwordHexValidator(new QRegExpValidator(QRegExp("[0-9a-fA-F]{0,8}"),this)),
	  qwordHexValidator(new QRegExpValidator(QRegExp("[0-9a-fA-F]{0,16}"),this)),
	  byteSignedValidator (new QLongValidator(INT8_MIN,INT8_MAX,this)),
	  wordSignedValidator (new QLongValidator(INT16_MIN,INT16_MAX,this)),
	  dwordSignedValidator(new QLongValidator(INT32_MIN,INT32_MAX,this)),
	  qwordSignedValidator(new QLongValidator(INT64_MIN,INT64_MAX,this)),
	  byteUnsignedValidator (new QULongValidator(0,UINT8_MAX,this)),
	  wordUnsignedValidator (new QULongValidator(0,UINT16_MAX,this)),
	  dwordUnsignedValidator(new QULongValidator(0,UINT32_MAX,this)),
	  qwordUnsignedValidator(new QULongValidator(0,UINT64_MAX,this)),
	  float32Validator(new FloatXValidator<float>(this)),
	  float64Validator(new FloatXValidator<double>(this)),
	  mode(IntDisplayMode::Hex)
{
	setWindowTitle(tr("Edit SIMD Register"));
	setModal(true);
	const auto allContentsGrid = new QGridLayout(this);

	for(int byteIndex=0;byteIndex<numBytes;++byteIndex)
	{
		columnLabels[byteIndex] = new QLabel(std::to_string(byteIndex).c_str(),this);
		columnLabels[byteIndex]->setAlignment(Qt::AlignCenter);
		allContentsGrid->addWidget(columnLabels[byteIndex], BYTE_INDICES_ROW, ENTRIES_FIRST_COL+numBytes-1-byteIndex);
	}

	setupEntries(tr("Byte"),bytes,BYTES_ROW,SLOT(onByteEdited()),4);
	setupEntries(tr("Word"),words,WORDS_ROW,SLOT(onWordEdited()),6);
	setupEntries(tr("Doubleword"),dwords,DWORDS_ROW,SLOT(onDwordEdited()),11);
	setupEntries(tr("Quadword"),qwords,QWORDS_ROW,SLOT(onQwordEdited()),21);
	setupEntries(tr("float32"),floats32,FLOATS32_ROW,SLOT(onFloat32Edited()),14);
	setupEntries(tr("float64"),floats64,FLOATS64_ROW,SLOT(onFloat64Edited()),24);

	for(const auto& entry : floats32)
		entry->setValidator(float32Validator);
	for(const auto& entry : floats64)
		entry->setValidator(float64Validator);

	hexSignOKCancelLayout = new QHBoxLayout();
	{
		const auto hexSignRadiosLayout = new QVBoxLayout();
		radioHex = new QRadioButton(tr("Hexadecimal"),this);
		connect(radioHex,SIGNAL(toggled(bool)),this,SLOT(onHexToggled(bool)));
		radioHex->setChecked(true); // must be after connecting of toggled()
		hexSignRadiosLayout->addWidget(radioHex);

		radioSigned = new QRadioButton(tr("Signed"),this);
		connect(radioSigned,SIGNAL(toggled(bool)),this,SLOT(onSignedToggled(bool)));
		hexSignRadiosLayout->addWidget(radioSigned);

		radioUnsigned = new QRadioButton(tr("Unsigned"),this);
		connect(radioUnsigned,SIGNAL(toggled(bool)),this,SLOT(onUnsignedToggled(bool)));
		hexSignRadiosLayout->addWidget(radioUnsigned);

		hexSignOKCancelLayout->addLayout(hexSignRadiosLayout);
	}
	{
		const auto okCancelLayout = new QVBoxLayout();
		okCancelLayout->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));

		okCancel = new QDialogButtonBox(QDialogButtonBox::Cancel|QDialogButtonBox::Ok,Qt::Horizontal,this);
		connect(okCancel, SIGNAL(accepted()), this, SLOT(accept()));
		connect(okCancel, SIGNAL(rejected()), this, SLOT(reject()));
		okCancelLayout->addWidget(okCancel);

		hexSignOKCancelLayout->addLayout(okCancelLayout);
	}
	resetLayout();

	for(int byte=numBytes-1;byte>0;--byte)
		setTabOrder(bytes[byte], bytes[byte-1]);
	setTabOrder(bytes.back(), words.front());
	for(int word=numBytes/2-1;word>0;--word)
		setTabOrder(words[word], words[word-1]);
	setTabOrder(words.back(), dwords.front());
	for(int dword=numBytes/4-1;dword>0;--dword)
		setTabOrder(dwords[dword], dwords[dword-1]);
	setTabOrder(dwords.back(), qwords.front());
	for(int qword=numBytes/4-1;qword>0;--qword)
		setTabOrder(qwords[qword], qwords[qword-1]);
	setTabOrder(qwords.back(), floats32.front());
	for(int float32=numBytes/4-1;float32>0;--float32)
		setTabOrder(floats32[float32], floats32[float32-1]);
	setTabOrder(floats32.back(), floats64.front());
	for(int float64=numBytes/4-1;float64>0;--float64)
		setTabOrder(floats64[float64], floats64[float64-1]);
	setTabOrder(floats64.front(), radioHex);
	setTabOrder(radioHex, radioSigned);
	setTabOrder(radioSigned, radioUnsigned);
	setTabOrder(radioUnsigned, okCancel);
}
Example #15
0
void Manager::reset(unsigned long /*changed*/)
{
   resetLayout();
}
Example #16
0
void Manager::paletteChange(const TQPalette &)
{
   resetLayout();
}
Example #17
0
void KScrollBar::resizeEvent( QGraphicsSceneResizeEvent *event )
{
	__super::resizeEvent(event);
	resetLayout();
}
Example #18
0
TilesetEditor::TilesetEditor(QObject *parent)
    : Editor(parent)
    , mMainWindow(new TilesetEditorWindow(this))
    , mMainToolBar(new MainToolBar(mMainWindow))
    , mWidgetStack(new QStackedWidget(mMainWindow))
    , mAddTiles(new QAction(this))
    , mRemoveTiles(new QAction(this))
    , mShowAnimationEditor(new QAction(this))
    , mPropertiesDock(new PropertiesDock(mMainWindow))
    , mUndoDock(new UndoDock(mMainWindow))
    , mTerrainDock(new TerrainDock(mMainWindow))
    , mTileCollisionDock(new TileCollisionDock(mMainWindow))
    , mWangDock(new WangDock(mMainWindow))
    , mZoomComboBox(new QComboBox)
    , mStatusInfoLabel(new QLabel)
    , mTileAnimationEditor(new TileAnimationEditor(mMainWindow))
    , mCurrentTilesetDocument(nullptr)
    , mCurrentTile(nullptr)
{
#if QT_VERSION >= 0x050600
    mMainWindow->setDockOptions(mMainWindow->dockOptions() | QMainWindow::GroupedDragging);
#endif
    mMainWindow->setDockNestingEnabled(true);
    mMainWindow->setCentralWidget(mWidgetStack);

    QAction *editTerrain = mTerrainDock->toggleViewAction();
    QAction *editCollision = mTileCollisionDock->toggleViewAction();
    QAction *editWang = mWangDock->toggleViewAction();

    mAddTiles->setIcon(QIcon(QLatin1String(":images/16x16/add.png")));
    mRemoveTiles->setIcon(QIcon(QLatin1String(":images/16x16/remove.png")));
    mShowAnimationEditor->setIcon(QIcon(QLatin1String(":images/24x24/animation-edit.png")));
    mShowAnimationEditor->setCheckable(true);
    mShowAnimationEditor->setIconVisibleInMenu(false);
    editTerrain->setIcon(QIcon(QLatin1String(":images/24x24/terrain.png")));
    editTerrain->setIconVisibleInMenu(false);
    editCollision->setIcon(QIcon(QLatin1String(":images/48x48/tile-collision-editor.png")));
    editCollision->setIconVisibleInMenu(false);
    editWang->setIcon(QIcon(QLatin1String(":images/24x24/wangtile.png")));
    editWang->setIconVisibleInMenu(false);

    Utils::setThemeIcon(mAddTiles, "add");
    Utils::setThemeIcon(mRemoveTiles, "remove");

    mTilesetToolBar = mMainWindow->addToolBar(tr("Tileset"));
    mTilesetToolBar->setObjectName(QLatin1String("TilesetToolBar"));
    mTilesetToolBar->addAction(mAddTiles);
    mTilesetToolBar->addAction(mRemoveTiles);
    mTilesetToolBar->addSeparator();
    mTilesetToolBar->addAction(editTerrain);
    mTilesetToolBar->addAction(editCollision);
    mTilesetToolBar->addAction(editWang);
    mTilesetToolBar->addAction(mShowAnimationEditor);

    mMainWindow->statusBar()->addPermanentWidget(mZoomComboBox);
    mMainWindow->statusBar()->addWidget(mStatusInfoLabel);

    resetLayout();

    connect(mMainWindow, &TilesetEditorWindow::urlsDropped, this, &TilesetEditor::addTiles);

    connect(mWidgetStack, &QStackedWidget::currentChanged, this, &TilesetEditor::currentWidgetChanged);

    connect(mAddTiles, &QAction::triggered, this, &TilesetEditor::openAddTilesDialog);
    connect(mRemoveTiles, &QAction::triggered, this, &TilesetEditor::removeTiles);

    connect(editTerrain, &QAction::toggled, this, &TilesetEditor::setEditTerrain);
    connect(editCollision, &QAction::toggled, this, &TilesetEditor::setEditCollision);
    connect(editWang, &QAction::toggled, this, &TilesetEditor::setEditWang);
    connect(mShowAnimationEditor, &QAction::toggled, mTileAnimationEditor, &TileAnimationEditor::setVisible);

    connect(mTileAnimationEditor, &TileAnimationEditor::closed, this, &TilesetEditor::onAnimationEditorClosed);

    connect(mTerrainDock, &TerrainDock::currentTerrainChanged, this, &TilesetEditor::currentTerrainChanged);
    connect(mTerrainDock, &TerrainDock::addTerrainTypeRequested, this, &TilesetEditor::addTerrainType);
    connect(mTerrainDock, &TerrainDock::removeTerrainTypeRequested, this, &TilesetEditor::removeTerrainType);

    connect(mWangDock, &WangDock::currentWangSetChanged, this, &TilesetEditor::currentWangSetChanged);
    connect(mWangDock, &WangDock::currentWangIdChanged, this, &TilesetEditor::currentWangIdChanged);
    connect(mWangDock, &WangDock::wangColorChanged, this, &TilesetEditor::wangColorChanged);
    connect(mWangDock, &WangDock::addWangSetRequested, this, &TilesetEditor::addWangSet);
    connect(mWangDock, &WangDock::removeWangSetRequested, this, &TilesetEditor::removeWangSet);
    connect(mWangDock->wangColorView(), &WangColorView::wangColorColorPicked,
            this, &TilesetEditor::setWangColorColor);

    connect(this, &TilesetEditor::currentTileChanged,
            mTileAnimationEditor, &TileAnimationEditor::setTile);
    connect(this, &TilesetEditor::currentTileChanged,
            mTileCollisionDock, &TileCollisionDock::setTile);

    connect(mTileCollisionDock, &TileCollisionDock::dummyMapDocumentChanged,
            this, [this]() {
        mPropertiesDock->setDocument(mCurrentTilesetDocument);
    });
    connect(mTileCollisionDock, &TileCollisionDock::hasSelectedObjectsChanged,
            this, &TilesetEditor::hasSelectedCollisionObjectsChanged);
    connect(mTileCollisionDock, &TileCollisionDock::statusInfoChanged,
            mStatusInfoLabel, &QLabel::setText);
    connect(mTileCollisionDock, &TileCollisionDock::visibilityChanged,
            this, &Editor::enabledStandardActionsChanged);

    connect(TilesetManager::instance(), &TilesetManager::tilesetImagesChanged,
            this, &TilesetEditor::updateTilesetView);

    retranslateUi();
    connect(Preferences::instance(), &Preferences::languageChanged, this, &TilesetEditor::retranslateUi);
}
Example #19
0
  MainWindow::MainWindow(QWidget* parent)
    : QMainWindow(parent), m_ui(new Ui::MainWindow), m_context(0), m_sync(0),
      m_loadedScenes(0)
  {
    if (!s_instance)
      s_instance = this;

    m_ui->setupUi(this);
    //m_ui->filelist->init();
    m_ui->renderpass_properties->init();
    m_ui->material_properties->init();

    createViewport();

    /*  QDockWidget *dw = new QDockWidget;
    dw->setObjectName("Foo");
    dw->setWindowTitle("Bar");
    dw->setWidget(new QTextEdit);

               addDockWidget(Qt::LeftDockWidgetArea, dw);*/
    //m_ui->properties

    connect(m_ui->action_textures, SIGNAL(triggered()), this, SLOT(openTextureBrowser()));

    connect(m_ui->error_list, SIGNAL(itemActivated(QTableWidgetItem*)),
            this, SLOT(errorItemActivated(QTableWidgetItem*)));
    connect(m_ui->action_savematerial, SIGNAL(triggered()), this, SLOT(saveMaterial()));
    connect(m_ui->action_open, SIGNAL(triggered()), this, SLOT(load()));
    connect(m_ui->action_savescene, SIGNAL(triggered()), this, SLOT(saveScene()));
    connect(m_ui->action_newscene, SIGNAL(triggered()), this, SLOT(newScene()));
    connect(m_ui->action_savescene_as, SIGNAL(triggered()), this, SLOT(saveSceneAs()));
    /*connect(m_ui->action_new, SIGNAL(triggered()), this, SLOT(open()));
    connect(m_ui->action_saveas, SIGNAL(triggered()), this, SLOT(open()));
    connect(m_ui->action_open, SIGNAL(triggered()), this, SLOT(open()));*/

    connect(m_ui->action_autosave_scene, SIGNAL(triggered(bool)), this, SLOT(setAutosaveScene(bool)));

    connect(m_ui->action_import, SIGNAL(triggered()), this, SLOT(import()));

    connect(m_ui->action_reload, SIGNAL(triggered()), this, SLOT(reload()));

    QAction* actions[] = {m_ui->action_toggle_materials,
                          m_ui->action_toggle_render_passes, m_ui->action_toggle_error_log
                         };
    QDockWidget* widgets[] = {m_ui->materials_dock, m_ui->render_passes_dock, m_ui->error_dock};
    for (size_t i = 0; i < sizeof(actions)/sizeof(*actions); ++i) {
      connect(actions[i], SIGNAL(triggered(bool)), widgets[i], SLOT(setVisible(bool)));
      connect(widgets[i], SIGNAL(visibilityChanged(bool)), actions[i], SLOT(setChecked(bool)));
    }

    connect(m_ui->action_reset_layout, SIGNAL(triggered()),
            this, SLOT(resetLayout()));

    connect(m_ui->action_about, SIGNAL(triggered()),
            this, SLOT(about()));
    connect(m_ui->editor_tabs, SIGNAL(tabCloseRequested(int)),
            this, SLOT(closeEditor(int)));

    connect(m_ui->action_sandbox_compiler, SIGNAL(toggled(bool)),
            this, SLOT(setSandboxCompiler(bool)));

    QSettings settings("Shaderkit", "Shaderkit");
    m_ui->action_autosave_scene->setChecked(settings.value("gui/autosave_scene", true).toBool());
    m_ui->action_sandbox_compiler->setChecked(settings.value("core/use_sandbox_compiler", true).toBool());

    {
      m_ui->editor_menu->layout()->setMargin(0);

      QIcon icon(":/btns/nosync.png");
      icon.addFile(":/btns/sync.png", QSize(), QIcon::Normal, QIcon::On);
      m_sync = m_ui->editor_menu->addAction(icon, "Auto-compile");
      m_sync->setCheckable(true);
      m_sync->setChecked(true);

      icon.addFile(":/btns/sync.png", QSize(), QIcon::Normal, QIcon::On);
      m_ui->editor_menu->addAction(QIcon(":/btns/compile.png"), "Compile all",
                                   this, SLOT(compileAll()));
    }
  }