From 040711e1d8145a9ad19e82cdcf20a81938a662d9 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 27 Jan 2021 10:46:18 -0500 Subject: [PATCH] 2021-01-27 Fred Gleason * Added 'RDReplicatorListModel'. * Refactored the 'Rivendell Replicators' dialog in rdadmin(1) to use the model-based API. Signed-off-by: Fred Gleason --- ChangeLog | 4 + lib/Makefile.am | 2 + lib/lib.pro | 2 + lib/librd_cs.ts | 19 +++ lib/librd_de.ts | 19 +++ lib/librd_es.ts | 19 +++ lib/librd_fr.ts | 19 +++ lib/librd_nb.ts | 19 +++ lib/librd_nn.ts | 19 +++ lib/librd_pt_BR.ts | 19 +++ lib/rdreplicatorlistmodel.cpp | 287 ++++++++++++++++++++++++++++++++++ lib/rdreplicatorlistmodel.h | 70 +++++++++ rdadmin/add_replicator.cpp | 23 +-- rdadmin/edit_replicator.cpp | 6 +- rdadmin/list_replicators.cpp | 156 ++++++------------ rdadmin/list_replicators.h | 20 ++- rdadmin/rdadmin_cs.ts | 12 +- rdadmin/rdadmin_de.ts | 10 +- rdadmin/rdadmin_es.ts | 12 +- rdadmin/rdadmin_fr.ts | 16 -- rdadmin/rdadmin_nb.ts | 10 +- rdadmin/rdadmin_nn.ts | 10 +- rdadmin/rdadmin_pt_BR.ts | 10 +- 23 files changed, 588 insertions(+), 195 deletions(-) create mode 100644 lib/rdreplicatorlistmodel.cpp create mode 100644 lib/rdreplicatorlistmodel.h diff --git a/ChangeLog b/ChangeLog index d4818635..def027c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20922,3 +20922,7 @@ model-based API. 2021-01-26 Fred Gleason * Added 'RDTableView' and 'RDTreeView' base viewer classes. +2021-01-27 Fred Gleason + * Added 'RDReplicatorListModel'. + * Refactored the 'Rivendell Replicators' dialog in rdadmin(1) to + use the model-based API. diff --git a/lib/Makefile.am b/lib/Makefile.am index 40dadccd..bb0e4e5f 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -212,6 +212,7 @@ dist_librd_la_SOURCES = dbversion.h\ rdrehash.cpp rdrehash.h\ rdrenderer.cpp rdrenderer.h\ rdreplicator.cpp rdreplicator.h\ + rdreplicatorlistmodel.cpp rdreplicatorlistmodel.h\ rdreport.cpp rdreport.h\ rdringbuffer.cpp rdringbuffer.h\ rdripc.cpp rdripc.h\ @@ -360,6 +361,7 @@ nodist_librd_la_SOURCES = moc_rdadd_cart.cpp\ moc_rdpypadlistmodel.cpp\ moc_rdrehash.cpp\ moc_rdrenderer.cpp\ + moc_rdreplicatorlistmodel.cpp\ moc_rdripc.cpp\ moc_rdschedcodes_dialog.cpp\ moc_rdrsscategorybox.cpp\ diff --git a/lib/lib.pro b/lib/lib.pro index 7b459649..2cb7f35f 100644 --- a/lib/lib.pro +++ b/lib/lib.pro @@ -156,6 +156,7 @@ SOURCES += rdpypadlistmodel.cpp SOURCES += rdrecording.cpp SOURCES += rdrehash.cpp SOURCES += rdrenderer.cpp +SOURCES += rdreplicatorlistmodel.cpp SOURCES += rdreport.cpp SOURCES += rdripc.cpp SOURCES += rdrssschemas.cpp @@ -320,6 +321,7 @@ HEADERS += rdpypadlistmodel.h HEADERS += rdrecording.h HEADERS += rdrehash.h HEADERS += rdrenderer.h +HEADERS += rdreplicatorlistmodel.h HEADERS += rdreport.h HEADERS += rdripc.h HEADERS += rdrssschemas.h diff --git a/lib/librd_cs.ts b/lib/librd_cs.ts index ec01e754..b19a674d 100644 --- a/lib/librd_cs.ts +++ b/lib/librd_cs.ts @@ -3631,6 +3631,25 @@ Zkuste to, prosím, znovu! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDReport diff --git a/lib/librd_de.ts b/lib/librd_de.ts index a40398ce..bb887e2a 100644 --- a/lib/librd_de.ts +++ b/lib/librd_de.ts @@ -3612,6 +3612,25 @@ bitte erneut versuchen! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDReport diff --git a/lib/librd_es.ts b/lib/librd_es.ts index 054565e0..a8e0639d 100644 --- a/lib/librd_es.ts +++ b/lib/librd_es.ts @@ -3599,6 +3599,25 @@ please try again! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDReport diff --git a/lib/librd_fr.ts b/lib/librd_fr.ts index 0bbd19ff..ad68bebf 100644 --- a/lib/librd_fr.ts +++ b/lib/librd_fr.ts @@ -2951,6 +2951,25 @@ please try again! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDServiceListModel diff --git a/lib/librd_nb.ts b/lib/librd_nb.ts index 3e2007de..2c44215c 100644 --- a/lib/librd_nb.ts +++ b/lib/librd_nb.ts @@ -3510,6 +3510,25 @@ prøv ein gong til! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDReport diff --git a/lib/librd_nn.ts b/lib/librd_nn.ts index 3e2007de..2c44215c 100644 --- a/lib/librd_nn.ts +++ b/lib/librd_nn.ts @@ -3510,6 +3510,25 @@ prøv ein gong til! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDReport diff --git a/lib/librd_pt_BR.ts b/lib/librd_pt_BR.ts index eae77582..40ce5659 100644 --- a/lib/librd_pt_BR.ts +++ b/lib/librd_pt_BR.ts @@ -3545,6 +3545,25 @@ por favor, tente novamente! + + RDReplicatorListModel + + Name + + + + Type + + + + Description + + + + Host + + + RDReport diff --git a/lib/rdreplicatorlistmodel.cpp b/lib/rdreplicatorlistmodel.cpp new file mode 100644 index 00000000..d5ab5604 --- /dev/null +++ b/lib/rdreplicatorlistmodel.cpp @@ -0,0 +1,287 @@ +// rdreplicatorlistmodel.cpp +// +// Data model for Rivendell services +// +// (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 "rdapplication.h" +#include "rdescape_string.h" +#include "rdreplicator.h" +#include "rdreplicatorlistmodel.h" + +RDReplicatorListModel::RDReplicatorListModel(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("Type")); + d_alignments.push_back(left); + + d_headers.push_back(tr("Description")); + d_alignments.push_back(left); + + d_headers.push_back(tr("Host")); + d_alignments.push_back(left); + + updateModel(); +} + + +RDReplicatorListModel::~RDReplicatorListModel() +{ +} + + +QPalette RDReplicatorListModel::palette() +{ + return d_palette; +} + + +void RDReplicatorListModel::setPalette(const QPalette &pal) +{ + d_palette=pal; +} + + +void RDReplicatorListModel::setFont(const QFont &font) +{ + d_font=font; + d_bold_font=font; + d_bold_font.setWeight(QFont::Bold); +} + + +int RDReplicatorListModel::columnCount(const QModelIndex &parent) const +{ + return d_headers.size(); +} + + +int RDReplicatorListModel::rowCount(const QModelIndex &parent) const +{ + return d_texts.size(); +} + + +QVariant RDReplicatorListModel::headerData(int section,Qt::Orientation orient, + int role) const +{ + if((orient==Qt::Horizontal)&&(role==Qt::DisplayRole)) { + return d_headers.at(section); + } + return QVariant(); +} + + +QVariant RDReplicatorListModel::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 RDReplicatorListModel::refresh(const QString &replname) +{ + for(int i=0;i texts; + + RDSqlQuery *q=NULL; + QString sql=sqlFields(); + sql+="order by REPLICATORS.NAME "; + beginResetModel(); + d_texts.clear(); + q=new RDSqlQuery(sql); + while(q->next()) { + d_texts.push_back(texts); + updateRow(d_texts.size()-1,q); + } + delete q; + endResetModel(); +} + + +void RDReplicatorListModel::updateRowLine(int line) +{ + if(linefirst()) { + updateRow(line,q); + } + delete q; + } +} + + +void RDReplicatorListModel::updateRow(int row,RDSqlQuery *q) +{ + QList texts; + + // Name + texts.push_back(q->value(0)); + + // Type + texts.push_back(RDReplicator::typeString((RDReplicator::Type)q->value(1). + toUInt())); + + // Description + texts.push_back(q->value(2)); + + // Host + texts.push_back(q->value(3)); + + d_texts[row]=texts; +} + + +QString RDReplicatorListModel::sqlFields() const +{ + QString sql=QString("select ")+ + "REPLICATORS.NAME,"+ // 00 + "REPLICATORS.TYPE_ID,"+ // 01 + "REPLICATORS.DESCRIPTION,"+ // 02 + "REPLICATORS.STATION_NAME "+ // 03 + "from REPLICATORS "; + + return sql; +} diff --git a/lib/rdreplicatorlistmodel.h b/lib/rdreplicatorlistmodel.h new file mode 100644 index 00000000..d15926fe --- /dev/null +++ b/lib/rdreplicatorlistmodel.h @@ -0,0 +1,70 @@ +// rdreplicatorlistmodel.h +// +// Data model for Rivendell services +// +// (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 RDREPLICATORLISTMODEL_H +#define RDREPLICATORLISTMODEL_H + +#include +#include +#include +#include + +#include +#include +#include + +class RDReplicatorListModel : public QAbstractTableModel +{ + Q_OBJECT + public: + RDReplicatorListModel(QObject *parent=0); + ~RDReplicatorListModel(); + 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 replicatorName(const QModelIndex &row) const; + QModelIndex addReplicator(const QString &replname); + void removeReplicator(const QModelIndex &row); + void removeReplicator(const QString &replname); + void refresh(const QModelIndex &row); + void refresh(const QString &replname); + + protected: + void updateModel(); + void updateRowLine(int line); + void updateRow(int row,RDSqlQuery *q); + QString sqlFields() const; + + private: + QPalette d_palette; + QFont d_font; + QFont d_bold_font; + QList d_headers; + QList d_alignments; + QList > d_texts; +}; + + +#endif // RDREPLICATORLISTMODEL_H diff --git a/rdadmin/add_replicator.cpp b/rdadmin/add_replicator.cpp index b319658c..1477a19b 100644 --- a/rdadmin/add_replicator.cpp +++ b/rdadmin/add_replicator.cpp @@ -2,7 +2,7 @@ // // Add a Rivendell Replicator Configuration // -// (C) Copyright 2010-2019 Fred Gleason +// (C) Copyright 2010-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 @@ -20,18 +20,9 @@ #include #include -#include -#include -#include -#include -#include #include -#include -#include -#include #include -#include #include #include "edit_replicator.h" @@ -47,10 +38,8 @@ AddReplicator::AddReplicator(QString *rname,QWidget *parent) // // Fix the Window Size // - setMinimumWidth(sizeHint().width()); - setMaximumWidth(sizeHint().width()); - setMinimumHeight(sizeHint().height()); - setMaximumHeight(sizeHint().height()); + setMinimumSize(sizeHint()); + setMaximumSize(sizeHint()); setWindowTitle("RDAdmin - "+tr("Add Replicator")); @@ -138,16 +127,16 @@ void AddReplicator::okData() q=new RDSqlQuery(sql); delete q; delete replicator; - done(-1); + done(false); return; } delete replicator; *repl_name=repl_name_edit->text(); - done(0); + done(true); } void AddReplicator::cancelData() { - done(-1); + done(false); } diff --git a/rdadmin/edit_replicator.cpp b/rdadmin/edit_replicator.cpp index 0644faf2..13429dd3 100644 --- a/rdadmin/edit_replicator.cpp +++ b/rdadmin/edit_replicator.cpp @@ -2,7 +2,7 @@ // // Edit a Rivendell Replicator // -// (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 @@ -342,11 +342,11 @@ void EditReplicator::okData() q=new RDSqlQuery(sql); delete q; - done(0); + done(true); } void EditReplicator::cancelData() { - done(-1); + done(false); } diff --git a/rdadmin/list_replicators.cpp b/rdadmin/list_replicators.cpp index c9957913..9a23ce0e 100644 --- a/rdadmin/list_replicators.cpp +++ b/rdadmin/list_replicators.cpp @@ -2,7 +2,7 @@ // // List Rivendell Replication Configurations // -// (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 @@ -18,13 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include -#include - -#include -#include -#include #include #include @@ -36,13 +31,10 @@ ListReplicators::ListReplicators(QWidget *parent) : RDDialog(parent) { - setModal(true); - // // Fix the Window Size // - setMinimumWidth(sizeHint().width()); - setMinimumHeight(sizeHint().height()); + setMinimumSize(sizeHint()); setWindowTitle("RDAdmin - "+tr("Rivendell Replicators")); @@ -90,23 +82,19 @@ ListReplicators::ListReplicators(QWidget *parent) // // Replicator List // - list_replicators_view=new RDListView(this); - list_replicators_view->setAllColumnsShowFocus(true); - list_replicators_view->setItemMargin(5); - list_replicators_view->addColumn(tr("NAME")); - list_replicators_view->addColumn(tr("TYPE")); - list_replicators_view->addColumn(tr("DESCRIPTION")); - list_replicators_view->addColumn(tr("HOST")); - QLabel *list_box_label= + list_replicators_view=new RDTableView(this); + list_replicators_model=new RDReplicatorListModel(this); + list_replicators_model->setFont(defaultFont()); + list_replicators_model->setPalette(palette()); + list_replicators_view->setModel(list_replicators_model); + list_replicators_label= new QLabel(list_replicators_view,tr("&Replicators:"),this); - list_box_label->setFont(labelFont()); - list_box_label->setGeometry(14,11,85,19); - connect(list_replicators_view, - SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), - this, - SLOT(doubleClickedData(Q3ListViewItem *,const QPoint &,int))); - - RefreshList(); + list_replicators_label->setFont(labelFont()); + connect(list_replicators_view,SIGNAL(doubleClicked(const QModelIndex &)), + this,SLOT(doubleClickedData(const QModelIndex &))); + connect(list_replicators_model,SIGNAL(modelReset()), + list_replicators_view,SLOT(resizeColumnsToContents())); + list_replicators_view->resizeColumnsToContents(); } @@ -132,29 +120,27 @@ void ListReplicators::addData() QString name; AddReplicator *d=new AddReplicator(&name,this); - if(d->exec()<0) { - delete d; - return; + if(d->exec()) { + QModelIndex row=list_replicators_model->addReplicator(name); + if(row.isValid()) { + list_replicators_view->selectRow(row.row()); + } } delete d; - RDListViewItem *item=new RDListViewItem(list_replicators_view); - item->setText(0,name); - RefreshItem(item); - item->setSelected(true); - list_replicators_view->setCurrentItem(item); - list_replicators_view->ensureItemVisible(item); } void ListReplicators::editData() { - RDListViewItem *item=(RDListViewItem *)list_replicators_view->selectedItem(); - if(item==NULL) { + QModelIndexList rows=list_replicators_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } - EditReplicator *d=new EditReplicator(item->text(0),this); - if(d->exec()==0) { - RefreshItem(item); + EditReplicator *d=new EditReplicator(list_replicators_model-> + replicatorName(rows.first()),this); + if(d->exec()) { + list_replicators_model->refresh(rows.first()); } delete d; } @@ -162,19 +148,17 @@ void ListReplicators::editData() void ListReplicators::deleteData() { - RDListViewItem *item=(RDListViewItem *)list_replicators_view->selectedItem(); - if(item==NULL) { + QString sql; + QString warning; + QModelIndexList rows=list_replicators_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } - - QString sql; - RDSqlQuery *q; - QString warning; - - QString name=RDEscapeString(item->text(0)); + QString name=list_replicators_model->replicatorName(rows.first()); warning+=tr("Are you sure you want to delete replicator")+ - " \""+item->text(0)+"\"?"; + " \""+name+"\"?"; switch(QMessageBox::warning(this,tr("Delete Replicator"),warning, QMessageBox::Yes,QMessageBox::No)) { case QMessageBox::No: @@ -190,46 +174,44 @@ void ListReplicators::deleteData() // sql=QString("delete from REPLICATOR_MAP where ")+ "REPLICATOR_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; + RDSqlQuery::apply(sql); // // Delete State Records // sql=QString("delete from REPL_CART_STATE where ")+ "REPLICATOR_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; + RDSqlQuery::apply(sql); sql=QString("delete from REPL_CUT_STATE where ")+ "REPLICATOR_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; + RDSqlQuery::apply(sql); // // Delete from Replicator List // sql=QString("delete from REPLICATORS where ")+ "NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - delete item; + RDSqlQuery::apply(sql); + + list_replicators_model->removeReplicator(name); } void ListReplicators::listData() { - RDListViewItem *item=(RDListViewItem *)list_replicators_view->selectedItem(); - if(item==NULL) { + QModelIndexList rows=list_replicators_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } + QString name=list_replicators_model->replicatorName(rows.first()); ListReplicatorCarts *d=new ListReplicatorCarts(this); - d->exec(item->text(0)); + d->exec(name); delete d; } -void ListReplicators::doubleClickedData(Q3ListViewItem *item,const QPoint &pt, - int col) +void ListReplicators::doubleClickedData(const QModelIndex &index) { editData(); } @@ -237,7 +219,7 @@ void ListReplicators::doubleClickedData(Q3ListViewItem *item,const QPoint &pt, void ListReplicators::closeData() { - done(0); + done(true); } @@ -248,48 +230,6 @@ void ListReplicators::resizeEvent(QResizeEvent *e) list_delete_button->setGeometry(size().width()-90,150,80,50); list_list_button->setGeometry(size().width()-90,250,80,50); list_close_button->setGeometry(size().width()-90,size().height()-60,80,50); + list_replicators_label->setGeometry(14,11,85,19); list_replicators_view->setGeometry(10,30,size().width()-120,size().height()-40); } - - -void ListReplicators::RefreshList() -{ - QString sql; - RDSqlQuery *q; - RDListViewItem *item; - - list_replicators_view->clear(); - sql="select NAME,TYPE_ID,DESCRIPTION,STATION_NAME from REPLICATORS"; - q=new RDSqlQuery(sql); - while (q->next()) { - item=new RDListViewItem(list_replicators_view); - item->setText(0,q->value(0).toString()); - item->setText(1, - RDReplicator::typeString((RDReplicator::Type)q->value(1).toUInt())); - item->setText(2,q->value(2).toString()); - item->setText(3,q->value(3).toString()); - } - delete q; -} - - -void ListReplicators::RefreshItem(RDListViewItem *item) -{ - QString sql; - RDSqlQuery *q; - - sql=QString("select ")+ - "TYPE_ID,"+ // 00 - "DESCRIPTION,"+ // 01 - "STATION_NAME "+ // 02 - "from REPLICATORS where "+ - "NAME=\""+RDEscapeString(item->text(0))+"\""; - q=new RDSqlQuery(sql); - if(q->first()) { - item->setText(1, - RDReplicator::typeString((RDReplicator::Type)q->value(0).toUInt())); - item->setText(2,q->value(1).toString()); - item->setText(3,q->value(2).toString()); - } - delete q; -} diff --git a/rdadmin/list_replicators.h b/rdadmin/list_replicators.h index 9f2d1551..7de31f09 100644 --- a/rdadmin/list_replicators.h +++ b/rdadmin/list_replicators.h @@ -2,7 +2,7 @@ // // List Rivendell Replication Configurations // -// (C) Copyright 2010-2019 Fred Gleason +// (C) Copyright 2010-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,11 +21,11 @@ #ifndef LIST_REPLICATORS_H #define LIST_REPLICATORS_H -#include +#include -#include #include -#include +#include +#include class ListReplicators : public RDDialog { @@ -41,16 +41,16 @@ class ListReplicators : public RDDialog void editData(); void deleteData(); void listData(); - void doubleClickedData(Q3ListViewItem *item,const QPoint &pt,int col); + void doubleClickedData(const QModelIndex &index); void closeData(); protected: void resizeEvent(QResizeEvent *e); private: - void RefreshList(); - void RefreshItem(RDListViewItem *item); - RDListView *list_replicators_view; + QLabel *list_replicators_label; + RDTableView *list_replicators_view; + RDReplicatorListModel *list_replicators_model; QPushButton *list_add_button; QPushButton *list_edit_button; QPushButton *list_delete_button; @@ -59,6 +59,4 @@ class ListReplicators : public RDDialog }; -#endif - - +#endif // LIST_REPLICATORS_H diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 1e77bcda..ed3cbdf6 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -5975,19 +5975,19 @@ vozíky NAME - NÁZEV + NÁZEV TYPE - TYP + TYP DESCRIPTION - POPIS + POPIS HOST - SERVER + SERVER &Replicators: @@ -5995,11 +5995,11 @@ vozíky Are you sure you want to delete replicator - Opravdu chcete smazat toto zopakování + Opravdu chcete smazat toto zopakování Delete Replicator - Smazat zopakování + Smazat zopakování diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index 872b52ff..d5e9f362 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -5619,19 +5619,15 @@ Carts NAME - NAME + NAME TYPE - TYP + TYP DESCRIPTION - BESCHREIBUNG - - - HOST - + BESCHREIBUNG &Replicators: diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 73887eac..4e063d5a 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -5886,19 +5886,19 @@ Cartuchos NAME - NOMBRE + NOMBRE TYPE - TIPO + TIPO DESCRIPTION - DESCRIPCIÓN + DESCRIPCIÓN HOST - COMPUTADOR + COMPUTADOR &Replicators: @@ -5906,11 +5906,11 @@ Cartuchos Are you sure you want to delete replicator - Desea eliminar el replicador + Desea eliminar el replicador Delete Replicator - Eliminar Replicador + Eliminar Replicador diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index 010659f6..61cc00a6 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -4591,22 +4591,6 @@ Carts &Close - - NAME - - - - TYPE - - - - DESCRIPTION - - - - HOST - - &Replicators: diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index 09c4d5ca..3d98d89a 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -5476,19 +5476,15 @@ Carts NAME - NAMN + NAMN TYPE - TYPE + TYPE DESCRIPTION - SKILDRING - - - HOST - + SKILDRING &Replicators: diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index 09c4d5ca..3d98d89a 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -5476,19 +5476,15 @@ Carts NAME - NAMN + NAMN TYPE - TYPE + TYPE DESCRIPTION - SKILDRING - - - HOST - + SKILDRING &Replicators: diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index 686e5f0d..671623a0 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -5591,19 +5591,15 @@ Carts NAME - NOME + NOME TYPE - TIPO + TIPO DESCRIPTION - DESCRIÇÃO - - - HOST - + DESCRIÇÃO &Replicators: