2025-12-02 Fred Gleason <fredg@paravelsystems.com>

* Added a 'DROPBOXES.DROP_BOX_SCAN_COUNT' field to the database.
	* Added a 'DROPBOXES.DROP_BOX_SCAN_INTERVAL' field to the database.
	* Incremented the database version to 377.
	* Added '--drop-box-scan-count' and '--drop-box-scan-interval'
	switches to rdimport(1).
	* Added 'RDDropbox::dropBoxScanCount()',
	'RDDropbox::setDropBoxScanCount()', 'RDDropbox::dropBoxScanInterval()'
	and 'RDDropbox::setDropBoxScanInterval()' methods.
	* Added an 'Advanced Settings' button to the 'Edit Dropbox' dialog
	in rdadmin(1).

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2025-12-02 15:15:15 -05:00
parent e266de2a9f
commit e82ef69148
19 changed files with 408 additions and 20 deletions

View File

@@ -24,7 +24,7 @@
/*
* Current Database Version
*/
#define RD_VERSION_DATABASE 376
#define RD_VERSION_DATABASE 377
#endif // DBVERSION_H

View File

@@ -702,5 +702,11 @@
#define STRINGIZE2(x) #x
#define LINE_NUMBER QString(STRINGIZE(__LINE__)).toInt()
/*
* Dropbox Defaults
*/
#define RD_DEFAULT_DROPBOX_SCAN_INTERVAL 5
#define RD_DEFAULT_DROPBOX_SCAN_COUNT 3
#endif // RD_H

View File

@@ -411,53 +411,80 @@ void RDDropbox::setSegueLength(int length) const
SetRow("SEGUE_LENGTH",length);
}
unsigned RDDropbox::dropBoxScanCount() const
{
return RDGetSqlValue("DROPBOXES","ID",box_id,"DROP_BOX_SCAN_COUNT").toInt();
}
void RDDropbox::setDropBoxScanCount(unsigned val) const
{
SetRow("DROP_BOX_SCAN_COUNT",val);
}
unsigned RDDropbox::dropBoxScanInterval() const
{
return RDGetSqlValue("DROPBOXES","ID",box_id,"DROP_BOX_SCAN_INTERVAL").
toInt();
}
void RDDropbox::setDropBoxScanInterval(unsigned val) const
{
SetRow("DROP_BOX_SCAN_INTERVAL",val);
}
void RDDropbox::SetRow(const QString &param,int value) const
{
RDSqlQuery *q;
QString sql;
sql=QString("update `DROPBOXES` set `")+
param+QString::asprintf("`=%d where ",value)+
QString::asprintf("`ID`=%d",box_id);
q=new RDSqlQuery(sql);
delete q;
RDSqlQuery::apply(sql);
}
void RDDropbox::SetRow(const QString &param,unsigned value) const
{
RDSqlQuery *q;
QString sql;
sql=QString("update `DROPBOXES` set `")+
param+QString::asprintf("`=%u where ",value)+
QString::asprintf("`ID`=%d",box_id);
q=new RDSqlQuery(sql);
delete q;
RDSqlQuery::apply(sql);
}
void RDDropbox::SetRow(const QString &param,const QString &value) const
{
RDSqlQuery *q;
QString sql;
sql=QString("update `DROPBOXES` set `")+
param+"`='"+RDEscapeString(value)+"' where "+
QString::asprintf("`ID`=%d",box_id);
q=new RDSqlQuery(sql);
delete q;
RDSqlQuery::apply(sql);
}
void RDDropbox::SetRow(const QString &param,bool value) const
{
RDSqlQuery *q;
QString sql;
sql=QString("update `DROPBOXES` set `")+
param+"`='"+RDYesNo(value)+"' where "+
QString::asprintf("`ID`=%d",box_id);
q=new RDSqlQuery(sql);
delete q;
RDSqlQuery::apply(sql);
}
void RDDropbox::SetRowNull(const QString &param) const
{
QString sql=QString("update `DROPBOXES` set `")+
param+"`=NULL where "+
QString::asprintf("`ID`=%d",box_id);
RDSqlQuery::apply(sql);
}

View File

@@ -82,12 +82,17 @@ class RDDropbox
void setSegueLevel(int level) const;
int segueLength() const;
void setSegueLength(int length) const;
unsigned dropBoxScanCount() const;
void setDropBoxScanCount(unsigned val) const;
unsigned dropBoxScanInterval() const;
void setDropBoxScanInterval(unsigned val) const;
private:
void SetRow(const QString &param,int value) const;
void SetRow(const QString &param,unsigned value) const;
void SetRow(const QString &param,const QString &value) const;
void SetRow(const QString &param,bool value) const;
void SetRowNull(const QString &param) const;
int box_id;
};