void MyMaterialEditor::setMaterial(const Material &m)
{
    m_material = m;

    updateButton(0, m.ambient);
    updateButton(1, m.diffuse);
    updateButton(2, m.specular);
    updateButton(3, m.emission);
    m_shininessSpinner->setValue(m.shininess);
}
Beispiel #2
0
DomainListView::DomainListView(KConfig *config,const QString &title,
		QWidget *parent,const char *name) :
	QGroupBox(title, parent, name), config(config) {
  setColumnLayout(0, Qt::Vertical);
  layout()->setSpacing(0);
  layout()->setMargin(0);
  QGridLayout* thisLayout = new QGridLayout(layout());
  thisLayout->setAlignment(Qt::AlignTop);
  thisLayout->setSpacing(KDialog::spacingHint());
  thisLayout->setMargin(KDialog::marginHint());

  domainSpecificLV = new KListView(this);
  domainSpecificLV->addColumn(i18n("Host/Domain"));
  domainSpecificLV->addColumn(i18n("Policy"), 100);
  connect(domainSpecificLV,SIGNAL(doubleClicked(QListViewItem *)), SLOT(changePressed()));
  connect(domainSpecificLV,SIGNAL(returnPressed(QListViewItem *)), SLOT(changePressed()));
  connect(domainSpecificLV, SIGNAL( executed( QListViewItem *)), SLOT( updateButton()));
  connect(domainSpecificLV, SIGNAL(selectionChanged()), SLOT(updateButton()));
  thisLayout->addMultiCellWidget(domainSpecificLV, 0, 5, 0, 0);

  addDomainPB = new QPushButton(i18n("&New..."), this);
  thisLayout->addWidget(addDomainPB, 0, 1);
  connect(addDomainPB, SIGNAL(clicked()), SLOT(addPressed()));

  changeDomainPB = new QPushButton( i18n("Chan&ge..."), this);
  thisLayout->addWidget(changeDomainPB, 1, 1);
  connect(changeDomainPB, SIGNAL(clicked()), this, SLOT(changePressed()));

  deleteDomainPB = new QPushButton(i18n("De&lete"), this);
  thisLayout->addWidget(deleteDomainPB, 2, 1);
  connect(deleteDomainPB, SIGNAL(clicked()), this, SLOT(deletePressed()));

  importDomainPB = new QPushButton(i18n("&Import..."), this);
  thisLayout->addWidget(importDomainPB, 3, 1);
  connect(importDomainPB, SIGNAL(clicked()), this, SLOT(importPressed()));
  importDomainPB->setEnabled(false);
  importDomainPB->hide();

  exportDomainPB = new QPushButton(i18n("&Export..."), this);
  thisLayout->addWidget(exportDomainPB, 4, 1);
  connect(exportDomainPB, SIGNAL(clicked()), this, SLOT(exportPressed()));
  exportDomainPB->setEnabled(false);
  exportDomainPB->hide();

  QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
  thisLayout->addItem(spacer, 5, 1);

  QWhatsThis::add( addDomainPB, i18n("Click on this button to manually add a host or domain "
                                       "specific policy.") );
  QWhatsThis::add( changeDomainPB, i18n("Click on this button to change the policy for the "
                                          "host or domain selected in the list box.") );
  QWhatsThis::add( deleteDomainPB, i18n("Click on this button to delete the policy for the "
                                          "host or domain selected in the list box.") );
  updateButton();
}
void stompbox_cs::updateSignal()
{
	updateKnob1("00", "00", "42");
	updateKnob2("00", "00", "47");
	updateComboBox("00", "00", "41");
	updateButton("00", "00", "40");
};
Beispiel #4
0
void TCPTransfer::setCurrentStackWidgetSlot()
{
    QObject* sender = this->sender();
    QToolButton* tbtn = static_cast<QToolButton*>(sender);
    if(!tbtn) return;

    ui->friendsTBtn->setChecked(false);
    ui->uploadTBtn->setChecked(false);
    ui->historyTBtn->setChecked(false);

    int index = 0;
    if( tbtn == ui->friendsTBtn )
    {
        tbtn->setChecked(true);
        index = 0;
    }
    else if( tbtn == ui->uploadTBtn )
    {
        tbtn->setChecked(true);
        index = 1;
    }
    else if( tbtn == ui->historyTBtn )
    {
        tbtn->setChecked(true);
        index = 2;
    }

    updateButton(index);
    emit currentStackWidgetSingal(index);
}
Beispiel #5
0
bool WeatherPlugin::done(unsigned code, Buffer &data, const char*)
{
    if (code != 200)
        return false;
    m_data  = "";
    m_day   = 0;
    m_bBar  = false;
    m_bWind = false;
    m_bUv	= false;
    m_bCC	= false;
    m_context = xmlCreatePushParserCtxt(&m_handler, this, "", 0, "");
    if (xmlParseChunk(m_context, data.data(), data.size(), 0)){
        log(L_WARN, "XML parse error");
        xmlFreeParserCtxt(m_context);
        return false;
    }
    xmlFreeParserCtxt(m_context);
    time_t now;
    time(&now);
    setTime(now);
	if (m_bForecast)
		setForecastTime(now);
    updateButton();
    Event eUpdate(EventWeather);
    eUpdate.process();
    return false;
}
Beispiel #6
0
void ConfFilters::slotRemove()
{
	TQListViewItem	*item = m_filters->currentItem();
	if (item)
		delete item;
	updateButton();
}
Beispiel #7
0
ReloadStopButton::ReloadStopButton(QWidget* parent)
    : QWidget(parent)
    , m_loadInProgress(false)
{
    QHBoxLayout* lay = new QHBoxLayout(this);
    setLayout(lay);

    m_buttonStop = new ToolButton(this);
    m_buttonStop->setObjectName("navigation-button-stop");
    m_buttonStop->setToolTip(ToolButton::tr("Stop"));
    m_buttonStop->setToolButtonStyle(Qt::ToolButtonIconOnly);
    m_buttonStop->setVisible(false);
    m_buttonStop->setAutoRaise(true);
    m_buttonStop->setFocusPolicy(Qt::NoFocus);

    m_buttonReload = new ToolButton(this);
    m_buttonReload->setObjectName("navigation-button-reload");
    m_buttonReload->setToolTip(ToolButton::tr("Reload"));
    m_buttonReload->setToolButtonStyle(Qt::ToolButtonIconOnly);
    m_buttonReload->setAutoRaise(true);
    m_buttonReload->setFocusPolicy(Qt::NoFocus);

    lay->addWidget(m_buttonStop);
    lay->addWidget(m_buttonReload);
    lay->setContentsMargins(0, 0, 0, 0);
    lay->setSpacing(0);

    m_updateTimer = new QTimer(this);
    m_updateTimer->setInterval(100);
    m_updateTimer->setSingleShot(true);
    connect(m_updateTimer, SIGNAL(timeout()), this, SLOT(updateButton()));
}
MirrorSettings::MirrorSettings(QWidget *parent, TransferHandler *handler, const KUrl &file)
  : KGetSaveSizeDialog("MirrorSettings", parent),
    m_transfer(handler),
    m_file(file)
{
    m_model = new MirrorModel(this);
    m_model->setMirrors(m_transfer->availableMirrors(m_file));
    m_proxy = new MirrorProxyModel(this);
    m_proxy->setSourceModel(m_model);

    QWidget *widget = new QWidget(this);
    ui.setupUi(widget);
    ui.add->setGuiItem(KStandardGuiItem::add());
    ui.remove->setGuiItem(KStandardGuiItem::remove());
    ui.treeView->setModel(m_proxy);
    ui.treeView->header()->setResizeMode(QHeaderView::ResizeToContents);
    ui.treeView->hideColumn(MirrorItem::Priority);
    ui.treeView->hideColumn(MirrorItem::Country);
    ui.treeView->setItemDelegate(new MirrorDelegate(this));

    updateButton();

    connect(ui.treeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(updateButton()));
    connect(ui.add, SIGNAL(clicked()), this, SLOT(addClicked()));
    connect(ui.remove, SIGNAL(clicked()), this, SLOT(removeMirror()));
    connect(this, SIGNAL(finished()), this, SLOT(save()));

    setMainWidget(widget);
    setCaption(i18n("Modify the used mirrors"));
    setButtons(KDialog::Close);
}
bool WeatherPlugin::done(unsigned code, Buffer &data, const char*)
{
    if (code != 200)
        return false;
    m_data  = "";
    m_day   = 0;
    m_bBar  = false;
    m_bWind = false;
    m_bUv	= false;
    m_bCC	= false;
    m_bMoon	= false;
    reset();
    if (!parse(data.data(), data.size(), false)){
        log(L_WARN, "XML parse error");
        return false;
    }
    time_t now = time(NULL);
    setTime(now);
    if (m_bForecast)
        setForecastTime(now);
    updateButton();
    Event eUpdate(EventWeather);
    eUpdate.process();
    return false;
}
Beispiel #10
0
KCMCgi::KCMCgi(QWidget *parent, const char *name)
  : KCModule(parent, name)
{
  setButtons(Default|Apply);

  QVBoxLayout *topLayout = new QVBoxLayout(this, 0, KDialog::spacingHint());

  QGroupBox *topBox = new QGroupBox( 1, Horizontal, i18n("Paths to Local CGI Programs"), this );
  topLayout->addWidget( topBox );

  mListBox = new QListBox( topBox );

  QHBox *buttonBox = new QHBox( topBox );
  buttonBox->setSpacing( KDialog::spacingHint() );

  mAddButton = new QPushButton( i18n("Add..."), buttonBox );
  connect( mAddButton, SIGNAL( clicked() ), SLOT( addPath() ) );

  mRemoveButton = new QPushButton( i18n("Remove"), buttonBox );
  connect( mRemoveButton, SIGNAL( clicked() ), SLOT( removePath() ) );
  connect( mListBox, SIGNAL( clicked ( QListBoxItem * )),this, SLOT( slotItemSelected( QListBoxItem *)));

  mConfig = new KConfig("kcmcgirc");

  load();
  updateButton();
  KAboutData *about =
    new KAboutData( I18N_NOOP("kcmcgi"),
                    I18N_NOOP("CGI KIO Slave Control Module"),
                    0, 0, KAboutData::License_GPL,
                    I18N_NOOP("(c) 2002 Cornelius Schumacher") );

  about->addAuthor( "Cornelius Schumacher", 0, "*****@*****.**" );
  setAboutData(about);
}
Beispiel #11
0
void WeatherPlugin::showBar()
{
    if (m_bar || (*getID() == 0))
        return;
    QWidgetList  *list = QApplication::topLevelWidgets();
    QWidgetListIt it( *list );
    QWidget *w;
    while ((w=it.current()) != 0) {
        ++it;
        if (w->inherits("MainWindow"))
            break;
    }
    delete list;
    if (w == NULL)
        return;
    BarShow b;
    b.bar_id = BarWeather;
    b.parent = (QMainWindow*)w;
    Event e(EventShowBar, &b);
    m_bar = (QToolBar*)e.process();
    restoreToolbar(m_bar, data.bar);
    connect(m_bar, SIGNAL(destroyed()), this, SLOT(barDestroyed()));
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(timeout()));
    QTimer::singleShot(0, this, SLOT(timeout()));
    timer->start(120000);
    updateButton();
}
Beispiel #12
0
void UserHelpDialog::slotDown()
{
	int entries = m_menulistbox->count();

	// get current index
	int index = m_menulistbox->currentRow();
	if (index < 0 || index == entries - 1) {
		return;
	}

	// insert current entry after current
	if (index < entries - 2) {
		m_menulistbox->insertItem(index + 2, m_menulistbox->currentItem()->text());    // index + 2
		m_filelist.insert(index + 2, m_filelist[index]);
	}
	else {
		m_menulistbox->addItem(m_menulistbox->currentItem()->text());
		m_filelist.append(m_filelist[index]);
	}

	// then remove the old entry
	m_menulistbox->takeItem(index);
	m_filelist.removeAt(index);

	// select current entry
	m_menulistbox->setCurrentRow(index + 1);

	updateButton();
}
Beispiel #13
0
void UserHelpDialog::slotRemove()
{
	// get current index
	int index = m_menulistbox->currentRow();
	if(index >= 0) {
		// remove item
		m_menulistbox->takeItem(index);
		m_filelist.removeAt(index);

		// select a new index: first we try to take the old index. When
		// this index is too big now, index is decremented.
		// If the list is empty now, index is set to -1.
		int entries = m_menulistbox->count();
		if (entries > 0) {
			if (index >= entries) {
				index--;
			}
			m_menulistbox->setCurrentRow(index);
		}
		else {
			m_menulistbox->setCurrentItem(0);
		}
	}

	updateButton();
}
Beispiel #14
0
void GUI_v1::updateMenuButton(Button *button) {
	if (!_displayMenu)
		return;

	updateButton(button);
	_screen->updateScreen();
}
Beispiel #15
0
ConfFilters::ConfFilters(TQWidget *parent, const char *name)
: TQWidget(parent, name)
{
	m_filters = new TDEListView(this);
	m_filters->addColumn(i18n("Mime Type"));
	m_filters->addColumn(i18n("Command"));
	m_filters->setFrameStyle(TQFrame::WinPanel|TQFrame::Sunken);
	m_filters->setLineWidth(1);
	m_filters->setSorting(-1);
	m_filters->header()->setStretchEnabled(true, 1);
	connect(m_filters, TQT_SIGNAL(doubleClicked(TQListViewItem*)), TQT_SLOT(slotChange()));

	m_add = new TQPushButton(this);
	m_add->setPixmap(BarIcon("document-new"));
	m_remove = new TQPushButton(this);
	m_remove->setIconSet(BarIconSet("remove"));
	m_change = new TQPushButton(this);
	m_change->setIconSet(BarIconSet("filter"));
	m_up = new TQPushButton(this);
	m_up->setIconSet(BarIconSet("go-up"));
	m_down = new TQPushButton(this);
	m_down->setIconSet(BarIconSet("go-down"));
	connect(m_add, TQT_SIGNAL(clicked()), TQT_SLOT(slotAdd()));
	connect(m_change, TQT_SIGNAL(clicked()), TQT_SLOT(slotChange()));
	connect(m_remove, TQT_SIGNAL(clicked()), TQT_SLOT(slotRemove()));
	connect(m_up, TQT_SIGNAL(clicked()), TQT_SLOT(slotUp()));
	connect(m_down, TQT_SIGNAL(clicked()), TQT_SLOT(slotDown()));
	TQToolTip::add(m_add, i18n("Add filter"));
	TQToolTip::add(m_change, i18n("Modify filter"));
	TQToolTip::add(m_remove, i18n("Remove filter"));
	TQToolTip::add(m_up, i18n("Move filter up"));
	TQToolTip::add(m_down, i18n("Move filter down"));

	TQHBoxLayout	*l0 = new TQHBoxLayout(this, 10, 10);
	TQVBoxLayout	*l1 = new TQVBoxLayout(0, 0, 0);
	l0->addWidget(m_filters, 1);
	l0->addLayout(l1, 0);
	l1->addWidget(m_add);
	l1->addWidget(m_change);
	l1->addWidget(m_remove);
	l1->addSpacing(10);
	l1->addWidget(m_up);
	l1->addWidget(m_down);
	l1->addStretch(1);
	updateButton();
	connect(m_filters, TQT_SIGNAL(selectionChanged ()),TQT_SLOT(updateButton()));
}
Beispiel #16
0
void *WeatherPlugin::processEvent(Event *e)
{
    if (e->type() == EventLanguageChanged)
        updateButton();
    if (e->type() == EventInit)
        showBar();
    if (e->type() == EventCommandExec){
        CommandDef *cmd = (CommandDef*)(e->param());
        if ((cmd->id == CmdWeather) && *getID()){
            string url = "http://www.weather.com/outlook/travel/pastweather/";
            url += getID();
            Event eGo(EventGoURL, (void*)url.c_str());
            eGo.process();
            return e->param();
        }
    }
    if (e->type() == EventFetchDone){
        fetchData *d = (fetchData*)(e->param());
        if (d->req_id != m_fetch_id)
            return NULL;
        m_fetch_id = 0;
        if (d->result != 200)
            return NULL;
        m_data  = "";
		m_day   = 0;
        m_bBar  = false;
        m_bWind = false;
        m_bUv	= false;
		m_bCC	= false;
        m_context = xmlCreatePushParserCtxt(&m_handler, this, "", 0, "");
        if (xmlParseChunk(m_context, d->data->data(), d->data->size(), 0)){
            log(L_WARN, "XML parse error");
            xmlFreeParserCtxt(m_context);
            return NULL;
        }
        xmlFreeParserCtxt(m_context);
        time_t now;
        time(&now);
        setTime(now);
        updateButton();
        Event eUpdate(EventWeather);
        eUpdate.process();
    }
    return NULL;
}
Beispiel #17
0
static void
shotChangeNotify (const char        *optionName,
                  BananaType        optionType,
                  const BananaValue *optionValue,
                  int               screenNum)
{
	if (strcasecmp (optionName, "initiate_button") == 0)
		updateButton (optionValue->s, &initiate_button);
}
Beispiel #18
0
void GUI::updateMenuButton(Button *button) {
	if (!_displayMenu)
		return;

	_screen->hideMouse();
	updateButton(button);
	_screen->updateScreen();
	_screen->showMouse();
}
Beispiel #19
0
void KCMCgi::removePath()
{
  int index = mListBox->currentItem();
  if ( index >= 0 ) {
    mListBox->removeItem( index );
    emit changed( true );
  }
  updateButton();
}
void KexiComboBoxBase::slotRowAccepted(KexiDB::RecordData* record, int row)
{
    Q_UNUSED(row);
    //update our value
    //..nothing to do?
    updateButton();
    slotItemSelected(record);
    /*emit*/acceptRequested();
}
Beispiel #21
0
void ConfFilters::slotDown()
{
	TQListViewItem	*item = m_filters->currentItem();
	if (item && item->itemBelow())
	{
		m_filters->moveItem(item, 0, item->itemBelow());
		m_filters->setCurrentItem(item);
		updateButton();
	}
}
Beispiel #22
0
void KCMCgi::addPath()
{
  QString path = KFileDialog::getExistingDirectory( QString::null, this );

  if ( !path.isEmpty() ) {
    mListBox->insertItem( path );
    emit changed( true );
  }
  updateButton();
}
Beispiel #23
0
void YaEventNotifierInformer::notifierVisibilityChanged()
{
	bool enabled = notifier_->shouldBeVisible();
	button()->setEnabled(enabled);
	if (enabled)
		emit activated();
	else
		emit deactivated();
	updateButton();
}
Beispiel #24
0
kthememanager::kthememanager( QWidget *parent, const char *name )
    : KCModule( parent, name ), m_theme( 0 ), m_origTheme( 0 )
{

    KAboutData *about = new KAboutData("kthememanager", I18N_NOOP("KDE Theme Manager"),
                                       "0.4", I18N_NOOP("This control module handles installing, removing and "
                                                        "creating visual KDE themes."),
                                       KAboutData::License_GPL, "(c) 2003, 2004, 2006 Lukáš Tinkl", 0,
                                       "http://developer.kde.org/~lukas/kthememanager");
    setAboutData( about );

    setQuickHelp( i18n("This control module handles installing, removing and "
                "creating visual KDE themes."));

    setButtons( KCModule::Default|KCModule::Apply|KCModule::Help );

    setAcceptDrops( true );
    init();

    QBoxLayout *top = new QVBoxLayout(this, 0, KDialog::spacingHint());

    dlg = new KThemeDlg(this);
    top->addWidget( dlg );

    dlg->lvThemes->setColumnWidthMode( 0, QListView::Maximum );

    connect( ( QObject * )dlg->btnInstall, SIGNAL( clicked() ),
             this, SLOT( slotInstallTheme() ) );

    connect( ( QObject * )dlg->btnRemove, SIGNAL( clicked() ),
             this, SLOT( slotRemoveTheme() ) );

    connect( ( QObject * )dlg->btnCreate, SIGNAL( clicked() ),
             this, SLOT( slotCreateTheme() ) );

    connect( ( QObject * )dlg->lvThemes, SIGNAL( clicked( QListViewItem * ) ),
             this, SLOT( slotThemeChanged( QListViewItem * ) ) );

    connect( ( QObject * )dlg->lvThemes, SIGNAL( currentChanged( QListViewItem * ) ),
             this, SLOT( slotThemeChanged( QListViewItem * ) ) );

    connect( this, SIGNAL( filesDropped( const KURL::List& ) ),
             this, SLOT( updateButton() ) );

    connect( ( QObject * )dlg->lvThemes, SIGNAL( clicked( QListViewItem * ) ),
             this, SLOT( updateButton() ) );

    m_origTheme = new KTheme( this, true ); // stores the defaults to get back to
    m_origTheme->setName( ORIGINAL_THEME );
    m_origTheme->createYourself();

    load();
    queryLNFModules();
    updateButton();
}
Beispiel #25
0
void UserHelpDialog::slotChange()
{
	int index = m_menulistbox->currentRow();
	if (index >= 0) {
		m_fileedit->setText(m_filelist[index].url());
	}
	else {
		m_fileedit->clear();
	}
	updateButton();
}
KeyPointShowSetting::KeyPointShowSetting(std::vector<cv::KeyPoint>, QWidget *parent):
	KeyPointSettings{parent}
{
	auto layout=util::make_unique<QVBoxLayout>();
	auto button=util::make_unique<QPushButton>();

	button_=button.get();

	button_->setEnabled(true);
	button_->setCheckable(true);


	connect(button.get(),SIGNAL(clicked()),this,SLOT(updateAll()));
	connect(button.get(),SIGNAL(clicked()),this,SLOT(updateButton()));

	button->setChecked(true);
	layout->addWidget(button.release());

	setLayout(layout.release());
	updateButton();
}
Beispiel #27
0
void MirrorAddDlg::init()
{
    setCaption(i18n("Add mirror"));
    QWidget *widget = new QWidget(this);
    ui.setupUi(widget);
    setMainWidget(widget);

    if (m_countryModel)
    {
        ui.location->setModel(m_countryModel);
        ui.location->setCurrentIndex(-1);
    }

    setButtons(KDialog::Yes | KDialog::Cancel);
    setButtonGuiItem(KDialog::Yes, KStandardGuiItem::add());

    updateButton();

    connect(ui.url, SIGNAL(textChanged(QString)), this, SLOT(updateButton(QString)));
    connect(this, SIGNAL(yesClicked()), this, SLOT(addMirror()));
}
Beispiel #28
0
void ConfFilters::slotAdd()
{
	TQString	mime, cmd;
	if (FilterDlg::doIt(this, &mime, &cmd))
		if (!mime.isEmpty() && !cmd.isEmpty())
		  {
		    new TQListViewItem(m_filters, m_filters->currentItem(), mime, cmd);
		    updateButton();
		  }
		else
			KMessageBox::error(this, i18n("Empty parameters."));
}
bool GHOST_NDOFManagerUnix::processEvents()
{
	bool anyProcessed = false;

	if (m_available) {
		spnav_event e;

#ifdef USE_FINISH_GLITCH_WORKAROUND
		bool motion_test = false;
#endif

		while (spnav_poll_event(&e)) {
			switch (e.type) {
				case SPNAV_EVENT_MOTION:
				{
					/* convert to blender view coords */
					GHOST_TUns64 now = m_system.getMilliSeconds();
					const short t[3] = {(short)e.motion.x, (short)e.motion.y, (short)-e.motion.z};
					const short r[3] = {(short)-e.motion.rx, (short)-e.motion.ry, (short)e.motion.rz};

					updateTranslation(t, now);
					updateRotation(r, now);
#ifdef USE_FINISH_GLITCH_WORKAROUND
					motion_test = true;
#endif
					break;
				}
				case SPNAV_EVENT_BUTTON:
					GHOST_TUns64 now = m_system.getMilliSeconds();
					updateButton(e.button.bnum, e.button.press, now);
					break;
			}
			anyProcessed = true;
		}

#ifdef USE_FINISH_GLITCH_WORKAROUND
		if (motion_test_prev == true && motion_test == false) {
			GHOST_TUns64 now = m_system.getMilliSeconds();
			const short v[3] = {0, 0, 0};

			updateTranslation(v, now);
			updateRotation(v, now);

			anyProcessed = true;
		}
		motion_test_prev = motion_test;
#endif

	}

	return anyProcessed;
}
Beispiel #30
0
void UserHelpDialog::slotAddSep()
{
	// get current index
	int index = m_menulistbox->currentRow();
	if (index == -1) {
		return;
	}

	// insert separator
	m_menulistbox->insertItem(index, "-");
	m_filelist.insert(index, QUrl());

	updateButton();
}