@ -11,7 +11,7 @@ const QString ENTER_KEY = "→"; 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					const  QMap < QString ,  int >  KEY_STRETCH  =  { { "    " ,  5 } ,  { ENTER_KEY ,  2 } } ; const  QMap < QString ,  int >  KEY_STRETCH  =  { { "    " ,  5 } ,  { ENTER_KEY ,  2 } } ;  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					const  QStringList  CONTROL_BUTTONS  =  { " ↑ " ,  " ↓ " ,  " ABC " ,  " #+= " ,  " 123 " } ; const  QStringList  CONTROL_BUTTONS  =  { " ↑ " ,  " ↓ " ,  " ABC " ,  " #+= " ,  " 123 " ,  BACKSPACE_KEY ,  ENTER_KEY } ;  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					const  float  key_spacing_vertical  =  20 ; const  float  key_spacing_vertical  =  20 ;  
			
		
	
		
		
			
				
					
					const  float  key_spacing_horizontal  =  15 ; const  float  key_spacing_horizontal  =  15 ;  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -113,28 +113,26 @@ Keyboard::Keyboard(QWidget *parent) : QFrame(parent) { 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  Keyboard : : handleButton ( QAbstractButton *  btn )  { void  Keyboard : : handleButton ( QAbstractButton *  btn )  {  
			
		
	
		
		
			
				
					
					  const  QString  key  =  btn - > text ( ) ;    const  QString  & key  =  btn - > text ( ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( ! QString : : compare ( key ,  " ↓ " )  | |  ! QString : : compare ( key ,  " ABC " ) )  {    if  ( CONTROL_BUTTONS . contains ( key ) )  {   
			
				
				
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentIndex ( 0 ) ;      if  ( key  = =  " ↓ "  | |  key  = =  " ABC " )  {   
			
				
				
			
		
	
		
		
			
				
					
					  }        main_layout - > setCurrentIndex ( 0 ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( ! QString : : compare ( key ,  " ↑ " ) )  {      }  else  if  ( key  = =  " ↑ " )  {   
			
				
				
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentIndex ( 1 ) ;        main_layout - > setCurrentIndex ( 1 ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  }      }  else  if  ( key  = =  " 123 " )  {   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( ! QString : : compare ( key ,  " 123 " ) )  {        main_layout - > setCurrentIndex ( 2 ) ;   
			
				
				
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentIndex ( 2 ) ;      }  else  if  ( key  = =  " #+= " )  {   
			
				
				
			
		
	
		
		
			
				
					
					  }        main_layout - > setCurrentIndex ( 3 ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( ! QString : : compare ( key ,  " #+= " ) )  {      }  else  if  ( key  = =  ENTER_KEY )  {   
			
				
				
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentIndex ( 3 ) ;        main_layout - > setCurrentIndex ( 0 ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  }        emit  emitEnter ( ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( ! QString : : compare ( key ,  ENTER_KEY ) )  {      }  else  if  ( key  = =  BACKSPACE_KEY )  {   
			
				
				
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentIndex ( 0 ) ;        emit  emitBackspace ( ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  }      }   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( " A "  < =  key  & &  key  < =  " Z " )  {    }  else  {   
			
				
				
			
		
	
		
		
			
				
					
					    main_layout - > setCurrentIndex ( 0 ) ;      if  ( " A "  < =  key  & &  key  < =  " Z " )  {   
			
				
				
			
		
	
		
		
			
				
					
					  }        main_layout - > setCurrentIndex ( 0 ) ;   
			
				
				
			
		
	
		
		
			
				
					
					
    }   
			
				
				
			
		
	
		
		
			
				
					
					  // TODO: break up into separate signals
      emit  emitKey ( key ) ;   
			
				
				
			
		
	
		
		
			
				
					
					  if  ( ! CONTROL_BUTTONS . contains ( key ) )  {   
			
		
	
		
		
			
				
					
					    emit  emitButton ( key ) ;   
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					} }