mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 18:10:05 +00:00 
			
		
		
		
	Radar site filtering, banded rows
This commit is contained in:
		
							parent
							
								
									2acd8be063
								
							
						
					
					
						commit
						43bf29d35f
					
				
					 2 changed files with 57 additions and 12 deletions
				
			
		|  | @ -19,32 +19,40 @@ static const auto        logger_    = scwx::util::Logger::Create(logPrefix_); | ||||||
| class RadarSiteDialogImpl | class RadarSiteDialogImpl | ||||||
| { | { | ||||||
| public: | public: | ||||||
|    explicit RadarSiteDialogImpl() : |    explicit RadarSiteDialogImpl(RadarSiteDialog* self) : | ||||||
|        radarSiteModel_ {nullptr}, proxyModel_ {nullptr} |        self_ {self}, | ||||||
|  |        radarSiteModel_ {new model::RadarSiteModel(self_)}, | ||||||
|  |        proxyModel_ {new QSortFilterProxyModel(self_)} | ||||||
|    { |    { | ||||||
|  |       proxyModel_->setSourceModel(radarSiteModel_); | ||||||
|  |       proxyModel_->setFilterCaseSensitivity(Qt::CaseInsensitive); | ||||||
|  |       proxyModel_->setFilterKeyColumn(-1); | ||||||
|    } |    } | ||||||
|    ~RadarSiteDialogImpl() = default; |    ~RadarSiteDialogImpl() = default; | ||||||
| 
 | 
 | ||||||
|  |    RadarSiteDialog*       self_; | ||||||
|    model::RadarSiteModel* radarSiteModel_; |    model::RadarSiteModel* radarSiteModel_; | ||||||
|    QSortFilterProxyModel* proxyModel_; |    QSortFilterProxyModel* proxyModel_; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| RadarSiteDialog::RadarSiteDialog(QWidget* parent) : | RadarSiteDialog::RadarSiteDialog(QWidget* parent) : | ||||||
|     QDialog(parent), |     QDialog(parent), | ||||||
|     p(std::make_unique<RadarSiteDialogImpl>()), |     p(std::make_unique<RadarSiteDialogImpl>(this)), | ||||||
|     ui(new Ui::RadarSiteDialog) |     ui(new Ui::RadarSiteDialog) | ||||||
| { | { | ||||||
|    ui->setupUi(this); |    ui->setupUi(this); | ||||||
| 
 | 
 | ||||||
|    p->radarSiteModel_ = new model::RadarSiteModel(this); |    // Radar Site View
 | ||||||
|    p->proxyModel_     = new QSortFilterProxyModel(this); |  | ||||||
|    p->proxyModel_->setSourceModel(p->radarSiteModel_); |  | ||||||
|    ui->radarSiteView->setModel(p->proxyModel_); |    ui->radarSiteView->setModel(p->proxyModel_); | ||||||
| 
 |  | ||||||
|    for (int column = 0; column < p->radarSiteModel_->columnCount(); column++) |    for (int column = 0; column < p->radarSiteModel_->columnCount(); column++) | ||||||
|    { |    { | ||||||
|       ui->radarSiteView->resizeColumnToContents(column); |       ui->radarSiteView->resizeColumnToContents(column); | ||||||
|    } |    } | ||||||
|  | 
 | ||||||
|  |    connect(ui->radarSiteFilter, | ||||||
|  |            &QLineEdit::textChanged, | ||||||
|  |            p->proxyModel_, | ||||||
|  |            &QSortFilterProxyModel::setFilterWildcard); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| RadarSiteDialog::~RadarSiteDialog() | RadarSiteDialog::~RadarSiteDialog() | ||||||
|  |  | ||||||
|  | @ -16,6 +16,9 @@ | ||||||
|   <layout class="QVBoxLayout" name="verticalLayout"> |   <layout class="QVBoxLayout" name="verticalLayout"> | ||||||
|    <item> |    <item> | ||||||
|     <widget class="QTreeView" name="radarSiteView"> |     <widget class="QTreeView" name="radarSiteView"> | ||||||
|  |      <property name="alternatingRowColors"> | ||||||
|  |       <bool>true</bool> | ||||||
|  |      </property> | ||||||
|      <property name="indentation"> |      <property name="indentation"> | ||||||
|       <number>0</number> |       <number>0</number> | ||||||
|      </property> |      </property> | ||||||
|  | @ -25,13 +28,47 @@ | ||||||
|     </widget> |     </widget> | ||||||
|    </item> |    </item> | ||||||
|    <item> |    <item> | ||||||
|     <widget class="QDialogButtonBox" name="buttonBox"> |     <widget class="QFrame" name="frame"> | ||||||
|      <property name="orientation"> |      <property name="frameShape"> | ||||||
|       <enum>Qt::Horizontal</enum> |       <enum>QFrame::StyledPanel</enum> | ||||||
|      </property> |      </property> | ||||||
|      <property name="standardButtons"> |      <property name="frameShadow"> | ||||||
|       <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> |       <enum>QFrame::Raised</enum> | ||||||
|      </property> |      </property> | ||||||
|  |      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||||
|  |       <property name="leftMargin"> | ||||||
|  |        <number>0</number> | ||||||
|  |       </property> | ||||||
|  |       <property name="topMargin"> | ||||||
|  |        <number>0</number> | ||||||
|  |       </property> | ||||||
|  |       <property name="rightMargin"> | ||||||
|  |        <number>0</number> | ||||||
|  |       </property> | ||||||
|  |       <property name="bottomMargin"> | ||||||
|  |        <number>0</number> | ||||||
|  |       </property> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QLineEdit" name="radarSiteFilter"> | ||||||
|  |         <property name="placeholderText"> | ||||||
|  |          <string>Filter</string> | ||||||
|  |         </property> | ||||||
|  |         <property name="clearButtonEnabled"> | ||||||
|  |          <bool>true</bool> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |       <item> | ||||||
|  |        <widget class="QDialogButtonBox" name="buttonBox"> | ||||||
|  |         <property name="orientation"> | ||||||
|  |          <enum>Qt::Horizontal</enum> | ||||||
|  |         </property> | ||||||
|  |         <property name="standardButtons"> | ||||||
|  |          <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> | ||||||
|  |         </property> | ||||||
|  |        </widget> | ||||||
|  |       </item> | ||||||
|  |      </layout> | ||||||
|     </widget> |     </widget> | ||||||
|    </item> |    </item> | ||||||
|   </layout> |   </layout> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat