summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/journalentry.cpp35
1 files changed, 26 insertions, 9 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index f0e0f86..739949d 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -19,193 +19,210 @@
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24// 24//
25// Journal Entry 25// Journal Entry
26 26
27#include <qlabel.h> 27#include <qlabel.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qvbox.h> 29#include <qvbox.h>
30#include <qfile.h> 30#include <qfile.h>
31#include <qdir.h> 31#include <qdir.h>
32#include <qtextstream.h> 32#include <qtextstream.h>
33#include <qtextcodec.h> 33#include <qtextcodec.h>
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qpushbutton.h> 35#include <qpushbutton.h>
36#include <qapplication.h> 36#include <qapplication.h>
37 37
38#include <kdebug.h> 38#include <kdebug.h>
39#include <kglobal.h> 39#include <kglobal.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <ktextedit.h> 41#include <ktextedit.h>
42#include <kfiledialog.h> 42#include <kfiledialog.h>
43#include <kmessagebox.h> 43#include <kmessagebox.h>
44#include "koprefs.h" 44#include "koprefs.h"
45#include <klineedit.h> 45#include <klineedit.h>
46#include <kdialog.h> 46#include <kdialog.h>
47#include "kolocationbox.h" 47#include "kolocationbox.h"
48 48
49#include <libkcal/journal.h> 49#include <libkcal/journal.h>
50#include <libkcal/calendarresources.h> 50#include <libkcal/calendarresources.h>
51#include <libkcal/resourcecalendar.h> 51#include <libkcal/resourcecalendar.h>
52#include <kresources/resourceselectdialog.h> 52#include <kresources/resourceselectdialog.h>
53 53
54#include "journalentry.h" 54#include "journalentry.h"
55//#include "journalentry.moc" 55//#include "journalentry.moc"
56#ifndef DESKTOP_VERSION 56#ifndef DESKTOP_VERSION
57#include <qpe/qpeapplication.h> 57#include <qpe/qpeapplication.h>
58#endif 58#endif
59JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : 59JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
60 QFrame(parent) 60 QFrame(parent)
61{ 61{
62 62
63 int fac = 5; 63 int fac = 5;
64 heiHint = QApplication::desktop()->height(); 64 heiHint = QApplication::desktop()->height();
65 if ( heiHint > 800 ) 65 if ( heiHint > 800 )
66 fac += 2; 66 fac += 2;
67 heiHint = heiHint / fac; 67 heiHint = heiHint / fac;
68 68
69 showOnlyMode = false; 69 showOnlyMode = false;
70 mCalendar = calendar; 70 mCalendar = calendar;
71 mJournal = 0; 71 mJournal = 0;
72 visibleMode = true; 72 visibleMode = true;
73 QHBox * vb = new QHBox ( this ); 73 QHBox * vb = new QHBox ( this );
74 QPixmap iconp; 74 QPixmap iconp;
75 vb->setMargin ( KDialog::marginHint()-1 ); 75 vb->setMargin ( KDialog::marginHint()-1 );
76 QPushButton * toggleJournal = new QPushButton( vb ); 76 QPushButton * toggleJournal = new QPushButton( vb );
77 iconp = SmallIcon("1updownarrow"); 77 iconp = SmallIcon("1updownarrow");
78 toggleJournal->setPixmap (iconp ) ; 78 toggleJournal->setPixmap (iconp ) ;
79 QLabel* textLabel = new QLabel(" "+i18n("Title: "),vb); 79 QLabel* textLabel = new QLabel(" "+i18n("Title: "),vb);
80 vb->setStretchFactor (textLabel,1); 80 vb->setStretchFactor (textLabel,1);
81 vb->setStretchFactor( toggleJournal, 1 ); 81 vb->setStretchFactor( toggleJournal, 1 );
82 mTitle = new KOLocationBox(TRUE, vb, 30); 82 mTitle = new KOLocationBox(TRUE, vb, 30);
83 mTitle->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding ,QSizePolicy::Fixed ,FALSE) ); 83 mTitle->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Fixed ,FALSE) );
84 mCalendarBox = new QComboBox(vb); 84 mCalendarBox = new QComboBox(vb);
85 mCalendarBox->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding ,QSizePolicy::Fixed ,FALSE) ); 85 mCalendarBox->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Fixed ,FALSE) );
86#ifndef DESKTOP_VERSION 86#ifndef DESKTOP_VERSION
87 mTitle->setSizeLimit( 8 ); 87 mTitle->setSizeLimit( 8 );
88 mCalendarBox->setSizeLimit( 8 ); 88 mCalendarBox->setSizeLimit( 8 );
89#endif 89#endif
90 vb->setStretchFactor ( mTitle, 8 ); 90 vb->setStretchFactor ( mTitle, 8 );
91 vb->setStretchFactor ( mCalendarBox, 3 ); 91 int limit = 3;
92 if ( QApplication::desktop()->width() < 640 )
93 limit = 6;
94 vb->setStretchFactor ( mCalendarBox, limit );
92 //mTitleLabel->setMargin(0); 95 //mTitleLabel->setMargin(0);
93 //mTitleLabel->setAlignment(AlignCenter); 96 //mTitleLabel->setAlignment(AlignCenter);
94 QPushButton * loadTemplate = new QPushButton( vb ); 97 QPushButton * loadTemplate = new QPushButton( vb );
95 QPushButton * saveTemplate = new QPushButton( vb ); 98 QPushButton * saveTemplate = new QPushButton( vb );
96 if ( QApplication::desktop()->width() < 321 ) 99 if ( QApplication::desktop()->width() < 321 )
97 iconp = SmallIcon("fileexport16"); 100 iconp = SmallIcon("fileexport16");
98 else 101 else
99 iconp = SmallIcon("fileexport"); 102 iconp = SmallIcon("fileexport");
100 saveTemplate->setPixmap (iconp ) ; 103 saveTemplate->setPixmap (iconp ) ;
101 int size = saveTemplate->sizeHint().height(); 104 int size = saveTemplate->sizeHint().height();
102 if ( QApplication::desktop()->width() < 321 ) 105 if ( QApplication::desktop()->width() < 321 )
103 iconp = SmallIcon("fileimport16"); 106 iconp = SmallIcon("fileimport16");
104 else 107 else
105 iconp = SmallIcon("fileimport"); 108 iconp = SmallIcon("fileimport");
106 loadTemplate->setPixmap (iconp ) ; 109 loadTemplate->setPixmap (iconp ) ;
107 loadTemplate->setFixedSize( size, size ); 110 loadTemplate->setFixedSize( size, size );
108 saveTemplate->setFixedSize( size, size ); 111 saveTemplate->setFixedSize( size, size );
109 toggleJournal->setFixedSize( size , size ); 112 toggleJournal->setFixedSize( size , size );
110 mTitle->setFixedHeight( size+4); 113 mTitle->setFixedHeight( size+4);
111 mCalendarBox->setFixedHeight( size+4); 114 mCalendarBox->setFixedHeight( size+4);
112 mEditor = new KTextEdit(this); 115 mEditor = new KTextEdit(this);
113#ifndef DESKTOP_VERSION 116#ifndef DESKTOP_VERSION
114 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); 117 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold );
115#endif 118#endif
116 mMaxWidDiff = 3*size - 2*frameWidth() - textLabel->sizeHint().width(); 119 mMaxWidDiff = 3*size - 2*frameWidth() - textLabel->sizeHint().width();
117 mDeskWid = QApplication::desktop()->width(); 120 mDeskWid = QApplication::desktop()->width();
118 int maxwid = mDeskWid - mMaxWidDiff; 121 int maxwid = mDeskWid - mMaxWidDiff;
119 mTitle->setMaximumWidth( maxwid/2 +20 ); 122 if ( QApplication::desktop()->width() < 640 ) {
120 mCalendarBox->setMaximumWidth( maxwid/2 -20 ); 123 mTitle->setMaximumWidth( maxwid/2 +20 );
124 mCalendarBox->setMaximumWidth( maxwid/2 -20);
125 } else {
126 mTitle->setMaximumWidth( (maxwid/4)*3);
127 mCalendarBox->setMaximumWidth( maxwid/2 );
128 }
129 //mCalendarBox->setMaximumWidth( maxwid/2 -20 );
121 mEditor->setWordWrap( KTextEdit::WidgetWidth ); 130 mEditor->setWordWrap( KTextEdit::WidgetWidth );
122 QBoxLayout *topLayout = new QVBoxLayout(this); 131 QBoxLayout *topLayout = new QVBoxLayout(this);
123 topLayout->addWidget(vb); 132 topLayout->addWidget(vb);
124 topLayout->addWidget(mEditor); 133 topLayout->addWidget(mEditor);
125 mEditor->installEventFilter(this); 134 mEditor->installEventFilter(this);
126 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 135 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
127 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 136 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
128 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) ); 137 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) );
129 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 138 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
130 mTitle->lineEdit ()->setText(""); 139 mTitle->lineEdit ()->setText("");
131} 140}
132 141
133JournalEntry::~JournalEntry() 142JournalEntry::~JournalEntry()
134{ 143{
135 //qDebug("JournalEntry::~JournalEntry() "); 144 //qDebug("JournalEntry::~JournalEntry() ");
136} 145}
137void JournalEntry::resizeEvent(QResizeEvent* e ) 146void JournalEntry::resizeEvent(QResizeEvent* e )
138{ 147{
139#ifndef DESKTOP_VERSION 148#ifndef DESKTOP_VERSION
149
140 if ( mDeskWid != QApplication::desktop()->width() ) { 150 if ( mDeskWid != QApplication::desktop()->width() ) {
141 mDeskWid == QApplication::desktop()->width(); 151 mDeskWid == QApplication::desktop()->width();
142 int maxwid = mDeskWid - mMaxWidDiff; 152 int maxwid = mDeskWid - mMaxWidDiff;
143 mTitle->setMaximumWidth( maxwid/2 +20 ); 153 if ( QApplication::desktop()->width() < 640 ) {
144 mCalendarBox->setMaximumWidth( maxwid/2 -20 ); 154 mTitle->setMaximumWidth( maxwid/2 +20 );
155 mCalendarBox->setMaximumWidth( maxwid/2 -20);
156 }
157 else {
158 mTitle->setMaximumWidth( (maxwid/4)*3);
159 mCalendarBox->setMaximumWidth( maxwid/2 );
160 }
161 //mCalendarBox->setMaximumWidth( maxwid/2 -20 );
145 } 162 }
146 setMaximumWidth( QApplication::desktop()->width() ); 163 //setMaximumWidth( QApplication::desktop()->width() );
147 qDebug("MAXXX %d ", QApplication::desktop()->width()); 164 //qDebug("MAXXX %d ", QApplication::desktop()->width());
148#endif 165#endif
149 QFrame::resizeEvent( e ); 166 QFrame::resizeEvent( e );
150} 167}
151QSize JournalEntry::sizeHint() const 168QSize JournalEntry::sizeHint() const
152{ 169{
153 return QSize ( 240, heiHint ); 170 return QSize ( 240, heiHint );
154} 171}
155void JournalEntry::slotSaveTemplate() 172void JournalEntry::slotSaveTemplate()
156{ 173{
157 QString fileName =locateLocal( "templates", "journals" ); 174 QString fileName =locateLocal( "templates", "journals" );
158 QDir t_dir; 175 QDir t_dir;
159 if ( !t_dir.exists(fileName) ) 176 if ( !t_dir.exists(fileName) )
160 t_dir.mkdir ( fileName ); 177 t_dir.mkdir ( fileName );
161 fileName += "/journal"; 178 fileName += "/journal";
162 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); 179 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this );
163 if ( fileName.length() == 0 ) 180 if ( fileName.length() == 0 )
164 return; 181 return;
165 182
166 QFile fileIn( fileName ); 183 QFile fileIn( fileName );
167 if (!fileIn.open( IO_WriteOnly ) ) { 184 if (!fileIn.open( IO_WriteOnly ) ) {
168 KMessageBox::error( this, i18n("Error saving template file\n '%1'.") 185 KMessageBox::error( this, i18n("Error saving template file\n '%1'.")
169 .arg( fileName ) ); 186 .arg( fileName ) );
170 return; 187 return;
171 } 188 }
172 // QString text; 189 // QString text;
173 QTextStream tsIn( &fileIn ); 190 QTextStream tsIn( &fileIn );
174 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 191 tsIn.setCodec( QTextCodec::codecForName("utf8") );
175 tsIn << mEditor->text(); 192 tsIn << mEditor->text();
176 fileIn.close(); 193 fileIn.close();
177} 194}
178void JournalEntry::slotLoadTemplate() 195void JournalEntry::slotLoadTemplate()
179{ 196{
180 QString fileName =locateLocal( "templates", "journals" ); 197 QString fileName =locateLocal( "templates", "journals" );
181 QDir t_dir; 198 QDir t_dir;
182 if ( !t_dir.exists(fileName) ) 199 if ( !t_dir.exists(fileName) )
183 t_dir.mkdir ( fileName ); 200 t_dir.mkdir ( fileName );
184 fileName += "/journal"; 201 fileName += "/journal";
185 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this ); 202 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this );
186 if ( fileName.length() == 0 ) 203 if ( fileName.length() == 0 )
187 return; 204 return;
188 QFile fileIn( fileName ); 205 QFile fileIn( fileName );
189 if (!fileIn.open( IO_ReadOnly ) ) { 206 if (!fileIn.open( IO_ReadOnly ) ) {
190 KMessageBox::error( this, i18n("Error loading template file\n '%1'.") 207 KMessageBox::error( this, i18n("Error loading template file\n '%1'.")
191 .arg( fileName ) ); 208 .arg( fileName ) );
192 return; 209 return;
193 } 210 }
194 QTextStream tsIn( &fileIn ); 211 QTextStream tsIn( &fileIn );
195 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 212 tsIn.setCodec( QTextCodec::codecForName("utf8") );
196 QString text = tsIn.read(); 213 QString text = tsIn.read();
197 fileIn.close(); 214 fileIn.close();
198 int line, col; 215 int line, col;
199 mEditor->getCursorPosition (& line, & col ); 216 mEditor->getCursorPosition (& line, & col );
200 mEditor-> insertAt ( text, line, col, true ); 217 mEditor-> insertAt ( text, line, col, true );
201 //mEditor->setIgnoreMark( true ); 218 //mEditor->setIgnoreMark( true );
202} 219}
203void JournalEntry::setDate(const QDate &date) 220void JournalEntry::setDate(const QDate &date)
204{ 221{
205 showOnlyMode = false; 222 showOnlyMode = false;
206 writeJournal(); 223 writeJournal();
207 mDate = date; 224 mDate = date;
208 fillCalendar( mCalendar->defaultCalendar() ); 225 fillCalendar( mCalendar->defaultCalendar() );
209} 226}
210void JournalEntry::fillCalendar( int setToID ) 227void JournalEntry::fillCalendar( int setToID )
211{ 228{