diff --git a/ChangeLog b/ChangeLog index 7fa06a87..b5c70c2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21090,3 +21090,6 @@ * Added a 'RDClockModel' model. * Refactored the 'Edit Clock' dialog in rdlogmanager(1) to use the model base API. +2021-02-09 Fred Gleason + * Refactored the 'Log Grids' dialog in rdlogmanager(1) to use + the model based API. diff --git a/rdlogmanager/list_grids.cpp b/rdlogmanager/list_grids.cpp index e3255795..1bb665c0 100644 --- a/rdlogmanager/list_grids.cpp +++ b/rdlogmanager/list_grids.cpp @@ -2,7 +2,7 @@ // // List Rivendell Log Grids // -// (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 @@ -36,16 +36,21 @@ ListGrids::ListGrids(QWidget *parent) // // Grids List // - edit_grids_list=new Q3ListView(this); - edit_grids_list->setGeometry(10,10, - sizeHint().width()-20,sizeHint().height()-80); - edit_grids_list->setAllColumnsShowFocus(true); - edit_grids_list->setItemMargin(5); - edit_grids_list->addColumn(tr("Name")); - edit_grids_list->addColumn(tr("Description")); - connect(edit_grids_list, - SIGNAL(doubleClicked(Q3ListViewItem *,const QPoint &,int)), - this,SLOT(doubleClickedData(Q3ListViewItem *,const QPoint &,int))); + edit_grids_view=new RDTableView(this); + edit_grids_view-> + setGeometry(10,10,sizeHint().width()-20,sizeHint().height()-80); + edit_grids_model=new RDServiceListModel(false,this); + edit_grids_model->setFont(font()); + edit_grids_model->setPalette(palette()); + edit_grids_view->setModel(edit_grids_model); + for(int i=2;icolumnCount();i++) { + edit_grids_view->hideColumn(i); + } + connect(edit_grids_view,SIGNAL(doubleClicked(const QModelIndex &)), + this,SLOT(doubleClickedData(const QModelIndex &))); + connect(edit_grids_model,SIGNAL(modelReset()), + edit_grids_view,SLOT(resizeColumnsToContents())); + edit_grids_view->resizeColumnsToContents(); // // Edit Button @@ -65,8 +70,6 @@ ListGrids::ListGrids(QWidget *parent) button->setFont(buttonFont()); button->setText(tr("C&lose")); connect(button,SIGNAL(clicked()),this,SLOT(closeData())); - - RefreshList(); } @@ -84,17 +87,18 @@ QSizePolicy ListGrids::sizePolicy() const void ListGrids::editData() { - Q3ListViewItem *item=edit_grids_list->selectedItem(); - if(item==NULL) { + QModelIndexList rows=edit_grids_view->selectionModel()->selectedRows(); + + if(rows.size()!=1) { return; } - EditGrid *grid_dialog=new EditGrid(item->text(0),this); - grid_dialog->exec(); - delete grid_dialog; + EditGrid *d=new EditGrid(edit_grids_model->serviceName(rows.first()),this); + d->exec(); + delete d; } -void ListGrids::doubleClickedData(Q3ListViewItem *item,const QPoint &,int) +void ListGrids::doubleClickedData(const QModelIndex &index) { editData(); } @@ -102,25 +106,5 @@ void ListGrids::doubleClickedData(Q3ListViewItem *item,const QPoint &,int) void ListGrids::closeData() { - done(0); -} - - -void ListGrids::RefreshList() -{ - Q3ListViewItem *prev_item=edit_grids_list->selectedItem(); - QString sql="select NAME,DESCRIPTION from SERVICES"; - - edit_grids_list->clear(); - RDSqlQuery *q=new RDSqlQuery(sql); - Q3ListViewItem *item=NULL; - while(q->next()) { - item=new Q3ListViewItem(edit_grids_list); - item->setText(0,q->value(0).toString()); - item->setText(1,q->value(1).toString()); - } - delete q; - if(prev_item!=NULL) { - edit_grids_list->setSelected(item,true); - } + done(true); } diff --git a/rdlogmanager/list_grids.h b/rdlogmanager/list_grids.h index 12f24425..6cea92c2 100644 --- a/rdlogmanager/list_grids.h +++ b/rdlogmanager/list_grids.h @@ -2,7 +2,7 @@ // // List Rivendell Log Grids // -// (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,9 +21,9 @@ #ifndef LIST_GRIDS_H #define LIST_GRIDS_H -#include - #include +#include +#include class ListGrids : public RDDialog { @@ -35,14 +35,13 @@ class ListGrids : public RDDialog private slots: void editData(); - void doubleClickedData(Q3ListViewItem *,const QPoint &,int); + void doubleClickedData(const QModelIndex &index); void closeData(); private: - void RefreshList(); - Q3ListView *edit_grids_list; + RDTableView *edit_grids_view; + RDServiceListModel *edit_grids_model; }; -#endif - +#endif // LIST_GRIDS_H diff --git a/rdlogmanager/rdlogmanager_cs.ts b/rdlogmanager/rdlogmanager_cs.ts index 168a36c9..ef95db73 100644 --- a/rdlogmanager/rdlogmanager_cs.ts +++ b/rdlogmanager/rdlogmanager_cs.ts @@ -1417,11 +1417,11 @@ delete Name - Název + Název Description - Popis + Popis &Edit diff --git a/rdlogmanager/rdlogmanager_de.ts b/rdlogmanager/rdlogmanager_de.ts index 0c20cf15..f977f62a 100644 --- a/rdlogmanager/rdlogmanager_de.ts +++ b/rdlogmanager/rdlogmanager_de.ts @@ -1417,11 +1417,11 @@ delete Name - Name + Name Description - Beschreibung + Beschreibung &Edit diff --git a/rdlogmanager/rdlogmanager_es.ts b/rdlogmanager/rdlogmanager_es.ts index b864f192..80f9d1ae 100644 --- a/rdlogmanager/rdlogmanager_es.ts +++ b/rdlogmanager/rdlogmanager_es.ts @@ -1421,11 +1421,11 @@ eliminar Name - Nombre + Nombre Description - Descripción + Descripción &Edit diff --git a/rdlogmanager/rdlogmanager_fr.ts b/rdlogmanager/rdlogmanager_fr.ts index 16e78131..ce478e9d 100644 --- a/rdlogmanager/rdlogmanager_fr.ts +++ b/rdlogmanager/rdlogmanager_fr.ts @@ -1054,14 +1054,6 @@ Do you want to save? Log Grids - - Name - - - - Description - - &Edit diff --git a/rdlogmanager/rdlogmanager_nb.ts b/rdlogmanager/rdlogmanager_nb.ts index 4de83796..c8c15bb7 100644 --- a/rdlogmanager/rdlogmanager_nb.ts +++ b/rdlogmanager/rdlogmanager_nb.ts @@ -1416,11 +1416,11 @@ sletta Name - Namn + Namn Description - Skildring + Skildring &Edit diff --git a/rdlogmanager/rdlogmanager_nn.ts b/rdlogmanager/rdlogmanager_nn.ts index 4de83796..c8c15bb7 100644 --- a/rdlogmanager/rdlogmanager_nn.ts +++ b/rdlogmanager/rdlogmanager_nn.ts @@ -1416,11 +1416,11 @@ sletta Name - Namn + Namn Description - Skildring + Skildring &Edit diff --git a/rdlogmanager/rdlogmanager_pt_BR.ts b/rdlogmanager/rdlogmanager_pt_BR.ts index f30bcfb1..c138b2c2 100644 --- a/rdlogmanager/rdlogmanager_pt_BR.ts +++ b/rdlogmanager/rdlogmanager_pt_BR.ts @@ -1421,11 +1421,11 @@ deletar Name - Nome + Nome Description - Descrição + Descrição &Edit