[bt-devel] CSwordBackend::deleteOrphanedIndices()
Olaf Radicke
briefkasten at olaf-radicke.de
Thu Jul 29 06:13:16 MST 2010
On Wed, Jul 28, 2010 at 10:42:51AM -0700, Gary Holmlund wrote:
> On 7/28/2010 8:15 AM, Olaf Radicke wrote:
> >On Wed, Jul 28, 2010 at 06:49:22AM -0700, Gary Holmlund wrote:
> >>On 07/28/2010 05:03 AM, Olaf Radicke wrote:
> >>>On Wed, Jul 28, 2010 at 11:38:55AM +0200, Olaf Radicke wrote:
> >>>>On Mon, Jul 26, 2010 at 12:49:12PM +0200, Olaf Radicke wrote:
> >>>>>At coding on alter-gui, the function void CSwordBackend::deleteOrphanedIndices()
> >>>>>has delete my complete directory and all subdirectory. Wickedly funny. So
> >>>>>i think, the function missing checks?
> >>>>I can't find which class generated the indices and/or a documantion from
> >>>>characteristics of indices-files or indices-directorys. So i can't pach this
> >>>>problem.
> >>>In function CSwordModuleInfo::buildIndex() i have fond this in line 399:
> >>>
> >>>QSettings module_config(getModuleBaseIndexLocation() + QString("/bibletime-index.conf"), QSettings::IniFormat);
> >>>
> >>>...So is it a good idea check direktory of a file with name 'bibletime-index.conf'?
> >>>
> >>>Olaf
> >>The first parameter for this QSettings line is supposed to be a file
> >>name, so I don't understand what you mean about checking a
> >>directory. The line looks good to me.
> >No, the prolem is the function CSwordBackend::deleteOrphanedIndices(). To date
> >the function delete the complete directory and all subdirectorys, without
> >any checks. So my question is:
> >
> >Is it a good idea, checking direktory of a file with name 'bibletime-index.conf',
> >_before_ the function CSwordBackend::deleteOrphanedIndices() is starting the
> >deletion complete directory?
> >
> >Olaf Radicke
> Olaf,
>
> I don't know the backend code well enough to answer this question.
> Does anyone else?
Okay, here is my suggestion:
void CSwordBackend::safeDeleteOrphanedIndices()
{
QDir dir(CSwordModuleInfo::getGlobalBaseIndexLocation());
bool isCorrectDir = false;
QDirIterator it(dir);
while (it.hasNext())
{
QString aDir = it.next();
aDir = aDir + QDir::separator() + "bibletime-index.conf";
QFile file( aDir );
qDebug() << "[or20100729140101] check fiele name: " << file.fileName();
if( file.exists() )
{
isCorrectDir = true;
qDebug() << "[or20100729125902] isCorrectDir = true ";
}
}
if(!isCorrectDir)
{
qDebug() << "[or20100729125903] isCorrectDir = false ";
QString errorInfo = "is not a indices directory.";
throw errorInfo.toStdString();
}
else
{
deleteOrphanedIndices();
}
}
...it's a wrapper function. You can pull a patch from my
git-repos, as you like it.
Olaf Radicke
More information about the bt-devel
mailing list