summaryrefslogtreecommitdiff
path: root/core/pim/todo/quickeditimpl.cpp
blob: 2dd5b611e686ea9c59d277ececd8f3c4a09b7df1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <qlineedit.h>

#include <opie/oclickablelabel.h>

#include "mainwindow.h"
#include "quickeditimpl.h"


QuickEditImpl::QuickEditImpl( Todo::MainWindow* win, QWidget* arent )
    : QHBox(arent), Todo::QuickEdit(win) {
    m_lbl = new OClickableLabel(this );
    m_lbl->setMinimumWidth(12);
    m_lbl->setText("3");

    m_edit = new QLineEdit(this );

    m_enter = new OClickableLabel(this);
    m_enter->setText("Enter");

    m_more  = new OClickableLabel(this);
    m_more->setText("More");


    // connect
    connect(m_lbl, SIGNAL(clicked() ),
            this, SLOT(slotPrio()) );
    connect(m_enter, SIGNAL(clicked() ),
            this, SLOT(slotEnter() ) );
    connect(m_more, SIGNAL(clicked() ),
            this, SLOT(slotMore() ) );

    m_menu = 0l;
    reinit();
    setMaximumHeight( m_edit->sizeHint().height() );
}
QuickEditImpl::~QuickEditImpl() {

}
OTodo QuickEditImpl::todo()const {
    return m_todo;
}
QWidget* QuickEditImpl::widget() {
    return this;
}
QSize QuickEditImpl::sizeHint()const{
    return m_edit->sizeHint();
}
void QuickEditImpl::slotEnter() {
    OTodo todo;


    if (!m_edit->text().isEmpty() ) {
        todo.setUid(1 ); // new uid
        todo.setPriority( m_lbl->text().toInt() );
        todo.setSummary( m_edit->text() );
        if ( mainWindow()->currentCatId() != 0 )
            todo.setCategories( mainWindow()->currentCatId() );

        m_todo = todo;
       commit();
    }
    m_todo = todo;
    reinit();
}
void QuickEditImpl::slotPrio() {
    m_state++;
    if (m_state > 2 )
        m_state = 0;

    switch(m_state ) {
    case 0:
        m_lbl->setText( "1" );
        break;
    case 2:
        m_lbl->setText( "5" );
        break;
    case 1:
    default:
        m_lbl->setText( "3");
        break;
    }
}
void QuickEditImpl::slotMore() {
}
void QuickEditImpl::reinit() {
    m_state = 1;
    m_lbl->setText("3");
    m_edit->clear();
}