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.
162 lines
3.7 KiB
162 lines
3.7 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.
|
|
*****************************************************************************/
|
|
|
|
#if !defined(QT_STRINGIFY)
|
|
# define QT_STRINGIFY2(x) #x
|
|
# define QT_STRINGIFY(x) QT_STRINGIFY2(x)
|
|
#endif
|
|
|
|
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(QT_STRINGIFY(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(QT_STRINGIFY(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();
|
|
}
|