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.
762 lines
17 KiB
762 lines
17 KiB
/*
|
|
** Copyright (C) 1999,2000 Toivo Pedaste <toivo@ucs.uwa.edu.au>
|
|
**
|
|
*/
|
|
|
|
/*
|
|
** This program is free software; you can redistribute it and/or modify
|
|
** it under the terms of the GNU General Public License as published by
|
|
** the Free Software Foundation; either version 2 of the License, or
|
|
** (at your option) any later version.
|
|
**
|
|
** This program is distributed in the hope that it will be useful,
|
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
** GNU General Public License for more details.
|
|
**
|
|
** You should have received a copy of the GNU General Public License
|
|
** along with this program in a file called COPYING; if not, write to
|
|
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
** MA 02110-1301, USA.
|
|
*/
|
|
|
|
/*
|
|
** Bug reports and questions can be sent to kde-devel@kde.org
|
|
*/
|
|
|
|
#include "../config.h"
|
|
|
|
#include "kpackage.h"
|
|
#include "updateLoc.h"
|
|
#include "pkgInterface.h"
|
|
#include "options.h"
|
|
#include "cache.h"
|
|
|
|
#include <tqvbox.h>
|
|
#include <tqscrollview.h>
|
|
#include <klocale.h>
|
|
#include <kmessagebox.h>
|
|
#include <kcombobox.h>
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
apanel::apanel( TQWidget *parent,
|
|
const char * name )
|
|
: TQWidget( parent, name )
|
|
{
|
|
puse = 0;
|
|
|
|
pack = new TQHBoxLayout(this);
|
|
{
|
|
puse = new TQCheckBox(i18n("Use"),this);
|
|
pack->addWidget(puse,0);
|
|
|
|
pent = new TQLineEdit(this);
|
|
pent->setMinimumWidth(600);
|
|
pack->addWidget(pent,0);
|
|
|
|
}
|
|
}
|
|
|
|
apanel::~apanel()
|
|
{
|
|
}
|
|
|
|
TQString apanel::getText() const
|
|
{
|
|
TQString s = pent->text();
|
|
return s;
|
|
}
|
|
|
|
void apanel::setText(const TQString &s)
|
|
{
|
|
pent->setText(s);
|
|
}
|
|
|
|
bool apanel::getUse()
|
|
{
|
|
if (puse)
|
|
return puse->isChecked();
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
void apanel::setUse(int n)
|
|
{
|
|
if (puse) {
|
|
if (n)
|
|
puse->setChecked(TRUE);
|
|
else
|
|
puse->setChecked(FALSE);
|
|
}
|
|
}
|
|
|
|
void apanel::clear()
|
|
{
|
|
puse->setChecked(FALSE);
|
|
pent->clear();
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
dpanel::dpanel( TQWidget *parent, const char * name )
|
|
: TQWidget( parent, name )
|
|
{
|
|
puse = 0;
|
|
psubdirs = 0;
|
|
|
|
pack = new TQHBoxLayout(this);
|
|
{
|
|
pent = new TQLineEdit(this);
|
|
pent->setMinimumWidth(280);
|
|
pack->addWidget(pent,0);
|
|
|
|
pbut = new TQPushButton("...",this);
|
|
pack->addWidget(pbut,0);
|
|
|
|
connect(pbut, TQT_SIGNAL(clicked()), this, TQT_SLOT(dirOpen()));
|
|
|
|
}
|
|
}
|
|
|
|
dpanel::dpanel(dpanel *basep, const TQString &Pfilter, bool bsubdirs,
|
|
TQWidget *parent, const char * name )
|
|
: TQWidget( parent, name )
|
|
{
|
|
filter = Pfilter;
|
|
puse = 0;
|
|
psubdirs = 0;
|
|
|
|
base = basep;
|
|
|
|
pack = new TQHBoxLayout(this);
|
|
{
|
|
puse = new TQCheckBox(i18n("Use"),this);
|
|
pack->addWidget(puse,0);
|
|
|
|
pent = new TQLineEdit(this);
|
|
pent->setMinimumWidth(280);
|
|
pack->addWidget(pent,0);
|
|
|
|
if (bsubdirs) {
|
|
psubdirs = new TQCheckBox(i18n("Subfolders"),this);
|
|
psubdirs->setFixedSize(psubdirs->sizeHint());
|
|
pack->addWidget(psubdirs,0);
|
|
}
|
|
|
|
pbut = new TQPushButton("...",this);
|
|
pack->addWidget(pbut,0);
|
|
|
|
if (base)
|
|
connect(pbut, TQT_SIGNAL(clicked()), this, TQT_SLOT(fileOpen()));
|
|
else
|
|
connect(pbut, TQT_SIGNAL(clicked()), this, TQT_SLOT(dirOpen()));
|
|
|
|
}
|
|
}
|
|
|
|
dpanel::~dpanel()
|
|
{
|
|
}
|
|
|
|
TQString dpanel::getText() const
|
|
{
|
|
TQString s = pent->text();
|
|
return s;
|
|
}
|
|
|
|
void dpanel::setText(const TQString &s)
|
|
{
|
|
pent->setText(s);
|
|
}
|
|
|
|
bool dpanel::getUse() const
|
|
{
|
|
if (puse)
|
|
return puse->isChecked();
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
void dpanel::setUse(int n)
|
|
{
|
|
if (puse) {
|
|
if (n)
|
|
puse->setChecked(TRUE);
|
|
else
|
|
puse->setChecked(FALSE);
|
|
}
|
|
}
|
|
|
|
bool dpanel::getSubdirs() const
|
|
{
|
|
if (psubdirs)
|
|
return psubdirs->isChecked();
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
void dpanel::setSubdirs(int n)
|
|
{
|
|
if (psubdirs)
|
|
{
|
|
if (n)
|
|
psubdirs->setChecked(TRUE);
|
|
else
|
|
psubdirs->setChecked(FALSE);
|
|
}
|
|
}
|
|
|
|
void dpanel::fileOpen()
|
|
{
|
|
TQString st;
|
|
|
|
if (base && getText().isEmpty()) {
|
|
st = base->getText();
|
|
} else {
|
|
st = getText();
|
|
}
|
|
if (st.right(8) == "Packages") {
|
|
st.truncate(st.length() - 8);
|
|
}
|
|
|
|
KURL url = KFileDialog::getOpenURL
|
|
(st, filter, 0, i18n("Package File"));
|
|
|
|
if( url.isEmpty() )
|
|
return;
|
|
|
|
pent->setText( url.url() );
|
|
}
|
|
|
|
void dpanel::dirOpen()
|
|
{
|
|
TQString st;
|
|
|
|
if (base && getText().isEmpty()) {
|
|
st = base->getText();
|
|
} else {
|
|
st = getText();
|
|
}
|
|
|
|
KURL url = KFileDialog::getExistingURL
|
|
(st, 0, i18n("Package Archive"));
|
|
|
|
|
|
if( url.isEmpty() )
|
|
return;
|
|
|
|
pent->setText( url.url() );
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
updateLoc::updateLoc(TQWidget *p, int panelNumber, pkgInterface *inter, const TQString &iname)
|
|
: TQWidget(p,"updateLoc",FALSE)
|
|
{
|
|
interName = iname;
|
|
interface = inter;
|
|
panNumber = panelNumber;
|
|
|
|
vf = new TQVBoxLayout( this, 15, 10, "vf");
|
|
}
|
|
|
|
updateLoc::~updateLoc()
|
|
{
|
|
}
|
|
|
|
void updateLoc::doBase(const TQString & bmsg)
|
|
{
|
|
base = 0;
|
|
if (haveBase) {
|
|
fbase = new TQGroupBox(bmsg, this);
|
|
fbase->setColumnLayout(0, Qt::Vertical );
|
|
fbase->layout()->setSpacing( KDialog::spacingHint() );
|
|
fbase->layout()->setMargin( KDialog::marginHint() );
|
|
vbase = new TQVBoxLayout(fbase->layout());
|
|
vf->addWidget(fbase,1);
|
|
base = new dpanel(fbase);
|
|
vbase->addWidget(base,0);
|
|
vbase->activate();
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
aUpdateLoc::aUpdateLoc(TQWidget *p, int panelNumber, pkgInterface *inter, const TQString &iname,
|
|
int numberLines, const TQString &label)
|
|
: updateLoc(p, panelNumber, inter, iname)
|
|
{
|
|
|
|
if (numberLines > PNUM)
|
|
numLines = PNUM;
|
|
else
|
|
numLines = numberLines;
|
|
|
|
ap[0] = 0;
|
|
|
|
TQGroupBox *floc = new TQGroupBox(1,Qt::Vertical, label, this);
|
|
vf->addWidget(floc,1);
|
|
TQScrollView* sv = new TQScrollView(floc);
|
|
sv->setHScrollBarMode(TQScrollView::AlwaysOff);
|
|
sv->setResizePolicy(TQScrollView::AutoOneFit);
|
|
|
|
TQFrame *f = new TQFrame(sv->viewport());
|
|
sv->addChild(f);
|
|
|
|
TQVBoxLayout *vloc = new TQVBoxLayout(f, 0, 3, "vloc");
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
ap[i] = new apanel( f);
|
|
vloc->addWidget(ap[i],0);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
aUpdateLoc::~aUpdateLoc()
|
|
{
|
|
}
|
|
|
|
void aUpdateLoc::readSettings()
|
|
{
|
|
int i = 0;
|
|
TQString a,b;
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
ap[i]->clear();
|
|
}
|
|
|
|
TQStringList list = interface->readApt();
|
|
for ( TQStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
|
|
if (!(*it).isEmpty()) {
|
|
if ((*it).left(1) == "#") {
|
|
ap[i]->setText(((*it).mid(1)).stripWhiteSpace());
|
|
ap[i]->setUse(0);
|
|
} else {
|
|
ap[i]->setText((*it));
|
|
ap[i]->setUse(1);
|
|
}
|
|
i++;
|
|
if (i >= numLines) {
|
|
ap[numLines - 1]->setText(i18n("File truncated..."));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void aUpdateLoc::writeSettings() {
|
|
TQStringList list;
|
|
TQString s;
|
|
|
|
TQString ln;
|
|
for (int i = 0; i < numLines; i++) {
|
|
if (!ap[i])
|
|
break;
|
|
|
|
ln = ap[i]->getText();
|
|
if (!ln.isEmpty()) {
|
|
if (ap[i]->getUse()) {
|
|
s = "";
|
|
} else {
|
|
s = "# ";
|
|
}
|
|
s += ln;
|
|
list.append(s);
|
|
}
|
|
}
|
|
interface->writeApt(list);
|
|
}
|
|
|
|
void aUpdateLoc::applyS(LcacheObj *) {
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
pdUpdateLoc::pdUpdateLoc(TQWidget *p, int panelNumber, pkgInterface *inter, const TQString &iname,
|
|
int numberLines, const TQString &filter,
|
|
const TQString &lmsg, TQString bmsg,
|
|
bool subdirs )
|
|
: updateLoc(p, panelNumber, inter, iname)
|
|
{
|
|
|
|
if (numberLines > PNUM)
|
|
numLines = PNUM;
|
|
else
|
|
numLines = numberLines;
|
|
|
|
haveBase = !bmsg.isNull();
|
|
|
|
dp[0] = 0;
|
|
|
|
TQString pn;
|
|
pn.setNum(panNumber);
|
|
pn += "_";
|
|
|
|
packL = "Package_L_";
|
|
packL += pn;
|
|
packU = "Package_U_";
|
|
packU += pn;
|
|
packS = "Package_S_";
|
|
packS += pn;
|
|
availB = "Available_Base";
|
|
availB += pn;
|
|
|
|
doBase(bmsg);
|
|
|
|
TQGroupBox *floc = new TQGroupBox(lmsg, this);
|
|
floc->setColumnLayout(0, Qt::Vertical );
|
|
floc->layout()->setSpacing( KDialog::spacingHint() );
|
|
floc->layout()->setMargin( KDialog::marginHint() );
|
|
vf->addWidget(floc,1);
|
|
TQVBoxLayout *vloc = new TQVBoxLayout(floc->layout());
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
dp[i] = new dpanel(base, filter, subdirs, floc);
|
|
vloc->addWidget(dp[i],0);
|
|
}
|
|
|
|
readSettings();
|
|
}
|
|
|
|
|
|
pdUpdateLoc::~pdUpdateLoc()
|
|
{
|
|
}
|
|
|
|
void pdUpdateLoc::applyS(LcacheObj *slist)
|
|
{
|
|
TQString t,pn,cn,pv,prev,opts;
|
|
cacheObj *CObj;
|
|
KConfig *config = kapp->config();
|
|
config->setGroup(interName);
|
|
|
|
cn = interface->head;
|
|
cn += "_";
|
|
cn += pn.setNum(panNumber);
|
|
cn += "_";
|
|
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
// delete chached dir if text changed
|
|
pv = packL + pn.setNum(i);
|
|
prev = config->readEntry(pv);
|
|
if (prev != dp[i]->getText())
|
|
cacheObj::rmDCache(TQString(cn + pn.setNum(i)));
|
|
|
|
// create cache object corresponding to this entry
|
|
if (dp[i]->getUse()) {
|
|
t = dp[i]->getText();
|
|
if (!t.isEmpty()) {
|
|
CObj = new cacheObj(haveBase ? base->getText() : TQString(),
|
|
t, cn + pn.setNum(i), "", dp[i]->getSubdirs());
|
|
slist->append(CObj);
|
|
// printf("T=%s\n",t.data());
|
|
}
|
|
}
|
|
}
|
|
// writeSettings();
|
|
}
|
|
|
|
void pdUpdateLoc::readSettings()
|
|
{
|
|
TQString pv, pn;
|
|
|
|
KConfig *config = kapp->config();
|
|
|
|
config->setGroup(interName);
|
|
|
|
if (haveBase)
|
|
base->setText(config->readEntry(availB));
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
if (!dp[i])
|
|
break;
|
|
pv = packL + pn.setNum(i);
|
|
dp[i]->setText(config->readEntry(pv));
|
|
pv = packU + pn.setNum(i);
|
|
dp[i]->setUse(config->readNumEntry(pv));
|
|
pv = packS + pn.setNum(i);
|
|
dp[i]->setSubdirs(config->readNumEntry(pv));
|
|
}
|
|
}
|
|
|
|
void pdUpdateLoc::writeSettings()
|
|
{
|
|
TQString pv, pn;
|
|
|
|
KConfig *config = kapp->config();
|
|
|
|
config->setGroup(interName);
|
|
if (haveBase) {
|
|
if (!base->getText().isEmpty())
|
|
config->writeEntry(availB,base->getText());
|
|
}
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
if (!dp[i])
|
|
break;
|
|
pv = packL + pn.setNum(i);
|
|
config->writeEntry(pv,dp[i]->getText());
|
|
pv = packU + pn.setNum(i);
|
|
config->writeEntry(pv,(int)dp[i]->getUse());
|
|
pv = packS + pn.setNum(i);
|
|
config->writeEntry(pv,(int)dp[i]->getSubdirs());
|
|
}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
cUpdateLoc::cUpdateLoc(TQWidget *p, int panelNumber, pkgInterface *inter, const TQString &iname,
|
|
int numberLines, const TQString &baseMsg,
|
|
const TQString &boxLabels, const TQString &boxValues)
|
|
: updateLoc(p, panelNumber, inter, iname)
|
|
{
|
|
if (numberLines > PNUM)
|
|
numLines = PNUM;
|
|
else
|
|
numLines = numberLines;
|
|
|
|
haveBase = !baseMsg.isNull();
|
|
|
|
combo[0] = 0;
|
|
|
|
TQString pn;
|
|
pn.setNum(panNumber);
|
|
pn += "_";
|
|
|
|
packC = "Package_C_";
|
|
packC += pn;
|
|
availB = "Available_Base";
|
|
availB += pn;
|
|
|
|
TQStringList kc = TQStringList::split('\n', boxLabels);
|
|
TQStringList::Iterator kcIt = kc.begin();
|
|
|
|
TQStringList oc = TQStringList::split('\n', boxValues);
|
|
TQStringList::Iterator ocIt = oc.begin();
|
|
|
|
|
|
doBase(baseMsg);
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
TQGroupBox *floc = new TQGroupBox(*kcIt, this);
|
|
floc->setColumnLayout(0, Qt::Vertical );
|
|
floc->layout()->setSpacing( KDialog::spacingHint() );
|
|
floc->layout()->setMargin( KDialog::marginHint() );
|
|
vf->addWidget(floc,1);
|
|
TQVBoxLayout *vloc = new TQVBoxLayout(floc->layout());
|
|
|
|
combo[i] = new KComboBox( true, floc);
|
|
KCompletion *comp = combo[i]->completionObject();
|
|
connect(combo[i],TQT_SIGNAL(returnPressed(const TQString&))
|
|
,comp,TQT_SLOT(addItem(const TQString&)));
|
|
combo[i]->insertStringList(TQStringList::split(' ',*ocIt));
|
|
vloc->addWidget(combo[i]);
|
|
if (kcIt != kc.end()) {
|
|
++kcIt;
|
|
}
|
|
if (ocIt != oc.end()) {
|
|
++ocIt;
|
|
}
|
|
}
|
|
|
|
readSettings();
|
|
}
|
|
|
|
cUpdateLoc::~cUpdateLoc()
|
|
{
|
|
}
|
|
|
|
void cUpdateLoc::applyS(LcacheObj *slist)
|
|
{
|
|
TQString t,pn,cn,pv,prev,opts;
|
|
cacheObj *CObj;
|
|
KConfig *config = kapp->config();
|
|
config->setGroup(interName);
|
|
|
|
cn = interface->head;
|
|
cn += "_";
|
|
cn += pn.setNum(panNumber);
|
|
cn += "_";
|
|
|
|
if (!base->getText().isEmpty()) {
|
|
for (int i = 0; i < numLines; i++) {
|
|
opts += combo[i]->currentText();
|
|
opts += "\n";
|
|
}
|
|
CObj = new cacheObj(base->getText(),
|
|
"", cn + ":", opts);
|
|
slist->append(CObj);
|
|
}
|
|
// writeSettings();
|
|
}
|
|
|
|
void cUpdateLoc::readSettings()
|
|
{
|
|
TQString pv, pn;
|
|
|
|
KConfig *config = kapp->config();
|
|
|
|
config->setGroup(interName);
|
|
|
|
if (haveBase)
|
|
base->setText(config->readEntry(availB));
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
if (!combo[i])
|
|
break;
|
|
pv = packC + pn.setNum(i);
|
|
if (!config->readEntry(pv).isEmpty()) {
|
|
combo[i]->insertItem(config->readEntry(pv), 0);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
void cUpdateLoc::writeSettings()
|
|
{
|
|
TQString pv, pn;
|
|
|
|
KConfig *config = kapp->config();
|
|
|
|
config->setGroup(interName);
|
|
|
|
if (haveBase) {
|
|
config->writeEntry(availB,base->getText());
|
|
}
|
|
|
|
for (int i = 0; i < numLines; i++) {
|
|
if (!combo[i])
|
|
break;
|
|
pv = packC + pn.setNum(i);
|
|
config->writeEntry(pv,combo[i]->currentText());
|
|
}
|
|
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
Locations::Locations(const TQString &msg)
|
|
: KDialogBase(Tabbed, msg, Ok | Cancel, Ok, 0, "Locations", false)
|
|
{
|
|
numPanels = 0;
|
|
|
|
connect( this, TQT_SIGNAL(okClicked()), TQT_SLOT(write_slot()) );
|
|
}
|
|
|
|
void Locations::dLocations(int numberDirs, int numberLines,
|
|
pkgInterface *inter, const TQString &iname,
|
|
const TQString &label, const TQString &filter, const TQString &dirMsg,
|
|
bool subdirs)
|
|
{
|
|
TQString nm;
|
|
|
|
for (int i = numPanels ; (i < numPanels + numberDirs) && (i < PANNUM); i++) {
|
|
|
|
TQString mp = iname;
|
|
nm.setNum(i+1);
|
|
mp += nm;
|
|
TQVBox *page = addVBoxPage(mp);
|
|
pn[i] = new pdUpdateLoc(page, i, inter,
|
|
label, numberLines,
|
|
filter, dirMsg, NULL, subdirs);
|
|
}
|
|
numPanels += numberDirs;
|
|
}
|
|
|
|
void Locations::pLocations(int numberDirs, int numberLines,
|
|
pkgInterface *inter, const TQString &iname, const TQString &label,
|
|
const TQString &filter,
|
|
const TQString &packMsg, TQString baseMsg, bool subdirs)
|
|
{
|
|
TQString nm;
|
|
|
|
for (int i = numPanels; (i < numPanels + numberDirs) && (i < PANNUM); i++) {
|
|
TQString mp = iname;
|
|
nm.setNum(i+1);
|
|
mp += nm;
|
|
TQVBox *page = addVBoxPage(mp);
|
|
pn[i] = new pdUpdateLoc(page, i, inter, label,
|
|
numberLines,
|
|
filter, packMsg, baseMsg, subdirs);
|
|
}
|
|
numPanels += numberDirs;
|
|
}
|
|
|
|
void Locations::cLocations(int numberDirs, int numberLines,
|
|
pkgInterface *inter, const TQString &iname, const TQString &label,
|
|
const TQString &boxLables, const TQString &baseMsg, const TQString &boxValues)
|
|
{
|
|
TQString nm;
|
|
|
|
for (int i = numPanels; (i < numPanels + numberDirs) && (i < PANNUM); i++) {
|
|
TQString mp = iname;
|
|
nm.setNum(i+1);
|
|
mp += nm;
|
|
TQVBox *page = addVBoxPage(mp);
|
|
pn[i] = new cUpdateLoc(page, i, inter, label,
|
|
numberLines, baseMsg,
|
|
boxLables, boxValues);
|
|
}
|
|
numPanels += numberDirs;
|
|
}
|
|
|
|
void Locations::aLocations(int numberDirs, int numberLines,
|
|
pkgInterface *inter, const TQString &iname, const TQString &label)
|
|
{
|
|
TQString nm;
|
|
|
|
for (int i = numPanels; (i < numPanels + numberDirs) && (i < PANNUM); i++) {
|
|
TQString mp = iname;
|
|
nm.setNum(i+1);
|
|
mp += nm;
|
|
TQVBox *page = addVBoxPage(mp);
|
|
pn[i] = new aUpdateLoc(page, i, inter, iname,
|
|
numberLines, label);
|
|
}
|
|
numPanels += numberDirs;
|
|
}
|
|
|
|
Locations::~Locations() {
|
|
// for (int i = 0; (i < numPanels) && (i < PANNUM) && pn[i]; i++) {
|
|
// delete pn[i];
|
|
// }
|
|
}
|
|
|
|
void Locations::restore()
|
|
{
|
|
for (int i = 0; (i < numPanels) && (i < PANNUM); i++) {
|
|
pn[i]->readSettings();
|
|
}
|
|
show();
|
|
}
|
|
|
|
void Locations::apply_slot()
|
|
{
|
|
LcacheObj *slist = new LcacheObj();
|
|
|
|
for (int i = 0; (i < numPanels) && (i < PANNUM); i++) {
|
|
pn[i]->applyS(slist);
|
|
}
|
|
emit returnVal(slist);
|
|
}
|
|
|
|
void Locations::write_slot()
|
|
{
|
|
apply_slot();
|
|
|
|
for (int i = 0; (i < numPanels) && (i < PANNUM); i++) {
|
|
pn[i]->writeSettings();
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
#include "updateLoc.moc"
|