diff --git a/ChangeLog b/ChangeLog index c47decd2..53a51e27 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21153,3 +21153,5 @@ * Refactored the 'Select Group' dialog to use the model based API. 2021-02-15 Fred Gleason * Removed the 'Q3RangeControl' dependency from 'RDSlider'. +2021-02-15 Fred Gleason + * Removed the 'Q3ListBox' dependency from 'RDListSelector'. diff --git a/lib/rdlistselector.cpp b/lib/rdlistselector.cpp index 0e1f9a13..f7b91256 100644 --- a/lib/rdlistselector.cpp +++ b/lib/rdlistselector.cpp @@ -2,7 +2,7 @@ // // A List Selector Widget. // -// (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 Library General Public License @@ -34,7 +34,8 @@ RDListSelector::RDListSelector(QWidget *parent) list_source_label->setFont(labelFont()); list_source_label->setText(tr("Available Services")); list_source_label->setAlignment(Qt::AlignCenter); - list_source_box=new Q3ListBox(this); + list_source_list=new QListWidget(this); + list_source_list->setSortingEnabled(true); list_add_button=new QPushButton(this); list_add_button->setText(tr("Add >>")); @@ -49,19 +50,20 @@ RDListSelector::RDListSelector(QWidget *parent) list_dest_label->setFont(labelFont()); list_dest_label->setText(tr("Active Services")); list_dest_label->setAlignment(Qt::AlignCenter); - list_dest_box=new Q3ListBox(this); + list_dest_list=new QListWidget(this); + list_dest_list->setSortingEnabled(true); } uint RDListSelector::sourceCount() const { - return list_source_box->count(); + return list_source_list->count(); } uint RDListSelector::destCount() const { - return list_dest_box->count(); + return list_dest_list->count(); } @@ -79,157 +81,155 @@ void RDListSelector::destSetLabel(QString label) void RDListSelector::sourceInsertItem(const QString &text,int index) { - list_source_box->insertItem(text,index); - list_source_box->sort(); + list_source_list->insertItem(index,text); + list_source_list->sortItems(); CheckButtons(); } void RDListSelector::destInsertItem(const QString &text,int index) { - list_dest_box->insertItem(text,index); - list_dest_box->sort(); + list_dest_list->insertItem(index,text); + list_dest_list->sortItems(); CheckButtons(); } void RDListSelector::sourceRemoveItem(int index) { - list_source_box->removeItem(index); + list_source_list->removeItemWidget(list_source_list->item(index)); CheckButtons(); } void RDListSelector::destRemoveItem(int index) { - list_dest_box->removeItem(index); + list_dest_list->removeItemWidget(list_source_list->item(index)); CheckButtons(); } QString RDListSelector::sourceText(int index) const { - return list_source_box->text(index); + return list_source_list->item(index)->text(); } QString RDListSelector::destText(int index) const { - return list_dest_box->text(index); + return list_dest_list->item(index)->text(); } void RDListSelector::sourceChangeItem(const QString &text,int index) { - list_source_box->changeItem(text,index); - list_source_box->sort(); + list_source_list->item(index)->setText(text); + list_source_list->sortItems(); } void RDListSelector::destChangeItem(const QString &text,int index) { - list_dest_box->changeItem(text,index); - list_dest_box->sort(); -} - - -int RDListSelector::sourceNumItemsVisible() const -{ - return list_source_box->numItemsVisible(); -} - - -int RDListSelector::destNumItemsVisible() const -{ - return list_dest_box->numItemsVisible(); + list_dest_list->item(index)->setText(text); + list_dest_list->sortItems(); } int RDListSelector::sourceCurrentItem() const { - return list_source_box->currentItem(); + return list_source_list->currentRow(); } int RDListSelector::destCurrentItem() const { - return list_dest_box->currentItem(); + return list_dest_list->currentRow(); } QString RDListSelector::sourceCurrentText() const { - return list_source_box->currentText(); + return list_source_list->currentItem()->text(); } QString RDListSelector::destCurrentText() const { - return list_dest_box->currentText(); + return list_dest_list->currentItem()->text(); } void RDListSelector::sourceSetCurrentItem(int item) { - list_source_box->setCurrentItem(item); + list_source_list->setCurrentRow(item); } void RDListSelector::destSetCurrentItem(int item) { - list_dest_box->setCurrentItem(item); + list_dest_list->setCurrentRow(item); } -Q3ListBoxItem *RDListSelector::sourceFindItem(const QString &text, - Q3ListBox::ComparisonFlags compare) const +QListWidgetItem *RDListSelector::sourceFindItem(const QString &text, + Qt::MatchFlags flag) { - return list_source_box->findItem(text,compare); + QList items=list_source_list->findItems(text,flag); + if(items.size()==0) { + return NULL; + } + return items.first(); } -Q3ListBoxItem *RDListSelector::destFindItem(const QString &text, - Q3ListBox::ComparisonFlags compare) const +QListWidgetItem *RDListSelector::destFindItem(const QString &text, + Qt::MatchFlags flag) { - return list_dest_box->findItem(text,compare); + QList items=list_dest_list->findItems(text,flag); + if(items.size()==0) { + return NULL; + } + return items.first(); } void RDListSelector::clear() { - list_source_box->clear(); - list_dest_box->clear(); + list_source_list->clear(); + list_dest_list->clear(); } void RDListSelector::addData() { - if(list_source_box->currentItem()>=0) { - list_dest_box-> - insertItem(list_source_box->currentText()); - list_source_box->removeItem(list_source_box->currentItem()); - list_dest_box->sort(); - if(list_source_box->count()==0) { + QList items; + + if(list_source_list->currentRow()>=0) { + list_dest_list-> + insertItem(list_dest_list->count(),new QListWidgetItem(list_source_list->currentItem()->text())); + delete list_source_list->takeItem(list_source_list->currentRow()); + list_dest_list->sortItems(); + if(list_source_list->count()==0) { list_add_button->setDisabled(true); } list_remove_button->setEnabled(true); - list_source_box->setCurrentItem(-1); + list_source_list->setCurrentRow(-1); } } void RDListSelector::removeData() { - if(list_dest_box->currentItem()>=0) { - list_source_box-> - insertItem(list_dest_box->currentText()); - list_dest_box->removeItem(list_dest_box->currentItem()); - list_source_box->sort(); - if(list_dest_box->count()==0) { + if(list_dest_list->currentRow()>=0) { + list_source_list-> + insertItem(list_source_list->count(),new QListWidgetItem(list_dest_list->currentItem()->text())); + delete list_dest_list->takeItem(list_dest_list->currentRow()); + list_source_list->sortItems(); + if(list_dest_list->count()==0) { list_remove_button->setDisabled(true); } list_add_button->setEnabled(true); - list_dest_box->setCurrentItem(-1); + list_dest_list->setCurrentRow(-1); } } @@ -240,25 +240,25 @@ void RDListSelector::resizeEvent(QResizeEvent *e) int h=size().height(); list_source_label->setGeometry(0,0,w/3,12); - list_source_box->setGeometry(0,12,w/3,h-12); + list_source_list->setGeometry(0,12,w/3,h-12); list_add_button->setGeometry(w/3+20,20,w/3-40,25); list_remove_button->setGeometry(w/3+20,2*h/3-3,w/3-40,25); list_dest_label->setGeometry(2*w/3,0,w/3,12); - list_dest_box->setGeometry(2*w/3,12,w/3,h-12); + list_dest_list->setGeometry(2*w/3,12,w/3,h-12); } void RDListSelector::CheckButtons() { - if(list_source_box->count()==0) { + if(list_source_list->count()==0) { list_add_button->setDisabled(true); } else { list_add_button->setEnabled(true); } - if(list_dest_box->count()==0) { + if(list_dest_list->count()==0) { list_remove_button->setDisabled(true); } else { diff --git a/lib/rdlistselector.h b/lib/rdlistselector.h index 86b33553..a5a71b73 100644 --- a/lib/rdlistselector.h +++ b/lib/rdlistselector.h @@ -2,7 +2,7 @@ // // An listselector widget with word wrap. // -// (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 Library General Public License @@ -21,11 +21,8 @@ #ifndef RDLISTSELECTOR_H #define RDLISTSELECTOR_H -#include - -#include -#include -#include +#include +#include #include @@ -46,18 +43,16 @@ class RDListSelector : public RDWidget QString destText(int index) const; void sourceChangeItem(const QString &text,int index); void destChangeItem(const QString &text,int index); - int sourceNumItemsVisible() const; - int destNumItemsVisible() const; int sourceCurrentItem() const; int destCurrentItem() const; QString sourceCurrentText() const; QString destCurrentText() const; void sourceSetCurrentItem(int item); void destSetCurrentItem(int item); - Q3ListBoxItem *sourceFindItem(const QString &text, - Q3ListBox::ComparisonFlags compare=Q3ListBox::ExactMatch) const; - Q3ListBoxItem *destFindItem(const QString &text, - Q3ListBox::ComparisonFlags compare=Q3ListBox::ExactMatch) const; + QListWidgetItem *sourceFindItem(const QString &text, + Qt::MatchFlags flags=Qt::MatchExactly); + QListWidgetItem *destFindItem(const QString &text, + Qt::MatchFlags flags=Qt::MatchExactly); void clear(); private slots: @@ -69,9 +64,9 @@ class RDListSelector : public RDWidget private: void CheckButtons(); - Q3ListBox *list_source_box; + QListWidget *list_source_list; QLabel *list_source_label; - Q3ListBox *list_dest_box; + QListWidget *list_dest_list; QLabel *list_dest_label; QPushButton *list_add_button; QPushButton *list_remove_button; diff --git a/lib/rdlistsvcs.h b/lib/rdlistsvcs.h index b5222a60..4c77793c 100644 --- a/lib/rdlistsvcs.h +++ b/lib/rdlistsvcs.h @@ -2,7 +2,7 @@ // // Service Picker dialog // -// (C) Copyright 2012,2016 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 diff --git a/rdadmin/add_group.cpp b/rdadmin/add_group.cpp index a395786e..6e985039 100644 --- a/rdadmin/add_group.cpp +++ b/rdadmin/add_group.cpp @@ -2,7 +2,7 @@ // // Add a Rivendell Group // -// (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,17 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/add_report.cpp b/rdadmin/add_report.cpp index 1c0aa7dd..a87b7da9 100644 --- a/rdadmin/add_report.cpp +++ b/rdadmin/add_report.cpp @@ -2,7 +2,7 @@ // // Add a Rivendell Report // -// (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,16 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/add_station.cpp b/rdadmin/add_station.cpp index 58efd71f..a2c6d4af 100644 --- a/rdadmin/add_station.cpp +++ b/rdadmin/add_station.cpp @@ -2,7 +2,7 @@ // // Add a Rivendell Workstation // -// (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,16 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/add_station.h b/rdadmin/add_station.h index 0be478e9..52e11fd3 100644 --- a/rdadmin/add_station.h +++ b/rdadmin/add_station.h @@ -2,7 +2,7 @@ // // Add a Rivendell Workstation // -// (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,12 +21,7 @@ #ifndef ADD_STATION_H #define ADD_STATION_H -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/add_svc.cpp b/rdadmin/add_svc.cpp index ade84ae0..b3c4a126 100644 --- a/rdadmin/add_svc.cpp +++ b/rdadmin/add_svc.cpp @@ -2,7 +2,7 @@ // // Add a Rivendell Service // -// (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,16 +18,7 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/add_svc.h b/rdadmin/add_svc.h index d8260f83..64f88dc5 100644 --- a/rdadmin/add_svc.h +++ b/rdadmin/add_svc.h @@ -2,7 +2,7 @@ // // Add a Rivendell Service // -// (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,12 +21,7 @@ #ifndef ADD_SVC_H #define ADD_SVC_H -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/add_user.cpp b/rdadmin/add_user.cpp index d91efd22..741a3f40 100644 --- a/rdadmin/add_user.cpp +++ b/rdadmin/add_user.cpp @@ -2,7 +2,7 @@ // // Add a Rivendell User // -// (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,18 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include diff --git a/rdadmin/add_user.h b/rdadmin/add_user.h index 36238df4..77794efd 100644 --- a/rdadmin/add_user.h +++ b/rdadmin/add_user.h @@ -2,7 +2,7 @@ // // Add a Rivendell User // -// (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,12 +21,7 @@ #ifndef ADD_USER_H #define ADD_USER_H -#include -#include -#include -#include -#include -#include +#include #include #include diff --git a/rdadmin/edit_dropbox.cpp b/rdadmin/edit_dropbox.cpp index b3f11893..8e850098 100644 --- a/rdadmin/edit_dropbox.cpp +++ b/rdadmin/edit_dropbox.cpp @@ -2,7 +2,7 @@ // // Edit a Rivendell Dropbox Configuration // -// (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,21 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include #include diff --git a/rdadmin/edit_dropbox.h b/rdadmin/edit_dropbox.h index 9a6f7b66..1c6dca5b 100644 --- a/rdadmin/edit_dropbox.h +++ b/rdadmin/edit_dropbox.h @@ -2,7 +2,7 @@ // // Edit a Rivendell Dropbox Configuration // -// (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 @@ -21,18 +21,9 @@ #ifndef EDIT_DROPBOX_H #define EDIT_DROPBOX_H -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include #include diff --git a/rdadmin/edit_feed_perms.cpp b/rdadmin/edit_feed_perms.cpp index 2c2b05f7..a67bca53 100644 --- a/rdadmin/edit_feed_perms.cpp +++ b/rdadmin/edit_feed_perms.cpp @@ -2,7 +2,7 @@ // // Edit Rivendell RSS Feed Permissions // -// (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,17 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - #include #include #include @@ -99,7 +88,7 @@ EditFeedPerms::EditFeedPerms(RDUser *user,QWidget *parent) sql=QString().sprintf("select KEY_NAME from FEEDS"); q=new RDSqlQuery(sql); while(q->next()) { - if(feed_host_sel->destFindItem(q->value(0).toString(),Q3ListBox::ExactMatch)==0) { + if(feed_host_sel->destFindItem(q->value(0).toString())==0) { feed_host_sel->sourceInsertItem(q->value(0).toString()); } } diff --git a/rdadmin/edit_group.cpp b/rdadmin/edit_group.cpp index 1359c6d6..2d72b7e3 100644 --- a/rdadmin/edit_group.cpp +++ b/rdadmin/edit_group.cpp @@ -2,7 +2,7 @@ // // Edit a Rivendell Group // -// (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,18 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include #include diff --git a/rdadmin/edit_group.h b/rdadmin/edit_group.h index cce0df6b..9e6b74f6 100644 --- a/rdadmin/edit_group.h +++ b/rdadmin/edit_group.h @@ -2,7 +2,7 @@ // // Edit a Rivendell Group // -// (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,15 +21,9 @@ #ifndef EDIT_GROUP_H #define EDIT_GROUP_H -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include #include