2017-11-07 Fred Gleason <fredg@paravelsystems.com>

* Added the ability to delete multiple logs simultaneously in
	rdlogedit(1).
This commit is contained in:
Fred Gleason 2017-11-07 09:45:28 -05:00
parent fab9e57733
commit d9c03cb5dc
11 changed files with 416 additions and 87 deletions

View File

@ -16317,3 +16317,6 @@
* Removed 'docs/WIN32.txt'.
* Removed 'docs/copy_split_format.odt'.
* Moved remaining unformatted notes to 'docs/misc/.
2017-11-07 Fred Gleason <fredg@paravelsystems.com>
* Added the ability to delete multiple logs simultaneously in
rdlogedit(1).

View File

@ -370,13 +370,11 @@ bool RDLog::remove(RDStation *station,RDUser *user,RDConfig *config) const
{
QString sql;
RDSqlQuery *q;
QString name=log_name;
name.replace(" ","_");
if(removeTracks(station,user,config)<0) {
return false;
}
sql=QString().sprintf("drop table `%s_LOG`",(const char *)name);
sql=QString("drop table `")+RDLog::tableName(log_name)+"`";
q=new RDSqlQuery(sql);
delete q;
sql=QString().sprintf("delete from LOGS where (NAME=\"%s\" && TYPE=0)",

View File

@ -290,7 +290,10 @@ MainWidget::MainWidget(QWidget *parent)
log_log_list=new QListView(this);
log_log_list->setFont(default_font);
log_log_list->setAllColumnsShowFocus(true);
log_log_list->setSelectionMode(QListView::Extended);
log_log_list->setItemMargin(5);
connect(log_log_list,SIGNAL(selectionChanged()),
this,SLOT(logSelectionChangedData()));
connect(log_log_list,
SIGNAL(doubleClicked(QListViewItem *,const QPoint &,int)),
this,
@ -322,8 +325,6 @@ MainWidget::MainWidget(QWidget *parent)
log_log_list->addColumn(tr("LAST MODIFIED"));
log_log_list->setColumnAlignment(12,Qt::AlignLeft);
RefreshList();
//
// Add Button
//
@ -375,6 +376,8 @@ MainWidget::MainWidget(QWidget *parent)
log_close_button->setText(tr("&Close"));
connect(log_close_button,SIGNAL(clicked()),this,SLOT(quitMainWidget()));
RefreshList();
#ifndef WIN32
//
// Setup Signal Handling
@ -486,19 +489,20 @@ void MainWidget::addData()
void MainWidget::editData()
{
ListListViewItem *item=(ListListViewItem *)log_log_list->selectedItem();
std::vector<QString> newlogs;
if(item==NULL) {
// ListListViewItem *item=(ListListViewItem *)log_log_list->selectedItem();
std::vector<ListListViewItem *> items;
if(SelectedLogs(&items)!=1) {
return;
}
EditLog *log=new EditLog(item->text(1),&log_filter,&log_group,&log_schedcode,
std::vector<QString> newlogs;
EditLog *log=new EditLog(items.at(0)->text(1),&log_filter,&log_group,&log_schedcode,
&log_clipboard,&newlogs,this);
log->exec();
delete log;
RefreshItem(item);
RefreshItem(items.at(0));
for(unsigned i=0;i<newlogs.size();i++) {
item=new ListListViewItem(log_log_list);
ListListViewItem *item=new ListListViewItem(log_log_list);
item->setText(1,newlogs[i]);
RefreshItem(item);
}
@ -511,42 +515,74 @@ void MainWidget::deleteData()
QString str1;
QString str2;
unsigned tracks=0;
QListViewItem *item=log_log_list->selectedItem();
ListListViewItem *item=(ListListViewItem *)log_log_list->firstChild();
std::vector<ListListViewItem *> items;
if(item==NULL) {
return;
}
if(rduser->deleteLog()) {
if(QMessageBox::question(this,tr("Delete Log"),
tr(QString().sprintf("Are you sure you want to delete the \"%s\" log?",
(const char *)item->text(1))),
QMessageBox::Yes,
QMessageBox::No)!=QMessageBox::Yes) {
return;
}
RDLog *log=new RDLog(item->text(1));
if((tracks=log->completedTracks())>0) {
str1=QString(tr("This will also delete the"));
str2=QString(tr("voice tracks associated with this log.\nContinue?"));
if(QMessageBox::question(this,tr("Tracks Exist"),
QString().sprintf("%s %u %s",
(const char *)str1,
tracks,
(const char *)str2),
QMessageBox::Yes,QMessageBox::No)!=
QMessageBox::Yes) {
while(item!=NULL) {
if(item->isSelected()) {
items.push_back(item);
RDLog *log=new RDLog(items.at(0)->text(1));
tracks+=log->completedTracks();
delete log;
}
item=(ListListViewItem *)item->nextSibling();
}
if(items.size()==1) {
if(QMessageBox::question(this,"RDLogEdit - "+tr("Delete Log"),
tr("Are you sure you want to delete the")+" \""+
items.at(0)->text(1)+"\" "+tr("log?"),
QMessageBox::Yes,
QMessageBox::No)!=QMessageBox::Yes) {
return;
}
if(tracks>0) {
if(QMessageBox::question(this,"RDLogEdit - "+tr("Tracks Exist"),
tr("This will also delete the")+
QString().sprintf(" %u ",tracks)+
tr("voice tracks associated with this log.")+
"\n"+tr("Continue?"),
QMessageBox::Yes,QMessageBox::No)!=
QMessageBox::Yes) {
return;
}
}
}
if(!log->remove(rdstation_conf,rduser,log_config)) {
QMessageBox::warning(this,tr("RDLogEdit"),
tr("Unable to delete log, audio deletion error!"));
else {
if(QMessageBox::question(this,"RDLogEdit - "+tr("Delete Log"),
tr("Are you sure you want to delete these")+
QString().sprintf(" %lu ",items.size())+
tr("logs?"),
QMessageBox::Yes,
QMessageBox::No)!=QMessageBox::Yes) {
return;
}
if(tracks>0) {
if(QMessageBox::question(this,"RDLogEdit - "+tr("Tracks Exist"),
tr("This will also delete the")+
QString().sprintf(" %u ",tracks)+
tr("voice tracks associated with these logs.")+
"\n"+tr("Continue?"),
QMessageBox::Yes,QMessageBox::No)!=
QMessageBox::Yes) {
return;
}
}
}
for(unsigned i=0;i<items.size();i++) {
RDLog *log=new RDLog(items.at(i)->text(1));
if(log->remove(rdstation_conf,rduser,log_config)) {
delete items.at(i);
}
else {
QMessageBox::warning(this,"RDLogEdit - "+tr("Error"),
tr("Unable to delete log")+" \""+
items.at(i)->text(1)+"\", "+
tr("audio deletion error!"));
}
delete log;
return;
}
delete log;
delete item;
}
}
@ -554,14 +590,14 @@ void MainWidget::deleteData()
void MainWidget::trackData()
{
#ifndef WIN32
ListListViewItem *item=(ListListViewItem *)log_log_list->selectedItem();
if(item==NULL) {
std::vector<ListListViewItem *> items;
if(SelectedLogs(&items)!=1) {
return;
}
VoiceTracker *dialog=new VoiceTracker(item->text(1),&log_import_path);
VoiceTracker *dialog=new VoiceTracker(items.at(0)->text(1),&log_import_path);
dialog->exec();
delete dialog;
RefreshItem(item);
RefreshItem(items.at(0));
#endif // WIN32
}
@ -701,6 +737,22 @@ void MainWidget::filterClearedData()
}
void MainWidget::logSelectionChangedData()
{
int count=0;
ListListViewItem *item=(ListListViewItem *)log_log_list->firstChild();
while(item!=NULL) {
if(item->isSelected()) {
count++;
}
item=(ListListViewItem *)item->nextSibling();
}
log_edit_button->setEnabled(count==1);
log_delete_button->setEnabled(count>0);
log_track_button->setEnabled(count==1);
}
void MainWidget::logDoubleclickedData(QListViewItem *,const QPoint &,int)
{
editData();
@ -839,6 +891,28 @@ void MainWidget::RefreshList()
RefreshItem(item);
}
delete q;
logSelectionChangedData();
}
unsigned MainWidget::SelectedLogs(std::vector<ListListViewItem *> *items,
int *tracks) const
{
ListListViewItem *item=(ListListViewItem *)log_log_list->firstChild();
items->clear();
while(item!=NULL) {
if(item->isSelected()) {
items->push_back(item);
if(tracks!=NULL) {
RDLog *log=new RDLog(item->text(1));
(*tracks)+=log->completedTracks();
delete log;
}
}
item=(ListListViewItem *)item->nextSibling();
}
return items->size();
}

View File

@ -62,6 +62,7 @@ class MainWidget : public QMainWindow
void reportData();
void filterChangedData(const QString &str);
void filterClearedData();
void logSelectionChangedData();
void logDoubleclickedData(QListViewItem *item,const QPoint &pt,int col);
void quitMainWidget();
@ -71,6 +72,8 @@ class MainWidget : public QMainWindow
private:
void RefreshItem(ListListViewItem *item);
void RefreshList();
unsigned SelectedLogs(std::vector<ListListViewItem *> *items,
int *tracks=NULL) const;
QSqlDatabase *log_db;
QString log_filename;
QString log_import_path;

View File

@ -838,7 +838,7 @@ o zápisu</translation>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation>stopy hlasů spojených s tímto zápisem.
<translation type="obsolete">stopy hlasů spojených s tímto zápisem.
Pokračovat?</translation>
</message>
<message>
@ -855,11 +855,11 @@ Pokračovat?</translation>
</message>
<message>
<source>RDLogEdit</source>
<translation>RDLogedit</translation>
<translation type="obsolete">RDLogedit</translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation>Soubor se zápisem nelze smazat, chyba při mazání zvuku!</translation>
<translation type="obsolete">Soubor se zápisem nelze smazat, chyba při mazání zvuku!</translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
@ -899,6 +899,46 @@ Vyhledejte svého správce systému kvůli aktualizaci!</translation>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>

View File

@ -838,7 +838,7 @@ Report</translation>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation>Voice Tracks die mit diesem Log verbunden sind.
<translation type="obsolete">Voice Tracks die mit diesem Log verbunden sind.
Fortfahren?</translation>
</message>
<message>
@ -855,11 +855,11 @@ Fortfahren?</translation>
</message>
<message>
<source>RDLogEdit</source>
<translation>RDLogEdit</translation>
<translation type="obsolete">RDLogEdit</translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation>Kann Logdatei nicht löschen, Audiolöschfehler!</translation>
<translation type="obsolete">Kann Logdatei nicht löschen, Audiolöschfehler!</translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
@ -898,6 +898,46 @@ See your system administrator for an update!</source>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>

View File

@ -806,7 +806,7 @@ desactivado para el servicio especificado!</translation>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation> voicetracks asociados a esta lista.
<translation type="obsolete"> voicetracks asociados a esta lista.
¿Desea continuar?</translation>
</message>
<message>
@ -853,13 +853,9 @@ Report</source>
<translation>Reporte
de Listas</translation>
</message>
<message>
<source>RDLogEdit</source>
<translation></translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation>¡No es posible eliminar la lista, error de eliminación de audios!</translation>
<translation type="obsolete">¡No es posible eliminar la lista, error de eliminación de audios!</translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
@ -899,6 +895,46 @@ See your system administrator for an update!</source>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>

View File

@ -809,11 +809,6 @@ Report</source>
<source>This will also delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tracks Exist</source>
<translation type="unfinished"></translation>
@ -826,14 +821,6 @@ Continue?</source>
<source>TFN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>RDLogEdit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
<translation type="unfinished"></translation>
@ -871,6 +858,46 @@ See your system administrator for an update!</source>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>

View File

@ -860,7 +860,7 @@ rapport</translation>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation>røystspor som er kopla til denne loggen.
<translation type="obsolete">røystspor som er kopla til denne loggen.
Vil du halda fram?</translation>
</message>
<message>
@ -877,11 +877,7 @@ Vil du halda fram?</translation>
</message>
<message>
<source>RDLogEdit</source>
<translation type="unfinished">RDLogEdit</translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation type="unfinished"></translation>
<translation type="obsolete">RDLogEdit</translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
@ -920,6 +916,46 @@ See your system administrator for an update!</source>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>

View File

@ -860,7 +860,7 @@ rapport</translation>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation>røystspor som er kopla til denne loggen.
<translation type="obsolete">røystspor som er kopla til denne loggen.
Vil du halda fram?</translation>
</message>
<message>
@ -877,11 +877,7 @@ Vil du halda fram?</translation>
</message>
<message>
<source>RDLogEdit</source>
<translation type="unfinished">RDLogEdit</translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation type="unfinished"></translation>
<translation type="obsolete">RDLogEdit</translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
@ -920,6 +916,46 @@ See your system administrator for an update!</source>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>

View File

@ -839,7 +839,7 @@ Report</source>
<message>
<source>voice tracks associated with this log.
Continue?</source>
<translation>faixas de voz associadas a esta Lista.
<translation type="obsolete">faixas de voz associadas a esta Lista.
Continuar?</translation>
</message>
<message>
@ -856,11 +856,7 @@ Continuar?</translation>
</message>
<message>
<source>RDLogEdit</source>
<translation type="unfinished">RDListas</translation>
</message>
<message>
<source>Unable to delete log, audio deletion error!</source>
<translation type="unfinished"></translation>
<translation type="obsolete">RDListas</translation>
</message>
<message>
<source>RDLogEdit -- Database Skew</source>
@ -899,6 +895,46 @@ See your system administrator for an update!</source>
<source>Show Only Recent Logs</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete the</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>log?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with this log.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to delete these</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>logs?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>voice tracks associated with these logs.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to delete log</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>audio deletion error!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>RenderDialog</name>