| 
									
										
										
										
											2015-04-06 01:57:47 +00:00
										 |  |  | #include "ForeignKeyDelegate.hpp"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QComboBox>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "CandidateKeyFilter.hpp"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-28 23:22:17 +00:00
										 |  |  | ForeignKeyDelegate::ForeignKeyDelegate (QAbstractItemModel * referenced_model | 
					
						
							| 
									
										
										
										
											2015-04-06 01:57:47 +00:00
										 |  |  |                                         , int referenced_key_column | 
					
						
							|  |  |  |                                         , QObject * parent | 
					
						
							|  |  |  |                                         , int referenced_key_role) | 
					
						
							|  |  |  |   : QStyledItemDelegate {parent} | 
					
						
							| 
									
										
										
										
											2015-05-28 23:22:17 +00:00
										 |  |  |   , candidate_key_filter_ {new CandidateKeyFilter {referenced_model, referenced_key_column, nullptr, referenced_key_role}} | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ForeignKeyDelegate::ForeignKeyDelegate (QAbstractItemModel * referenced_model | 
					
						
							|  |  |  |                                         , QAbstractItemModel const * referencing_model | 
					
						
							|  |  |  |                                         , int referenced_key_column | 
					
						
							|  |  |  |                                         , int referencing_key_column | 
					
						
							|  |  |  |                                         , QObject * parent | 
					
						
							|  |  |  |                                         , int referenced_key_role | 
					
						
							|  |  |  |                                         , int referencing_key_role) | 
					
						
							|  |  |  |   : QStyledItemDelegate {parent} | 
					
						
							|  |  |  |   , candidate_key_filter_ {new CandidateKeyFilter {referenced_model, referencing_model, referenced_key_column, referencing_key_column, nullptr, referenced_key_role, referencing_key_role}} | 
					
						
							| 
									
										
										
										
											2015-04-06 01:57:47 +00:00
										 |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ForeignKeyDelegate::~ForeignKeyDelegate () | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QWidget * ForeignKeyDelegate::createEditor (QWidget * parent | 
					
						
							|  |  |  |                                             , QStyleOptionViewItem const& /* option */ | 
					
						
							|  |  |  |                                             , QModelIndex const& index) const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   auto editor = new QComboBox {parent}; | 
					
						
							|  |  |  |   editor->setFrame (false); | 
					
						
							|  |  |  |   candidate_key_filter_->set_active_key (index); | 
					
						
							|  |  |  |   editor->setModel (candidate_key_filter_.data ()); | 
					
						
							|  |  |  |   return editor; | 
					
						
							|  |  |  | } |