Ticket #4454: UIRemoteEdit accepts numebrs only.patch

File UIRemoteEdit accepts numebrs only.patch, 6.8 KB (added by anonymous, 13 years ago)
  • libs/libmyth/mythwidgets.cpp

     
    567567}
    568568
    569569MythRemoteLineEdit::MythRemoteLineEdit(QWidget * parent, const char * name)
    570                   : QTextEdit(parent, name)
     570                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
    571571{
    572572    my_font = NULL;
    573573    m_lines = 1;
     
    576576
    577577MythRemoteLineEdit::MythRemoteLineEdit(const QString & contents,
    578578                                       QWidget * parent, const char * name)
    579                   : QTextEdit(parent, name)
     579                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
    580580{
    581581    my_font = NULL;
    582582    m_lines = 1;
     
    586586
    587587MythRemoteLineEdit::MythRemoteLineEdit(QFont *a_font, QWidget * parent,
    588588                                       const char * name)
    589                   : QTextEdit(parent, name)
     589                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
    590590{
    591591    my_font = a_font;
    592592    m_lines = 1;
     
    595595
    596596MythRemoteLineEdit::MythRemoteLineEdit(int lines, QWidget * parent,
    597597                                       const char * name)
    598                   : QTextEdit(parent, name)
     598                  : QTextEdit(parent, name), m_acceptNumbersOnly(false)
    599599{
    600600    my_font = NULL;
    601601    m_lines = lines;
     
    867867            QString action = actions[i];
    868868            handled = true;
    869869
    870             if (action == "UP")
     870            if(!m_acceptNumbersOnly)
    871871            {
    872                 endCycle();
    873                 // Need to call very base one because
    874                 // QTextEdit reimplements it to tab
    875                 // through links (even if you're in
    876                 // PlainText Mode !!)
    877                 QWidget::focusNextPrevChild(false);
    878                 emit tryingToLooseFocus(false);
     872                if (action == "UP")
     873                {
     874                        endCycle();
     875                        // Need to call very base one because
     876                        // QTextEdit reimplements it to tab
     877                        // through links (even if you're in
     878                        // PlainText Mode !!)
     879                        QWidget::focusNextPrevChild(false);
     880                        emit tryingToLooseFocus(false);
     881                }
     882                else if (action == "DOWN")
     883                {
     884                        endCycle();
     885                        QWidget::focusNextPrevChild(true);
     886                        emit tryingToLooseFocus(true);
     887                }
     888                else if ((action == "SELECT") &&
     889                                (!active_cycle) &&
     890                                ((e->text().isEmpty()) ||
     891                                                (e->key() == Qt::Key_Enter) ||
     892                                                (e->key() == Qt::Key_Return)))
     893                {
     894                        if (useVirtualKeyboard)
     895                                popupVirtualKeyboard();
     896                }           
     897                else
     898                        handled = false;
    879899            }
    880             else if (action == "DOWN")
     900            else
    881901            {
    882                 endCycle();
    883                 QWidget::focusNextPrevChild(true);
    884                 emit tryingToLooseFocus(true);
     902                if (action == "UP")
     903                {                       
     904                        // Need to call very base one because
     905                        // QTextEdit reimplements it to tab
     906                        // through links (even if you're in
     907                        // PlainText Mode !!)
     908                        QWidget::focusNextPrevChild(false);
     909                        emit tryingToLooseFocus(false);
     910                }
     911                else if (action == "DOWN")
     912                {                       
     913                        QWidget::focusNextPrevChild(true);
     914                        emit tryingToLooseFocus(true);
     915                }
     916                else if(action == "LEFT")
     917                {
     918                        backspace();
     919                        return;
     920                }
     921                else
     922                {
     923                        if(e->key() >= Key_0 && e->key() <= Key_9)
     924                        {
     925                                QTextEdit::keyPressEvent(e);
     926                                emit textChanged(this->text());
     927                        }                       
     928                }
     929                return;
    885930            }
    886             else if ((action == "SELECT") &&
    887                      (!active_cycle) &&
    888                      ((e->text().isEmpty()) ||
    889                       (e->key() == Qt::Key_Enter) ||
    890                       (e->key() == Qt::Key_Return)))
    891             {
    892                 if (useVirtualKeyboard)
    893                     popupVirtualKeyboard();
    894             }
    895             else
    896                 handled = false;
    897931        }
     932    }
     933    else if(m_acceptNumbersOnly){
     934        if(e->key() >= Key_0 && e->key() <= Key_9)
     935        {
     936                QTextEdit::keyPressEvent(e);
     937                emit textChanged(this->text());
     938        }
     939        handled = true;
    898940    }
    899941
    900942    if (handled)
     
    906948        QTextEdit::keyPressEvent(e);
    907949        emit textChanged(this->text());
    908950        return;
    909     }
     951    }   
    910952
    911953    switch (e->key())
    912954    {
  • libs/libmyth/uitypes.cpp

     
    28182863
    28192864UIRemoteEditType::UIRemoteEditType(const QString &name, fontProp *font,
    28202865                       const QString &text, int dorder, QRect displayrect)
    2821            : UIType(name)
     2866           : UIType(name), m_acceptNumbersOnly(false)
    28222867{
    28232868    m_font = font;
    28242869    m_text = text;
  • libs/libmyth/uitypes.h

     
    969977    void    setFont(fontProp *font);
    970978    void    setCharacterColors(QColor unselected, QColor selected, QColor special);
    971979    void    calculateScreenArea();
     980    void        setAcceptNumbersOnly(bool accept){
     981        if(edit){
     982                edit->setAcceptNumbersOnly(accept);
     983                m_acceptNumbersOnly = accept;
     984        }
     985    }
    972986
    973987  public slots:
    974988    void takeFocusAwayFromEditor(bool up_or_down);
     
    9861000    QRect    m_displaysize;
    9871001    QString  m_text;
    9881002    fontProp *m_font;
    989     QColor   m_unselected; 
     1003    QColor   m_unselected;
    9901004    QColor   m_selected;
    9911005    QColor   m_special;
     1006    bool         m_acceptNumbersOnly;
    9921007
    9931008    MythThemedDialog* m_parentDialog;
    9941009};
  • libs/libmyth/mythwidgets.h

     
    197197    void del();
    198198    void setPopupPosition(PopupPosition pos) { popupPosition = pos; };
    199199    PopupPosition getPopupPosition(void) { return popupPosition; };
     200    void setAcceptNumbersOnly(bool accept){
     201        m_acceptNumbersOnly = accept;
     202    }
    200203
    201204    virtual QString text();
    202205
     
    262265    VirtualKeyboard *popup;
    263266    bool             useVirtualKeyboard;
    264267    PopupPosition    popupPosition;
     268    bool                        m_acceptNumbersOnly;
    265269};
    266270
    267271class MPUBLIC MythTable : public QTable