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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
/* dbRecordEditor.cc KPilot
**
** Copyright (C) 2003 Reinhold Kainhofer <reinhold@kainhofer.com>
**
**/
/*
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program in a file called COPYING; if not, write to
** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
** MA 02110-1301, USA.
*/
/*
** Bug reports and questions can be sent to kde-pim@kde.org
*/
#include "options.h"
#include <qtextedit.h>
#include <qlabel.h>
#include <kdialogbase.h>
#include <kmessagebox.h>
#include "dbAppInfoEditor.h"
#include <khexedit/byteseditinterface.h>
using namespace KHE;
/*************************************************
**************************************************/
DBAppInfoEditor::DBAppInfoEditor(char*appInfoData, int l, QWidget *parent) :
KDialogBase(parent, "AppBlock Editor",false,
i18n("Edit AppInfo Block"),
Ok|Cancel),
appInfo(appInfoData),
len(l)
{
fAppInfoEdit = KHE::createBytesEditWidget( this, "fAppInfoEdit" );
if( fAppInfoEdit )
{
// fetch the editor interface
KHE::BytesEditInterface* fAppInfoEditIf = KHE::bytesEditInterface( fAppInfoEdit );
Q_ASSERT( fAppInfoEditIf ); // This should not fail!
if( fAppInfoEditIf )
{
fAppInfoEditIf->setData( (char*)appInfoData, l );
fAppInfoEditIf->setMaxDataSize( l );
// TODO_RK: Make the app info editable. I need to find a way
// to sync the appInfoBlock to the handheld
fAppInfoEditIf->setReadOnly( true );
}
}
else
{
QLabel*tmpW = new QLabel( i18n("To view the Application info block data, please install a hex editor (e.g. khexedit from kdeutils)."), this );
tmpW->setBackgroundMode( Qt::PaletteMid );
tmpW->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter | Qt::WordBreak);
tmpW->setFrameShape( QFrame::Panel );
tmpW->setFrameShadow( QFrame::Sunken );
fAppInfoEdit = tmpW;
}
setMainWidget( fAppInfoEdit );
fillWidgets();
}
DBAppInfoEditor::~DBAppInfoEditor()
{
}
void DBAppInfoEditor::slotOk()
{
KMessageBox::sorry(this, i18n("Changing the AppInfo block isn't yet supported by KPilot!"));
/* if (KMessageBox::questionYesNo(this, i18n("Changing the AppInfo block "
"might corrupt the whole database. \n\nReally assign the new AppInfo "
"block?"), i18n("Changing AppInfo Block"), i18n("Assign"), KStdGuiItem::cancel())==KMessageBox::Yes)
{
// TODO: Copy the data over
// TODO: set the length
// (*len)=..;
}*/
KDialogBase::slotOk();
}
void DBAppInfoEditor::fillWidgets()
{
// FUNCTIONSETUP
}
#include "dbAppInfoEditor.moc"
|