diff --git a/ChangeLog b/ChangeLog index fdc9c469..db8e6bf8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21080,3 +21080,9 @@ 2021-02-09 Fred Gleason * Refactored the 'Log Events' dialog in rdlogmanager(1) to use the model based API. +2021-02-09 Fred Gleason + * Refactored the 'Log Events' dialog in rdlogmanager(1) to use + the model based API. +2021-02-09 Fred Gleason + * Refactored the 'Log Clocks' dialog in rdlogmanager(1) to use + the model based API. diff --git a/rdlogmanager/Makefile.am b/rdlogmanager/Makefile.am index 11979c87..88b8685b 100644 --- a/rdlogmanager/Makefile.am +++ b/rdlogmanager/Makefile.am @@ -43,6 +43,7 @@ bin_PROGRAMS = rdlogmanager dist_rdlogmanager_SOURCES = add_clock.cpp add_clock.h\ add_event.cpp add_event.h\ clock_listview.cpp clock_listview.h\ + clocklistmodel.cpp clocklistmodel.h\ commandline_ops.cpp globals.h\ edit_clock.cpp edit_clock.h\ edit_event.cpp edit_event.h\ @@ -73,6 +74,7 @@ dist_rdlogmanager_SOURCES = add_clock.cpp add_clock.h\ nodist_rdlogmanager_SOURCES = moc_add_clock.cpp\ moc_add_event.cpp\ moc_clock_listview.cpp\ + moc_clocklistmodel.cpp\ moc_edit_clock.cpp\ moc_edit_event.cpp\ moc_edit_eventline.cpp\ diff --git a/rdlogmanager/clocklistmodel.cpp b/rdlogmanager/clocklistmodel.cpp new file mode 100644 index 00000000..df13119b --- /dev/null +++ b/rdlogmanager/clocklistmodel.cpp @@ -0,0 +1,317 @@ +// clocklistmodel.cpp +// +// Data model for Rivendell rdlogmanager(1) clocks +// +// (C) Copyright 2021 Fred Gleason +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as +// published by the Free Software Foundation. +// +// 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; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#include + +#include "rdapplication.h" +#include "rdconf.h" +#include "rdescape_string.h" +#include "rdevent_line.h" +#include "clocklistmodel.h" + +ClockListModel::ClockListModel(QObject *parent) + : QAbstractTableModel(parent) +{ + // + // Column Attributes + // + unsigned left=Qt::AlignLeft|Qt::AlignVCenter; + unsigned center=Qt::AlignCenter; + //unsigned right=Qt::AlignRight|Qt::AlignVCenter; + + d_headers.push_back(tr("Name")); + d_alignments.push_back(left); + + d_headers.push_back(tr("Code")); + d_alignments.push_back(center); + + updateModel(); +} + + +ClockListModel::~ClockListModel() +{ +} + + +QPalette ClockListModel::palette() +{ + return d_palette; +} + + +void ClockListModel::setPalette(const QPalette &pal) +{ + d_palette=pal; +} + + +void ClockListModel::setFont(const QFont &font) +{ + d_font=font; + d_bold_font=font; + d_bold_font.setWeight(QFont::Bold); +} + + +int ClockListModel::columnCount(const QModelIndex &parent) const +{ + return d_headers.size(); +} + + +int ClockListModel::rowCount(const QModelIndex &parent) const +{ + return d_texts.size(); +} + + +QVariant ClockListModel::headerData(int section,Qt::Orientation orient, + int role) const +{ + if((orient==Qt::Horizontal)&&(role==Qt::DisplayRole)) { + return d_headers.at(section); + } + return QVariant(); +} + + +QVariant ClockListModel::data(const QModelIndex &index,int role) const +{ + QString str; + int col=index.column(); + int row=index.row(); + + if(row list; + for(int i=0;ifirst()) { + updateRow(row.row(),q); + emit dataChanged(createIndex(row.row(),0), + createIndex(row.row(),columnCount())); + } + delete q; + } +} + + +void ClockListModel::refresh(const QString &name) +{ + for(int i=0;i texts; + + RDSqlQuery *q=NULL; + QString sql=sqlFields()+ + d_filter_sql+ + "order by CLOCKS.NAME "; + beginResetModel(); + d_texts.clear(); + d_icons.clear(); + q=new RDSqlQuery(sql); + while(q->next()) { + d_texts.push_back(texts); + d_icons.push_back(QVariant()); + updateRow(d_texts.size()-1,q); + } + delete q; + endResetModel(); +} + + +void ClockListModel::updateRowLine(int line) +{ + if(linefirst()) { + updateRow(line,q); + } + delete q; + } +} + + +void ClockListModel::updateRow(int row,RDSqlQuery *q) +{ + QList texts; + + // Name + texts.push_back(q->value(0)); + + // Code + texts.push_back(q->value(1)); + + d_texts[row]=texts; + d_icons[row]=MakeIcon(q->value(2).toString()); +} + + +QString ClockListModel::sqlFields() const +{ + QString sql=QString("select ")+ + "NAME,"+ // 00 + "SHORT_NAME,"+ // 01 + "COLOR "+ // 02 + "from CLOCKS "; + + return sql; +} + + +QPixmap ClockListModel::MakeIcon(const QString &color) const +{ + QPixmap pix(QSize(15,15)); + QPainter *p=new QPainter(); + p->begin(&pix); + p->fillRect(0,0,15,15,QColor(color)); + p->end(); + delete p; + + return pix; +} diff --git a/rdlogmanager/clocklistmodel.h b/rdlogmanager/clocklistmodel.h new file mode 100644 index 00000000..a8fc7c34 --- /dev/null +++ b/rdlogmanager/clocklistmodel.h @@ -0,0 +1,76 @@ +// clocklistmodel.h +// +// Data model for Rivendell rdlogmanager(1) events +// +// (C) Copyright 2021 Fred Gleason +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as +// published by the Free Software Foundation. +// +// 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; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// + +#ifndef CLOCKLISTMODEL_H +#define CLOCKLISTMODEL_H + +#include +#include +#include +#include +#include + +#include +#include +#include + +class ClockListModel : public QAbstractTableModel +{ + Q_OBJECT + public: + ClockListModel(QObject *parent=0); + ~ClockListModel(); + QPalette palette(); + void setPalette(const QPalette &pal); + void setFont(const QFont &font); + int columnCount(const QModelIndex &parent=QModelIndex()) const; + int rowCount(const QModelIndex &parent=QModelIndex()) const; + QVariant headerData(int section,Qt::Orientation orient, + int role=Qt::DisplayRole) const; + QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const; + QString clockName(const QModelIndex &row) const; + QModelIndex addClock(const QString &name); + QModelIndex clockIndex(const QString &name); + void removeClock(const QModelIndex &row); + void removeClock(const QString &name); + void refresh(const QModelIndex &row); + void refresh(const QString &name); + void setFilterSql(const QString &sql); + + protected: + void updateModel(); + void updateRowLine(int line); + void updateRow(int row,RDSqlQuery *q); + QString sqlFields() const; + + private: + QPixmap MakeIcon(const QString &color) const; + QPalette d_palette; + QFont d_font; + QFont d_bold_font; + QList d_headers; + QList d_alignments; + QList > d_texts; + QList d_icons; + QString d_filter_sql; +}; + + +#endif // CLOCKLISTMODEL_H diff --git a/rdlogmanager/edit_clock.cpp b/rdlogmanager/edit_clock.cpp index 53edc3a5..ab31e09e 100644 --- a/rdlogmanager/edit_clock.cpp +++ b/rdlogmanager/edit_clock.cpp @@ -2,7 +2,7 @@ // // Edit Rivendell Log Clock // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -173,6 +173,7 @@ EditClock::EditClock(QString clockname,bool new_clock, button->setFont(buttonFont()); button->setText(tr("Save &As")); connect(button,SIGNAL(clicked()),this,SLOT(saveAsData())); + button->setDisabled(new_clock); // // Service Associations Button diff --git a/rdlogmanager/list_clocks.cpp b/rdlogmanager/list_clocks.cpp index d32d428e..63291dd2 100644 --- a/rdlogmanager/list_clocks.cpp +++ b/rdlogmanager/list_clocks.cpp @@ -2,7 +2,7 @@ // // List Rivendell Log Clocks // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -18,8 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include +#include #include @@ -55,16 +54,16 @@ ListClocks::ListClocks(QString *clockname,QWidget *parent) // // Clocks List // - edit_clocks_list=new Q3ListView(this); - edit_clocks_list->setAllColumnsShowFocus(true); - edit_clocks_list->setItemMargin(5); - edit_clocks_list->addColumn(tr("Name")); - edit_clocks_list->addColumn(tr("Code")); - edit_clocks_list->addColumn(tr("Color")); - edit_clocks_list->setColumnAlignment(2,Qt::AlignCenter); - connect(edit_clocks_list, - SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), - this,SLOT(doubleClickedData(Q3ListViewItem *,const QPoint &,int))); + edit_clocks_view=new RDTableView(this); + edit_clocks_model=new ClockListModel(this); + edit_clocks_model->setFont(font()); + edit_clocks_model->setPalette(palette()); + edit_clocks_view->setModel(edit_clocks_model); + connect(edit_clocks_view,SIGNAL(doubleClicked(const QModelIndex &)), + this,SLOT(doubleClickedData(const QModelIndex &))); + connect(edit_clocks_model,SIGNAL(modelReset()), + edit_clocks_view,SLOT(resizeColumnsToContents())); + edit_clocks_view->resizeColumnsToContents(); // // Add Button @@ -166,15 +165,10 @@ ListClocks::ListClocks(QString *clockname,QWidget *parent) edit_filter_box->setCurrentItem(edit_filter_box->count()-1); } } - RefreshList(); - if(edit_clockname!=NULL) { - Q3ListViewItem *item=edit_clocks_list->firstChild(); - while(item!=NULL) { - if(item->text(0)==*edit_clockname) { - edit_clocks_list->setSelected(item,true); - } - item=item->nextSibling(); + QModelIndex row=edit_clocks_model->clockIndex(*edit_clockname); + if(row.isValid()) { + edit_clocks_view->selectRow(row.row()); } } } @@ -258,10 +252,10 @@ void ListClocks::addData() "SERVICE_NAME=\""+RDEscapeString(edit_filter_box->currentText())+"\""; RDSqlQuery::apply(sql); } - Q3ListViewItem *item=new Q3ListViewItem(edit_clocks_list); - item->setText(0,clockname); - RefreshItem(item,&new_clocks); - edit_clocks_list->setSelected(item,true); + QModelIndex row=edit_clocks_model->addClock(clockname); + if(row.isValid()) { + edit_clocks_view->selectRow(row.row()); + } } delete clock_dialog; } @@ -270,17 +264,23 @@ void ListClocks::addData() void ListClocks::editData() { std::vector new_clocks; - Q3ListViewItem *item=edit_clocks_list->selectedItem(); - if(item==NULL) { + QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } - EditClock *clock_dialog=new EditClock(item->text(0),false,&new_clocks,this); + EditClock *clock_dialog= + new EditClock(edit_clocks_model->clockName(rows.first()),false, + &new_clocks,this); if(clock_dialog->exec()<0) { delete clock_dialog; return; } delete clock_dialog; - RefreshItem(item,&new_clocks); + edit_clocks_model->refresh(rows.first()); + for(unsigned i=0;iaddClock(new_clocks.at(i)); + } } @@ -288,20 +288,21 @@ void ListClocks::deleteData() { int n; QString svc_list; - Q3ListViewItem *item=edit_clocks_list->selectedItem(); - if(item==NULL) { + QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } if(QMessageBox::question(this,"RDLogManager - "+tr("Delete Clock"), tr("Are you sure you want to delete")+" \""+ - item->text(0)+"\"?", + edit_clocks_model->clockName(rows.first())+"\"?", QMessageBox::Yes,QMessageBox::No) !=QMessageBox::Yes) { return; } - if((n=ActiveClocks(item->text(0),&svc_list))>0) { + if((n=ActiveClocks(edit_clocks_model->clockName(rows.first()),&svc_list))>0) { if(QMessageBox::warning(this,"RDLogManager - "+tr("Clock In Use"), - "\""+item->text(0)+"\" "+ + "\""+edit_clocks_model->clockName(rows.first())+"\" "+ tr("is in use in the following grid(s)")+":\n\n"+ svc_list+"\n"+ tr("Do you still want to delete it?"), @@ -310,8 +311,8 @@ void ListClocks::deleteData() return; } } - DeleteClock(item->text(0)); - RefreshList(); + DeleteClock(edit_clocks_model->clockName(rows.first())); + edit_clocks_model->removeClock(rows.first()); } @@ -319,12 +320,13 @@ void ListClocks::renameData() { QString sql; RDSqlQuery *q; - RDSqlQuery *q1; - Q3ListViewItem *item=edit_clocks_list->selectedItem(); - if(item==NULL) { + QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } - QString new_name=item->text(0); + QString old_name=edit_clocks_model->clockName(rows.first()); + QString new_name=old_name; RenameItem *rename_dialog=new RenameItem(&new_name,"CLOCKS",this); if(rename_dialog->exec()<-1) { delete rename_dialog; @@ -343,9 +345,8 @@ void ListClocks::renameData() for(int i=0;i<168;i++) { sql=QString("update SERVICE_CLOCKS set ")+ "CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+ - "CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\""; - q1=new RDSqlQuery(sql); - delete q1; + "CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\""; + RDSqlQuery::apply(sql); } } delete q; @@ -355,13 +356,12 @@ void ListClocks::renameData() // sql=QString("update CLOCK_LINES set ")+ "CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+ - "CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\""; - q=new RDSqlQuery(sql); - delete q; + "CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\""; + RDSqlQuery::apply(sql); sql=QString("update RULE_LINES set ")+ "CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+ - "CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\""; + "CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\""; RDSqlQuery::apply(sql); // @@ -369,31 +369,42 @@ void ListClocks::renameData() // sql=QString("update CLOCK_PERMS set ")+ "CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+ - "CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\""; - q=new RDSqlQuery(sql); - delete q; + "CLOCK_NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\""; + RDSqlQuery::apply(sql); // // Rename Primary Key // sql=QString("update CLOCKS set ")+ "NAME=\""+RDEscapeString(new_name)+"\" where "+ - "NAME=\""+RDEscapeString(item->text(0))+"\""; - q=new RDSqlQuery(sql); - delete q; + "NAME=\""+RDEscapeString(edit_clocks_model->clockName(rows.first()))+"\""; + RDSqlQuery::apply(sql); - item->setText(0,new_name); - RefreshItem(item); + edit_clocks_model->removeClock(old_name); + QModelIndex row=edit_clocks_model->addClock(new_name); + if(row.isValid()) { + edit_clocks_view->selectRow(row.row()); + } } void ListClocks::filterActivatedData(int id) { - RefreshList(); + QString filter; + + if(id==1) { + filter=GetNoneFilter(); + } + else { + if(id>1) { + filter=GetClockFilter(edit_filter_box->currentText()); + } + } + edit_clocks_model->setFilterSql(filter); } -void ListClocks::doubleClickedData(Q3ListViewItem *item,const QPoint &,int) +void ListClocks::doubleClickedData(const QModelIndex &index) { if(edit_clockname==NULL) { editData(); @@ -413,22 +424,19 @@ void ListClocks::closeData() void ListClocks::clearData() { - Q3ListViewItem *item=edit_clocks_list->selectedItem(); - if(item!=NULL) { - edit_clocks_list->setSelected(item,false); - } + edit_clocks_view->clearSelection(); } void ListClocks::okData() { - Q3ListViewItem *item=edit_clocks_list->selectedItem(); *clock_filter=edit_filter_box->currentText(); - if(item==NULL) { - *edit_clockname=""; + QModelIndexList rows=edit_clocks_view->selectionModel()->selectedRows(); + if(rows.size()==1) { + *edit_clockname=edit_clocks_model->clockName(rows.first()); } else { - *edit_clockname=item->text(0); + *edit_clockname=""; } done(0); } @@ -444,7 +452,7 @@ void ListClocks::resizeEvent(QResizeEvent *e) { edit_filter_box->setGeometry(65,10,size().width()-75,20); edit_filter_label->setGeometry(10,10,50,20); - edit_clocks_list->setGeometry(10,45, + edit_clocks_view->setGeometry(10,45, size().width()-20,size().height()-115); edit_add_button->setGeometry(10,size().height()-60,80,50); edit_edit_button->setGeometry(100,size().height()-60,80,50); @@ -466,86 +474,6 @@ void ListClocks::closeEvent(QCloseEvent *e) } -void ListClocks::RefreshList() -{ - QString filter; - - if(edit_filter_box->currentItem()==1) { - filter=GetNoneFilter(); - } - else { - if(edit_filter_box->currentItem()>1) { - filter=GetClockFilter(edit_filter_box->currentText()); - } - } - - edit_clocks_list->clear(); - QString sql=QString("select ")+ - "NAME,"+ // 00 - "SHORT_NAME,"+ // 01 - "COLOR "+ // 02 - "from CLOCKS "+filter; - RDSqlQuery *q=new RDSqlQuery(sql); - Q3ListViewItem *item=NULL; - while(q->next()) { - item=new Q3ListViewItem(edit_clocks_list); - WriteItem(item,q); - } - delete q; -} - - -void ListClocks::RefreshItem(Q3ListViewItem *item, - std::vector *new_clocks) -{ - Q3ListViewItem *new_item; - UpdateItem(item,item->text(0)); - - if(new_clocks!=NULL) { - for(unsigned i=0;isize();i++) { - if((new_item=edit_clocks_list->findItem(new_clocks->at(i),0))==NULL) { - new_item=new Q3ListViewItem(edit_clocks_list); - } - UpdateItem(new_item,new_clocks->at(i)); - } - } -} - - -void ListClocks::UpdateItem(Q3ListViewItem *item,QString name) -{ - QString sql=QString("select ")+ - "NAME,"+ // 00 - "SHORT_NAME,"+ // 01 - "COLOR "+ // 02 - "from CLOCKS where "+ - "NAME=\""+RDEscapeString(name)+"\""; - RDSqlQuery *q=new RDSqlQuery(sql); - if(q->next()) { - item->setText(0,name); - WriteItem(item,q); - } - delete q; -} - - -void ListClocks::WriteItem(Q3ListViewItem *item,RDSqlQuery *q) -{ - QPixmap *pix; - QPainter *p=new QPainter(); - - item->setText(0,q->value(0).toString()); - item->setText(1,q->value(1).toString()); - pix=new QPixmap(QSize(15,15)); - p->begin(pix); - p->fillRect(0,0,15,15,QColor(q->value(2).toString())); - p->end(); - item->setPixmap(2,*pix); - - delete p; -} - - int ListClocks::ActiveClocks(QString clockname,QString *svc_list) { int n=0; diff --git a/rdlogmanager/list_clocks.h b/rdlogmanager/list_clocks.h index 8879b56c..1eb35dd8 100644 --- a/rdlogmanager/list_clocks.h +++ b/rdlogmanager/list_clocks.h @@ -2,7 +2,7 @@ // // List Rivendell Log Clocks // -// (C) Copyright 2002-2019 Fred Gleason +// (C) Copyright 2002-2021 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -21,13 +21,13 @@ #ifndef LIST_CLOCKS_H #define LIST_CLOCKS_H -#include - -#include -#include +#include #include #include +#include + +#include "clocklistmodel.h" class ListClocks : public RDDialog { @@ -42,7 +42,7 @@ class ListClocks : public RDDialog void editData(); void deleteData(); void renameData(); - void doubleClickedData(Q3ListViewItem *,const QPoint &,int); + void doubleClickedData(const QModelIndex &index); void filterActivatedData(int id); void closeData(); void clearData(); @@ -54,15 +54,12 @@ class ListClocks : public RDDialog void closeEvent(QCloseEvent *e); private: - void RefreshList(); - void RefreshItem(Q3ListViewItem *item,std::vector *new_clocks=NULL); - void UpdateItem(Q3ListViewItem *item,QString name); - void WriteItem(Q3ListViewItem *item,RDSqlQuery *q); int ActiveClocks(QString clockname,QString *svc_list); void DeleteClock(QString clockname); QString GetClockFilter(QString svc_name); QString GetNoneFilter(); - Q3ListView *edit_clocks_list; + RDTableView *edit_clocks_view; + ClockListModel *edit_clocks_model; QString *edit_clockname; QLabel *edit_filter_label; QComboBox *edit_filter_box; diff --git a/rdlogmanager/rdlogmanager_cs.ts b/rdlogmanager/rdlogmanager_cs.ts index ac361ff4..fb261967 100644 --- a/rdlogmanager/rdlogmanager_cs.ts +++ b/rdlogmanager/rdlogmanager_cs.ts @@ -1206,15 +1206,15 @@ Opětovné sloučení tato data smaže. Sloučit znovu? Name - Název + Název Code - Kód + Kód Color - Barva + Barva &Add @@ -1258,11 +1258,11 @@ Opětovné sloučení tato data smaže. Sloučit znovu? Clock Exists - Hodiny existují + Hodiny existují An clock with that name already exists! - Hodiny s tímto názvem již existují! + Hodiny s tímto názvem již existují! Are you sure you want to @@ -1271,7 +1271,7 @@ delete Delete Clock - Smazat hodiny + Smazat hodiny is in use in the following grid(s): @@ -1279,11 +1279,11 @@ delete Do you still want to delete it? - Stále ještě chcete smazat? + Stále ještě chcete smazat? Clock In Use - Používané hodiny + Používané hodiny Log Clocks - User: diff --git a/rdlogmanager/rdlogmanager_de.ts b/rdlogmanager/rdlogmanager_de.ts index f7366661..69a84021 100644 --- a/rdlogmanager/rdlogmanager_de.ts +++ b/rdlogmanager/rdlogmanager_de.ts @@ -1206,15 +1206,15 @@ Einbinden wird diese entfernen. Fortfahren? Name - Name + Name Code - Code + Code Color - Farbe + Farbe &Add @@ -1258,11 +1258,11 @@ Einbinden wird diese entfernen. Fortfahren? Clock Exists - Uhr existiert + Uhr existiert An clock with that name already exists! - Eine Uhr mit diesem Namen existiert bereits! + Eine Uhr mit diesem Namen existiert bereits! Are you sure you want to @@ -1271,7 +1271,7 @@ delete Delete Clock - Uhr löschen + Uhr löschen is in use in the following grid(s): @@ -1279,11 +1279,11 @@ delete Do you still want to delete it? - Wollen Sie immernoch löschen? + Wollen Sie immernoch löschen? Clock In Use - Uhr in Verwendung + Uhr in Verwendung Log Clocks - User: diff --git a/rdlogmanager/rdlogmanager_es.ts b/rdlogmanager/rdlogmanager_es.ts index 107c983c..d074d814 100644 --- a/rdlogmanager/rdlogmanager_es.ts +++ b/rdlogmanager/rdlogmanager_es.ts @@ -1208,15 +1208,15 @@ removerá estos datos. ¿Remezclar? Name - Nombre + Nombre Code - Código + Código Color - Color + Color &Add @@ -1252,11 +1252,11 @@ removerá estos datos. ¿Remezclar? Clock Exists - Ya existe una torta + Ya existe una torta An clock with that name already exists! - ¡Una torta con ese nombre ya existe! + ¡Una torta con ese nombre ya existe! Are you sure you want to @@ -1266,7 +1266,7 @@ eliminar Delete Clock - Eliminar torta + Eliminar torta is in use in the following grid(s): @@ -1274,11 +1274,11 @@ eliminar Do you still want to delete it? - ¿Desea eliminarla de cualquier forma? + ¿Desea eliminarla de cualquier forma? Clock In Use - Torta en uso + Torta en uso &Rename diff --git a/rdlogmanager/rdlogmanager_fr.ts b/rdlogmanager/rdlogmanager_fr.ts index 881941a0..d1c3b336 100644 --- a/rdlogmanager/rdlogmanager_fr.ts +++ b/rdlogmanager/rdlogmanager_fr.ts @@ -913,18 +913,6 @@ Do you want to save? Filter: - - Name - - - - Code - - - - Color - - &Add @@ -965,6 +953,10 @@ Do you want to save? NONE + + Log Clocks + + Clock Exists @@ -978,25 +970,21 @@ Do you want to save? - Do you still want to delete it? + Are you sure you want to delete Clock In Use - - Log Clocks - - - - Are you sure you want to delete - - is in use in the following grid(s) + + Do you still want to delete it? + + ListEvents diff --git a/rdlogmanager/rdlogmanager_nb.ts b/rdlogmanager/rdlogmanager_nb.ts index 59889fab..42c0599b 100644 --- a/rdlogmanager/rdlogmanager_nb.ts +++ b/rdlogmanager/rdlogmanager_nb.ts @@ -1215,15 +1215,15 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt? Name - Namn + Namn Code - Kode + Kode Color - Farge + Farge &Add @@ -1267,11 +1267,11 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt? Clock Exists - Klokka eksisterer + Klokka eksisterer An clock with that name already exists! - Det finst alt ei klokke med dette namnet! + Det finst alt ei klokke med dette namnet! Are you sure you want to @@ -1281,7 +1281,7 @@ sletta Delete Clock - Slett klokka + Slett klokka is in use in the following grid(s): @@ -1289,11 +1289,11 @@ sletta Do you still want to delete it? - Vil du framleis sletta? + Vil du framleis sletta? Clock In Use - Klokka er i bruk + Klokka er i bruk Are you sure you want to delete diff --git a/rdlogmanager/rdlogmanager_nn.ts b/rdlogmanager/rdlogmanager_nn.ts index 59889fab..42c0599b 100644 --- a/rdlogmanager/rdlogmanager_nn.ts +++ b/rdlogmanager/rdlogmanager_nn.ts @@ -1215,15 +1215,15 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt? Name - Namn + Namn Code - Kode + Kode Color - Farge + Farge &Add @@ -1267,11 +1267,11 @@ Flettar du på nytt, vil du fjerna desse dataa. Flett på nytt? Clock Exists - Klokka eksisterer + Klokka eksisterer An clock with that name already exists! - Det finst alt ei klokke med dette namnet! + Det finst alt ei klokke med dette namnet! Are you sure you want to @@ -1281,7 +1281,7 @@ sletta Delete Clock - Slett klokka + Slett klokka is in use in the following grid(s): @@ -1289,11 +1289,11 @@ sletta Do you still want to delete it? - Vil du framleis sletta? + Vil du framleis sletta? Clock In Use - Klokka er i bruk + Klokka er i bruk Are you sure you want to delete diff --git a/rdlogmanager/rdlogmanager_pt_BR.ts b/rdlogmanager/rdlogmanager_pt_BR.ts index 559e2b3c..30ed3aad 100644 --- a/rdlogmanager/rdlogmanager_pt_BR.ts +++ b/rdlogmanager/rdlogmanager_pt_BR.ts @@ -1212,15 +1212,15 @@ Re-agregar removerá estes dados. Re-agregar? Name - Nome: + Nome: Code - Código + Código Color - Cor + Cor &Add @@ -1264,11 +1264,11 @@ Re-agregar removerá estes dados. Re-agregar? Clock Exists - Relógio Existente + Relógio Existente An clock with that name already exists! - Um Relógio com este nome já existe! + Um Relógio com este nome já existe! Are you sure you want to @@ -1278,7 +1278,7 @@ deletar Delete Clock - Deletar Relógio + Deletar Relógio is in use in the following grid(s): @@ -1286,11 +1286,11 @@ deletar Do you still want to delete it? - Tem certeza que quer deletá-lo? + Tem certeza que quer deletá-lo? Clock In Use - Relógio em Uso + Relógio em Uso Log Clocks