You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ksquirrel/ksquirrel/ksquirrel-libs-configurator/klc.ui.h

157 lines
3.6 KiB

/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you want to add, delete, or rename functions or slots, use
** TQt Designer to update this file, preserving your code.
**
** You should not define a constructor or destructor in this file.
** Instead, write your code in functions called init() and destroy().
** These will automatically be called by the form's constructor and
** destructor.
*****************************************************************************/
void KLC::init()
{
changed = false;
listEnabled->setSorting(0);
listEnabled->header()->hide();
listDisabled->setSorting(0);
listDisabled->header()->hide();
lister = new KDirLister;
connect(lister, TQT_SIGNAL(completed(const KURL &)), this, TQT_SLOT(slotCompleted(const KURL &)));
connect(lister, TQT_SIGNAL(deleteItem(KFileItem *)), this, TQT_SLOT(slotDeleteItem(KFileItem *)));
connect(lister, TQT_SIGNAL(newItems(const KFileItemList &)), this, TQT_SLOT(slotNewItems(const KFileItemList &)));
base = KURL::fromPathOrURL(SQ_KLIBS);
backup = base;
backup.addPath("backup");
backupDir = backup.path();
TDEIO::NetAccess::mkdir(backup, this);
TQTimer::singleShot(0, this, TQT_SLOT(slotLoad()));
}
void KLC::slotLoad()
{
lister->openURL(base);
lister->openURL(backup, true);
}
void KLC::destroy()
{
delete lister;
}
void KLC::slotApply()
{
changed = true;
moveCodecs(true);
moveCodecs(false);
}
void KLC::moveCodecs(bool e2d)
{
KURL::List list;
KURL codec;
TQListViewItemIterator it(e2d ? listEnabled : listDisabled);
TQCheckListItem *li;
while((li = static_cast<TQCheckListItem *>(it.current())))
{
if(li->isOn())
{
codec = e2d ? base : backup;
codec.addPath(li->text());
list.append(codec);
}
++it;
}
TDEIO::Job *job = TDEIO::move(list, e2d ? backup : base);
connect(job, TQT_SIGNAL(result(TDEIO::Job *)), this, TQT_SLOT(slotDelResult(TDEIO::Job *)));
}
void KLC::slotCompleted(const KURL &u)
{
if(u == base)
{
listEnabled->setEnabled(true);
listEnabled->setCurrentItem(listEnabled->firstChild());
}
else
{
listDisabled->setEnabled(true);
listDisabled->setCurrentItem(listDisabled->firstChild());
}
}
void KLC::slotNewItems(const KFileItemList &list)
{
KFileItemListIterator it(list);
KFileItem *fi;
TQString soname = TQString::fromLatin1(".so.%1").arg(SQ_KL_VER);
while((fi = it.current()))
{
if(fi->isFile() && fi->name().endsWith(soname))
new TQCheckListItem(fi->url().directory().startsWith(backupDir) ? listDisabled:listEnabled, fi->name(), TQCheckListItem::CheckBox);
++it;
}
}
void KLC::slotDeleteItem(KFileItem *fi)
{
TQListView *l = fi->url().directory().startsWith(backupDir) ? listDisabled:listEnabled;
TQListViewItemIterator it(l);
TQCheckListItem *li;
TQListViewItem *li2;
while((li = static_cast<TQCheckListItem *>(it.current())))
{
if(li->text() == fi->name())
{
li2 = li->itemBelow();
if(!li2)
li2 = li->itemAbove();
delete li;
l->setCurrentItem(li2);
l->setSelected(li2, true);
return;
}
++it;
}
}
void KLC::slotDelResult(TDEIO::Job *job)
{
if(job && job->error())
job->showErrorDialog(this);
}
void KLC::closeEvent(TQCloseEvent *ev)
{
TQString data;
if(changed)
kapp->dcopClient()->send("ksquirrel", "ksquirrel", "reload_codecs()", data);
ev->accept();
}