From 7877144d77e0d4095182ed59c608d9ae3daba964 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 3 Feb 2021 12:58:35 -0500 Subject: [PATCH] 2021-02-03 Fred Gleason * Added 'RDReplCartListModel'. * Refactored the 'XDS Replicator Carts' 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/rdreplcartlistmodel.cpp | 358 ++++++++++++++++++++++++++++++ lib/rdreplcartlistmodel.h | 81 +++++++ rdadmin/list_replicator_carts.cpp | 145 +++--------- rdadmin/list_replicator_carts.h | 22 +- rdadmin/rdadmin_cs.ts | 8 +- rdadmin/rdadmin_de.ts | 16 -- rdadmin/rdadmin_es.ts | 8 +- rdadmin/rdadmin_fr.ts | 16 -- rdadmin/rdadmin_nb.ts | 16 -- rdadmin/rdadmin_nn.ts | 16 -- rdadmin/rdadmin_pt_BR.ts | 16 -- 21 files changed, 620 insertions(+), 223 deletions(-) create mode 100644 lib/rdreplcartlistmodel.cpp create mode 100644 lib/rdreplcartlistmodel.h diff --git a/ChangeLog b/ChangeLog index 2ef49b0b..f8efd3df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20996,3 +20996,7 @@ 2021-02-02 Fred Gleason * Refactored the 'System-Wide Settings' dialog in rdadmin(1) to use 'QMultiMap' instead of 'std::map'. +2021-02-03 Fred Gleason + * Added 'RDReplCartListModel'. + * Refactored the 'XDS Replicator Carts' dialog in rdadmin(1) to use + the model-based API. diff --git a/lib/Makefile.am b/lib/Makefile.am index 8b35add7..598c62dd 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -218,6 +218,7 @@ dist_librd_la_SOURCES = dbversion.h\ rdrecording.cpp rdrecording.h\ rdrehash.cpp rdrehash.h\ rdrenderer.cpp rdrenderer.h\ + rdreplcartlistmodel.cpp rdreplcartlistmodel.h\ rdreplicator.cpp rdreplicator.h\ rdreplicatorlistmodel.cpp rdreplicatorlistmodel.h\ rdreport.cpp rdreport.h\ @@ -377,6 +378,7 @@ nodist_librd_la_SOURCES = moc_rd3emptycart.cpp\ moc_rdpypadlistmodel.cpp\ moc_rdrehash.cpp\ moc_rdrenderer.cpp\ + moc_rdreplcartlistmodel.cpp\ moc_rdreplicatorlistmodel.cpp\ moc_rdresourcelistmodel.cpp\ moc_rdripc.cpp\ diff --git a/lib/lib.pro b/lib/lib.pro index 1cc77aaa..068e4f16 100644 --- a/lib/lib.pro +++ b/lib/lib.pro @@ -163,6 +163,7 @@ SOURCES += rdpypadlistmodel.cpp SOURCES += rdrecording.cpp SOURCES += rdrehash.cpp SOURCES += rdrenderer.cpp +SOURCES += rdreplcartlistmodel.cpp SOURCES += rdreplicatorlistmodel.cpp SOURCES += rdreport.cpp SOURCES += rdresourcelistmodel.cpp @@ -337,6 +338,7 @@ HEADERS += rdpypadlistmodel.h HEADERS += rdrecording.h HEADERS += rdrehash.h HEADERS += rdrenderer.h +HEADERS += rdreplcartlistmodel.h HEADERS += rdreplicatorlistmodel.h HEADERS += rdreport.h HEADERS += rdresourcelistmodel.h diff --git a/lib/librd_cs.ts b/lib/librd_cs.ts index 9f481346..80308353 100644 --- a/lib/librd_cs.ts +++ b/lib/librd_cs.ts @@ -3856,6 +3856,25 @@ Zkuste to, prosím, znovu! + + RDReplCartListModel + + Cart + Vozík + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/librd_de.ts b/lib/librd_de.ts index aeb5873a..1b3de496 100644 --- a/lib/librd_de.ts +++ b/lib/librd_de.ts @@ -3837,6 +3837,25 @@ bitte erneut versuchen! + + RDReplCartListModel + + Cart + Cart + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/librd_es.ts b/lib/librd_es.ts index 72bc175f..a79f62fb 100644 --- a/lib/librd_es.ts +++ b/lib/librd_es.ts @@ -3824,6 +3824,25 @@ please try again! + + RDReplCartListModel + + Cart + Cartucho + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/librd_fr.ts b/lib/librd_fr.ts index e7530271..135d3a83 100644 --- a/lib/librd_fr.ts +++ b/lib/librd_fr.ts @@ -3176,6 +3176,25 @@ please try again! + + RDReplCartListModel + + Cart + Cart + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/librd_nb.ts b/lib/librd_nb.ts index 3ba59f84..136b846d 100644 --- a/lib/librd_nb.ts +++ b/lib/librd_nb.ts @@ -3735,6 +3735,25 @@ prøv ein gong til! + + RDReplCartListModel + + Cart + Korg + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/librd_nn.ts b/lib/librd_nn.ts index 3ba59f84..136b846d 100644 --- a/lib/librd_nn.ts +++ b/lib/librd_nn.ts @@ -3735,6 +3735,25 @@ prøv ein gong til! + + RDReplCartListModel + + Cart + Korg + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/librd_pt_BR.ts b/lib/librd_pt_BR.ts index eff70c85..89036796 100644 --- a/lib/librd_pt_BR.ts +++ b/lib/librd_pt_BR.ts @@ -3770,6 +3770,25 @@ por favor, tente novamente! + + RDReplCartListModel + + Cart + Cartão + + + Title + + + + Last Posted + + + + Posted Filename + + + RDReplicatorListModel diff --git a/lib/rdreplcartlistmodel.cpp b/lib/rdreplcartlistmodel.cpp new file mode 100644 index 00000000..8af2c114 --- /dev/null +++ b/lib/rdreplcartlistmodel.cpp @@ -0,0 +1,358 @@ +// rdreplcartlistmodel.cpp +// +// Data model for replicator carts +// +// (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 "rdreplcartlistmodel.h" + +RDReplCartListModel::RDReplCartListModel(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("Cart")); + d_alignments.push_back(center); + + d_headers.push_back(tr("Title")); + d_alignments.push_back(center); + + d_headers.push_back(tr("Last Posted")); + d_alignments.push_back(left); + + d_headers.push_back(tr("Posted Filename")); + d_alignments.push_back(left); + + // + // Refresh Timer + // + d_refresh_timer=new QTimer(this); + d_refresh_timer->setSingleShot(true); + connect(d_refresh_timer,SIGNAL(timeout()),this,SLOT(refreshTimeoutData())); +} + + +RDReplCartListModel::~RDReplCartListModel() +{ + delete d_refresh_timer; +} + + +QPalette RDReplCartListModel::palette() +{ + return d_palette; +} + + +void RDReplCartListModel::setPalette(const QPalette &pal) +{ + d_palette=pal; +} + + +void RDReplCartListModel::setFont(const QFont &font) +{ + d_font=font; + d_bold_font=font; + d_bold_font.setWeight(QFont::Bold); +} + + +int RDReplCartListModel::columnCount(const QModelIndex &parent) const +{ + return d_headers.size(); +} + + +int RDReplCartListModel::rowCount(const QModelIndex &parent) const +{ + return d_texts.size(); +} + + +QVariant RDReplCartListModel::headerData(int section,Qt::Orientation orient, + int role) const +{ + if((orient==Qt::Horizontal)&&(role==Qt::DisplayRole)) { + return d_headers.at(section); + } + return QVariant(); +} + + +QVariant RDReplCartListModel::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 RDReplCartListModel::refresh(unsigned id) +{ + for(int i=0;istop(); + d_replicator_name=repl_name; + updateModel(); + d_refresh_timer->start(5000); + } +} + + +void RDReplCartListModel::refreshTimeoutData() +{ + QString sql; + RDSqlQuery *q; + int line; + + sql=QString("select ")+ + "ID,"+ // 00 + "ITEM_DATETIME "+ // 01 + "from REPL_CART_STATE where "+ + "REPLICATOR_NAME=\""+RDEscapeString(d_replicator_name)+"\""; + q=new RDSqlQuery(sql); + while(q->next()) { + if((line=d_ids.indexOf(q->value(0).toUInt()))>=0) { + if(d_texts.at(line).at(2)!= + q->value(1).toDateTime().toString("hh:mm:ss dd/MM/yyyy")) { + d_texts[line][2]= + q->value(1).toDateTime().toString("hh:mm:ss dd/MM/yyyy"); + emit dataChanged(createIndex(line,2),createIndex(line,2)); + } + } + } + delete q; + d_refresh_timer->start(5000); +} + + +void RDReplCartListModel::updateModel() +{ + QList texts; + + RDSqlQuery *q=NULL; + QString sql=sqlFields()+ + "where "+ + "REPLICATOR_NAME=\""+RDEscapeString(d_replicator_name)+"\" "+ + "order by REPL_CART_STATE.CART_NUMBER "; + beginResetModel(); + d_texts.clear(); + q=new RDSqlQuery(sql); + while(q->next()) { + d_ids.push_back(0); + d_icons.push_back(QVariant()); + d_texts.push_back(texts); + updateRow(d_texts.size()-1,q); + } + delete q; + endResetModel(); +} + + +void RDReplCartListModel::updateRowLine(int line) +{ + if(linefirst()) { + updateRow(line,q); + } + delete q; + } +} + + +void RDReplCartListModel::updateRow(int row,RDSqlQuery *q) +{ + d_ids[row]=q->value(0).toInt(); + switch((RDCart::Type)q->value(1).toInt()) { + case RDCart::Audio: + d_icons[row]=rda->iconEngine()->typeIcon(RDLogLine::Cart); + break; + + case RDCart::Macro: + d_icons[row]=rda->iconEngine()->typeIcon(RDLogLine::Macro); + break; + + case RDCart::All: + break; + } + + QList texts; + + // Cart Number + texts.push_back(QString().sprintf("%06u",q->value(2).toUInt())); + + // Title + texts.push_back(q->value(3)); + + // Last Posted + texts.push_back(q->value(4).toDateTime().toString("hh:mm:ss MM/dd/yyyy")); + + // Posted Filename + texts.push_back(q->value(5)); + + d_texts[row]=texts; +} + + +QString RDReplCartListModel::sqlFields() const +{ + QString sql=QString("select ")+ + "REPL_CART_STATE.ID,"+ // 00 + "CART.TYPE,"+ // 01 + "REPL_CART_STATE.CART_NUMBER,"+ // 02 + "CART.TITLE,"+ // 03 + "REPL_CART_STATE.ITEM_DATETIME,"+ // 04 + "REPL_CART_STATE.POSTED_FILENAME "+ // 05 + "from REPL_CART_STATE left join CART "+ + "on REPL_CART_STATE.CART_NUMBER=CART.NUMBER "; + + return sql; +} diff --git a/lib/rdreplcartlistmodel.h b/lib/rdreplcartlistmodel.h new file mode 100644 index 00000000..4374d62b --- /dev/null +++ b/lib/rdreplcartlistmodel.h @@ -0,0 +1,81 @@ +// rdreplcartlistmodel.h +// +// Data model for replicator carts +// +// (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 RDREPLCARTLISTMODEL_H +#define RDREPLCARTLISTMODEL_H + +#include +#include +#include +#include +#include + +#include +#include + +class RDReplCartListModel : public QAbstractTableModel +{ + Q_OBJECT + public: + RDReplCartListModel(QObject *parent=0); + ~RDReplCartListModel(); + 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; + unsigned cartId(const QModelIndex &row) const; + QModelIndex addCart(unsigned id); + void removeCart(const QModelIndex &row); + void removeCart(unsigned id); + void refresh(const QModelIndex &row); + void refresh(unsigned id); + QString replicatorName() const; + + public slots: + void setReplicatorName(const QString &repl_name); + + private slots: + void refreshTimeoutData(); + + 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; + QList d_icons; + QList d_ids; + QString d_replicator_name; + QTimer *d_refresh_timer; +}; + + +#endif // RDREPLCARTLISTMODEL_H diff --git a/rdadmin/list_replicator_carts.cpp b/rdadmin/list_replicator_carts.cpp index 7e112e61..f7f418a1 100644 --- a/rdadmin/list_replicator_carts.cpp +++ b/rdadmin/list_replicator_carts.cpp @@ -2,7 +2,7 @@ // // List Rivendell Replicator Carts // -// (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,41 +18,20 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include #include -#include -#include #include "add_replicator.h" #include "edit_replicator.h" #include "list_replicator_carts.h" -#include "../icons/play.xpm" -#include "../icons/rml5.xpm" - ListReplicatorCarts::ListReplicatorCarts(QWidget *parent) : RDDialog(parent) { - setModal(true); - // // Fix the Window Size // setMinimumSize(sizeHint()); - // - // Create Icons - // - list_playout_map=new QPixmap(play_xpm); - list_macro_map=new QPixmap(rml5_xpm); - - // - // Refresh Timer - // - list_refresh_timer=new QTimer(this); - connect(list_refresh_timer,SIGNAL(timeout()),this,SLOT(refreshTimeoutData())); - // // Repost Button // @@ -81,14 +60,14 @@ ListReplicatorCarts::ListReplicatorCarts(QWidget *parent) // // Replicator List // - list_view=new RDListView(this); - list_view->setAllColumnsShowFocus(true); - list_view->setItemMargin(5); - list_view->addColumn(" "); - list_view->addColumn(tr("CART")); - list_view->addColumn(tr("TITLE")); - list_view->addColumn(tr("LAST POSTED")); - list_view->addColumn(tr("POSTED FILENAME")); + list_view=new RDTableView(this); + list_model=new RDReplCartListModel(this); + list_model->setFont(defaultFont()); + list_model->setPalette(palette()); + list_view->setModel(list_model); + connect(list_model,SIGNAL(modelReset()), + list_view,SLOT(resizeColumnsToContents())); + QLabel *list_box_label=new QLabel(list_view,tr("&Active Carts:"),this); list_box_label->setFont(labelFont()); list_box_label->setGeometry(14,11,85,19); @@ -97,6 +76,7 @@ ListReplicatorCarts::ListReplicatorCarts(QWidget *parent) ListReplicatorCarts::~ListReplicatorCarts() { + delete list_model; } @@ -114,75 +94,42 @@ QSizePolicy ListReplicatorCarts::sizePolicy() const int ListReplicatorCarts::exec(const QString &replname) { - list_replicator_name=replname; setWindowTitle("RDAdmin - "+replname+tr(" Replicator Carts")); - RefreshList(); - list_refresh_timer->start(5000,true); + list_model->setReplicatorName(replname); + return QDialog::exec(); } void ListReplicatorCarts::repostData() { - QString sql; - RDSqlQuery *q; + QModelIndexList rows=list_view->selectionModel()->selectedRows(); - RDListViewItem *item=(RDListViewItem *)list_view->selectedItem(); - if(item==NULL) { + if(rows.size()==0) { return; } - sql=QString().sprintf("update REPL_CART_STATE set REPOST=\"Y\" \ - where ID=%d",item->id()); - q=new RDSqlQuery(sql); - delete q; + QString sql=QString("update REPL_CART_STATE set ")+ + "REPOST=\"Y\" where "; + for(int i=0;icartId(rows.at(i))); + } + sql=sql.left(sql.length()-2); + RDSqlQuery::apply(sql); } void ListReplicatorCarts::repostAllData() { - QString sql; - RDSqlQuery *q; - - sql=QString("update REPL_CART_STATE set ")+ + QString sql=QString("update REPL_CART_STATE set ")+ "REPOST=\"Y\" where "+ - "REPLICATOR_NAME=\""+RDEscapeString(list_replicator_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + "REPLICATOR_NAME=\""+RDEscapeString(list_model->replicatorName())+"\""; + RDSqlQuery::apply(sql); } void ListReplicatorCarts::closeData() { - list_refresh_timer->stop(); - done(0); -} - - -void ListReplicatorCarts::refreshTimeoutData() -{ - QString sql; - RDSqlQuery *q; - RDListViewItem *item; - - sql=QString("select ")+ - "ID,"+ - "ITEM_DATETIME "+ - "from REPL_CART_STATE where "+ - "REPLICATOR_NAME=\""+RDEscapeString(list_replicator_name)+"\""; - q=new RDSqlQuery(sql); - while(q->next()) { - item=(RDListViewItem *)list_view->firstChild(); - while(item!=NULL) { - if(item->id()==q->value(0).toInt()) { - item->setText(3,q->value(1). - toDateTime().toString("hh:mm:ss dd/MM/yyyy")); - break; - } - item=(RDListViewItem *)item->nextSibling(); - } - } - delete q; - list_refresh_timer->start(5000,true); + done(true); } @@ -193,45 +140,3 @@ void ListReplicatorCarts::resizeEvent(QResizeEvent *e) list_close_button->setGeometry(size().width()-90,size().height()-60,80,50); list_view->setGeometry(10,30,size().width()-120,size().height()-40); } - - -void ListReplicatorCarts::RefreshList() -{ - QString sql; - RDSqlQuery *q; - RDListViewItem *item; - - list_view->clear(); - sql=QString("select ")+ - "REPL_CART_STATE.ID,"+ // 00 - "CART.TYPE,"+ // 01 - "REPL_CART_STATE.CART_NUMBER,"+ // 02 - "CART.TITLE,"+ // 03 - "REPL_CART_STATE.ITEM_DATETIME,"+ // 04 - "REPL_CART_STATE.POSTED_FILENAME "+ // 05 - "from REPL_CART_STATE left join CART "+ - "on REPL_CART_STATE.CART_NUMBER=CART.NUMBER where "+ - "REPLICATOR_NAME=\""+RDEscapeString(list_replicator_name)+"\""; - q=new RDSqlQuery(sql); - while (q->next()) { - item=new RDListViewItem(list_view); - item->setId(q->value(0).toInt()); - item->setText(1,QString().sprintf("%06u",q->value(2).toUInt())); - switch((RDCart::Type)q->value(1).toInt()) { - case RDCart::Audio: - item->setPixmap(0,*list_playout_map); - break; - - case RDCart::Macro: - item->setPixmap(0,*list_macro_map); - break; - - case RDCart::All: - break; - } - item->setText(2,q->value(3).toString()); - item->setText(3,q->value(4).toDateTime().toString("hh:mm:ss dd/MM/yyyy")); - item->setText(4,q->value(5).toString()); - } - delete q; -} diff --git a/rdadmin/list_replicator_carts.h b/rdadmin/list_replicator_carts.h index 0047e013..85ce03e3 100644 --- a/rdadmin/list_replicator_carts.h +++ b/rdadmin/list_replicator_carts.h @@ -2,7 +2,7 @@ // // List Rivendell Replicator Carts // -// (C) Copyright 2012-2019 Fred Gleason +// (C) Copyright 2012-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,12 +21,11 @@ #ifndef LIST_REPLICATOR_CARTS_H #define LIST_REPLICATOR_CARTS_H -#include -#include +#include -#include #include -#include +#include +#include class ListReplicatorCarts : public RDDialog { @@ -44,24 +43,17 @@ class ListReplicatorCarts : public RDDialog void repostData(); void repostAllData(); void closeData(); - void refreshTimeoutData(); protected: void resizeEvent(QResizeEvent *e); private: - void RefreshList(); - RDListView *list_view; + RDTableView *list_view; + RDReplCartListModel *list_model; QPushButton *list_repost_button; QPushButton *list_repost_all_button; QPushButton *list_close_button; - QString list_replicator_name; - QPixmap *list_playout_map; - QPixmap *list_macro_map; - QTimer *list_refresh_timer; }; -#endif - - +#endif // LIST_REPLICATOR_CARTS_H diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index c5d1ee8f..acb824bc 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -6010,15 +6010,15 @@ znovu CART - VOZÍK + VOZÍK TITLE - NÁZEV + NÁZEV LAST POSTED - NAPOSLEDY VYVĚŠENO + NAPOSLEDY VYVĚŠENO &Active Carts: @@ -6030,7 +6030,7 @@ znovu POSTED FILENAME - VYVĚŠENÝ NÁZEV SOUBORU + VYVĚŠENÝ NÁZEV SOUBORU diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index 15910f1a..2bfaf0b7 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -5578,18 +5578,6 @@ Log &Close &Schliessen - - CART - - - - TITLE - - - - LAST POSTED - - &Active Carts: @@ -5598,10 +5586,6 @@ Log Replicator Carts - - POSTED FILENAME - - ListReplicators diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 4d5a89ff..77991b0e 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -5913,19 +5913,19 @@ Log CART - CARTUCHO + CARTUCHO TITLE - TÍTULO + TÍTULO LAST POSTED - ÚLTIMO COLOCADO + ÚLTIMO COLOCADO POSTED FILENAME - NOMBRE DEL ARCHIVO + NOMBRE DEL ARCHIVO &Active Carts: diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index a21ab599..7db34ab0 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -4237,18 +4237,6 @@ Log &Close - - CART - - - - TITLE - - - - LAST POSTED - - &Active Carts: @@ -4257,10 +4245,6 @@ Log Replicator Carts - - POSTED FILENAME - - ListReplicators diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index ebfd6541..b35d09b4 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -5415,18 +5415,6 @@ Log &Close &Lukk - - CART - - - - TITLE - - - - LAST POSTED - - &Active Carts: @@ -5435,10 +5423,6 @@ Log Replicator Carts - - POSTED FILENAME - - ListReplicators diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index ebfd6541..b35d09b4 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -5415,18 +5415,6 @@ Log &Close &Lukk - - CART - - - - TITLE - - - - LAST POSTED - - &Active Carts: @@ -5435,10 +5423,6 @@ Log Replicator Carts - - POSTED FILENAME - - ListReplicators diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index 538d13b7..1671d9f5 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -5546,18 +5546,6 @@ Log &Close &Fechar - - CART - - - - TITLE - - - - LAST POSTED - - &Active Carts: @@ -5566,10 +5554,6 @@ Log Replicator Carts - - POSTED FILENAME - - ListReplicators