summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2004-04-05 13:49:07 (UTC)
committer mickeyl <mickeyl>2004-04-05 13:49:07 (UTC)
commitf44b1d4abe82cfb74db68bffcaf240f6f6134708 (patch) (unidiff)
treec150abb3cbc842fd930d3ab7543a0b34ec3145ad
parent997a521a3ee84f614e2781a663911096ffb4a91a (diff)
downloadopie-f44b1d4abe82cfb74db68bffcaf240f6f6134708.zip
opie-f44b1d4abe82cfb74db68bffcaf240f6f6134708.tar.gz
opie-f44b1d4abe82cfb74db68bffcaf240f6f6134708.tar.bz2
use opie debugging
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--examples/networksettings/config.in2
-rw-r--r--examples/networksettings/example.pro19
-rw-r--r--examples/networksettings/exampleiface.cpp5
-rw-r--r--examples/networksettings/examplemodule.cpp10
-rw-r--r--examples/simple-pim/config.in2
-rw-r--r--examples/simple-pim/example.pro2
-rw-r--r--examples/simple-pim/simple.cpp38
-rw-r--r--rsync/qrsync.cpp13
8 files changed, 55 insertions, 36 deletions
diff --git a/examples/networksettings/config.in b/examples/networksettings/config.in
index 4bbbb4e..e1a68cc 100644
--- a/examples/networksettings/config.in
+++ b/examples/networksettings/config.in
@@ -1,4 +1,4 @@
1 config EXAMPLE_VPN 1 config EXAMPLE_VPN
2 boolean "opie-networksettingsplugin-example (VPN module)" 2 boolean "opie-networksettingsplugin-example (VPN module)"
3 default "n" if NETWORKSETUP 3 default "n" if NETWORKSETUP
4 depends ( LIBQPE || LIBQPE-X11 ) && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES && EXAMPLES 4 depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES && EXAMPLES
diff --git a/examples/networksettings/example.pro b/examples/networksettings/example.pro
index 835dbd0..7bfa1ed 100644
--- a/examples/networksettings/example.pro
+++ b/examples/networksettings/example.pro
@@ -1,17 +1,14 @@
1#TEMPLATE = app
2#
3TEMPLATE = lib 1TEMPLATE = lib
4#CONFIG += qt plugin warn_on 2CONFIG += qt plugin warn_on
5 CONFIG += qt plugin warn_on
6DESTDIR = $(OPIEDIR)/plugins/networksettings 3DESTDIR = $(OPIEDIR)/plugins/networksettings
7 HEADERS = exampleiface.h examplemodule.h 4HEADERS = exampleiface.h examplemodule.h
8 SOURCES = exampleiface.cpp examplemodule.cpp 5SOURCES = exampleiface.cpp examplemodule.cpp
9 INCLUDEPATH+= $(OPIEDIR)/include $(OPIEDIR)/noncore/settings/networksettings $(OPIEDIR)/noncore/settings/networksettings/interfaces 6INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/noncore/settings/networksettings $(OPIEDIR)/noncore/settings/networksettings/interfaces
10 DEPENDPATH+= $(OPIEDIR)/include $(OPIEDIR)/noncore/settings/networksettings $(OPIEDIR)/noncore/settings/networksettings/interfaces 7DEPENDPATH += $(OPIEDIR)/include $(OPIEDIR)/noncore/settings/networksettings $(OPIEDIR)/noncore/settings/networksettings/interfaces
11LIBS += -lqpe -linterfaces 8LIBS += -lqpe -linterfaces -lopiecore2
12 TARGET = example_vpn 9TARGET = example_vpn
13 VERSION = 1.0.0 10VERSION = 1.0.0
14 11
15 12
16 13
17include ( $(OPIEDIR)/include.pro ) 14include ( $(OPIEDIR)/include.pro )
diff --git a/examples/networksettings/exampleiface.cpp b/examples/networksettings/exampleiface.cpp
index 5267a9c..8012bb2 100644
--- a/examples/networksettings/exampleiface.cpp
+++ b/examples/networksettings/exampleiface.cpp
@@ -1,43 +1,46 @@
1#include "exampleiface.h" 1#include "exampleiface.h"
2 2
3#include <opie2/odebug.h>
4using namespace Opie::Core;
5
3VirtualInterface::VirtualInterface( QObject* parent, 6VirtualInterface::VirtualInterface( QObject* parent,
4 const char* name, 7 const char* name,
5 bool status ) 8 bool status )
6 : Interface(parent, name, status ) 9 : Interface(parent, name, status )
7{ 10{
8} 11}
9 12
10VirtualInterface::~VirtualInterface() { 13VirtualInterface::~VirtualInterface() {
11} 14}
12 15
13bool VirtualInterface::refresh() { 16bool VirtualInterface::refresh() {
14/* we do VPN over ppp 17/* we do VPN over ppp
15 * so replace the interfaceName with 18 * so replace the interfaceName with
16 * something actual existing 19 * something actual existing
17 * I take wlan0 in my case 20 * I take wlan0 in my case
18 */ 21 */
19 QString old = getInterfaceName(); 22 QString old = getInterfaceName();
20 qWarning("Interface name was " + old ); 23 odebug << "Interface name was " << old << oendl;
21 setInterfaceName( "wlan0" ); 24 setInterfaceName( "wlan0" );
22 25
23 bool b =Interface::refresh(); 26 bool b =Interface::refresh();
24 setInterfaceName( old ); 27 setInterfaceName( old );
25 28
26/* new and old interface name */ 29/* new and old interface name */
27 emit updateInterface(this); 30 emit updateInterface(this);
28 return b; 31 return b;
29} 32}
30 33
31 34
32void VirtualInterface::start() { 35void VirtualInterface::start() {
33// call pptp 36// call pptp
34 setStatus(true); 37 setStatus(true);
35 refresh(); 38 refresh();
36 emit updateMessage("VPN started"); 39 emit updateMessage("VPN started");
37} 40}
38 41
39void VirtualInterface::stop() { 42void VirtualInterface::stop() {
40 setStatus(false ); 43 setStatus(false );
41 refresh(); 44 refresh();
42 emit updateMessage("VPN halted"); 45 emit updateMessage("VPN halted");
43} 46}
diff --git a/examples/networksettings/examplemodule.cpp b/examples/networksettings/examplemodule.cpp
index d7fd718..703e6bd 100644
--- a/examples/networksettings/examplemodule.cpp
+++ b/examples/networksettings/examplemodule.cpp
@@ -1,71 +1,75 @@
1#include <qwidget.h> 1#include "exampleiface.h"
2#include "examplemodule.h"
3
4/* OPIE */
5#include <opie2/odebug.h>
6using namespace Opie::Core;
2 7
3#include <interfaces/interfaceinformationimp.h> 8#include <interfaces/interfaceinformationimp.h>
4 9
5#include "exampleiface.h" 10#include <qwidget.h>
6#include "examplemodule.h"
7 11
8VirtualModule::VirtualModule() { 12VirtualModule::VirtualModule() {
9 Interface* iface = new VirtualInterface( 0 ); 13 Interface* iface = new VirtualInterface( 0 );
10 iface->setHardwareName( "vpn" ); 14 iface->setHardwareName( "vpn" );
11 iface->setInterfaceName( "Test VPN" ); 15 iface->setInterfaceName( "Test VPN" );
12 m_interfaces.append( iface ); 16 m_interfaces.append( iface );
13 17
14// If we set up VPN via pptp 18// If we set up VPN via pptp
15// and networksettins was closed and now opened 19// and networksettins was closed and now opened
16// we need to hide the ppp device behind us 20// we need to hide the ppp device behind us
17// One can do this by calling setHandledInterfaceNames 21// One can do this by calling setHandledInterfaceNames
18// setHandledInterfaceNames(); 22// setHandledInterfaceNames();
19} 23}
20 24
21VirtualModule::~VirtualModule() { 25VirtualModule::~VirtualModule() {
22 m_interfaces.setAutoDelete( true ); 26 m_interfaces.setAutoDelete( true );
23 m_interfaces.clear(); 27 m_interfaces.clear();
24} 28}
25 29
26 30
27/* 31/*
28 * We're a VPN module 32 * We're a VPN module
29 */ 33 */
30bool VirtualModule::isOwner( Interface* iface ) { 34bool VirtualModule::isOwner( Interface* iface ) {
31 /* check if it is our device */ 35 /* check if it is our device */
32 return m_interfaces.find( iface ) != -1; 36 return m_interfaces.find( iface ) != -1;
33} 37}
34 38
35QWidget* VirtualModule::configure( Interface* ) { 39QWidget* VirtualModule::configure( Interface* ) {
36/* We don't have any Config for now */ 40/* We don't have any Config for now */
37 return 0l; 41 return 0l;
38} 42}
39 43
40QWidget* VirtualModule::information( Interface* iface ) { 44QWidget* VirtualModule::information( Interface* iface ) {
41 return new InterfaceInformationImp(0, "Interface info", iface ); 45 return new InterfaceInformationImp(0, "Interface info", iface );
42} 46}
43 47
44QList<Interface> VirtualModule::getInterfaces() { 48QList<Interface> VirtualModule::getInterfaces() {
45 return m_interfaces; 49 return m_interfaces;
46} 50}
47 51
48void VirtualModule::possibleNewInterfaces( QMap<QString, QString>& map) { 52void VirtualModule::possibleNewInterfaces( QMap<QString, QString>& map) {
49 map.insert( QObject::tr("VPN PPTP"), 53 map.insert( QObject::tr("VPN PPTP"),
50 QObject::tr("Add new Point to Point Tunnel Protocol connection" ) ); 54 QObject::tr("Add new Point to Point Tunnel Protocol connection" ) );
51} 55}
52 56
53 57
54Interface* VirtualModule::addNewInterface( const QString& ) { 58Interface* VirtualModule::addNewInterface( const QString& ) {
55 /* check the str if we support more interfaces */ 59 /* check the str if we support more interfaces */
56/* 60/*
57 Interface* iface = new VirtualInterface( 0 ); 61 Interface* iface = new VirtualInterface( 0 );
58 iface->setModuleOwner( this ); 62 iface->setModuleOwner( this );
59 return iface;*/ 63 return iface;*/
60 64
61// if we would support saving interfaces we could add 65// if we would support saving interfaces we could add
62// them here 66// them here
63 67
64 return 0; 68 return 0;
65} 69}
66 70
67 71
68bool VirtualModule::remove( Interface* ) { 72bool VirtualModule::remove( Interface* ) {
69/* we do not support removing our interface */ 73/* we do not support removing our interface */
70 return false; 74 return false;
71} 75}
diff --git a/examples/simple-pim/config.in b/examples/simple-pim/config.in
index aa1a426..9e6adc9 100644
--- a/examples/simple-pim/config.in
+++ b/examples/simple-pim/config.in
@@ -1,4 +1,4 @@
1 config SIMPLE_PIM_EXAMPLE 1 config SIMPLE_PIM_EXAMPLE
2 boolean "Mainwindow with PIM and QCOP usage" 2 boolean "Mainwindow with PIM and QCOP usage"
3 default "y" 3 default "y"
4 depends ( LIBQPE || LIBQPE-X11 ) && EXAMPLES && LIBOPIEPIM2 4 depends ( LIBQPE || LIBQPE-X11 ) && EXAMPLES && LIBOPIE2CORE && LIBOPIE2PIM
diff --git a/examples/simple-pim/example.pro b/examples/simple-pim/example.pro
index ebcdb2b..b8b2c69 100644
--- a/examples/simple-pim/example.pro
+++ b/examples/simple-pim/example.pro
@@ -1,17 +1,17 @@
1CONFIG += qt warn_on quick-app 1CONFIG += qt warn_on quick-app
2 2
3 3
4TARGET = simple-pim 4TARGET = simple-pim
5 5
6HEADERS = simple.h 6HEADERS = simple.h
7SOURCES = simple.cpp 7SOURCES = simple.cpp
8 8
9 9
10INCLUDEPATH += $(OPIEDIR)/include 10INCLUDEPATH += $(OPIEDIR)/include
11DEPENDPATH += $(OPIEDIR)/include 11DEPENDPATH += $(OPIEDIR)/include
12 12
13 13
14# we now also include opie 14# we now also include opie
15LIBS += -lqpe -lopiepim2 -lopieui2 15LIBS += -lqpe -lopiecore2 -lopiepim2 -lopieui2
16 16
17include ( $(OPIEDIR)/include.pro ) 17include ( $(OPIEDIR)/include.pro )
diff --git a/examples/simple-pim/simple.cpp b/examples/simple-pim/simple.cpp
index 50905bf..efd5070 100644
--- a/examples/simple-pim/simple.cpp
+++ b/examples/simple-pim/simple.cpp
@@ -1,446 +1,456 @@
1/* We use a sane order of include files, from the most special to the least special
2 That helps to reduce the number of implicit includes hence increases the reuse */
3
4/* First the local include files */
5#include "simple.h"
6
7/* Then the Ope include files.
8This includes qpe stuff which will eventually be merged with libopie2 */
9#include <opie2/odebug.h> // for odebug streams
10#include <opie2/oapplicationfactory.h> // a template + macro to save the main method and allow quick launching
11#include <opie2/otabwidget.h>
12#include <opie2/owait.h>
13#include <qpe/qpeapplication.h> // the QPEApplication
14#include <qpe/resource.h>
15#include <qpe/sound.h>
16#include <qpe/qcopenvelope_qws.h>
17#include <qpe/datebookmonth.h>
18#include <qpe/timestring.h>
19using namespace Opie::Core;
20
21/* Now the Qt includes */
1#include <qaction.h> // action 22#include <qaction.h> // action
2#include <qmenubar.h> // menubar 23#include <qmenubar.h> // menubar
3#include <qtoolbar.h> // toolbar 24#include <qtoolbar.h> // toolbar
4#include <qlabel.h> // a label 25#include <qlabel.h> // a label
5#include <qpushbutton.h> // the header file for the QPushButton 26#include <qpushbutton.h> // the header file for the QPushButton
6#include <qlayout.h> 27#include <qlayout.h>
7#include <qtimer.h> // we use it for the singleShot 28#include <qtimer.h> // we use it for the singleShot
8#include <qdatetime.h> // for QDate 29#include <qdatetime.h> // for QDate
9#include <qtextview.h> // a rich text widget 30#include <qtextview.h> // a rich text widget
10#include <qdialog.h> 31#include <qdialog.h>
11#include <qwhatsthis.h> // for whats this 32#include <qwhatsthis.h> // for whats this
12 33
13#include <qpe/qpeapplication.h> // the QPEApplication 34/* Add standard includes here if you need some
14#include <qpe/resource.h> 35 Examples are: stdlib.h, socket.h, etc. */
15#include <qpe/sound.h>
16#include <qpe/qcopenvelope_qws.h>
17#include <qpe/datebookmonth.h>
18#include <qpe/timestring.h>
19
20#include <opie2/oapplicationfactory.h> // a template + macro to save the main method and allow quick launching
21#include <opie2/otabwidget.h>
22#include <opie2/owait.h>
23
24#include "simple.h"
25 36
26/* 37/*
27 * implementation of simple 38 * implementation of simple
28 */ 39 */
29 40
30/* 41/*
31 * The factory is used for quicklaunching 42 * The factory is used for quicklaunching
32 * It needs a constructor ( c'tor ) with at least QWidget, const char* and WFlags as parameter and a static QString appName() matching the TARGET of the .pro 43 * It needs a constructor ( c'tor ) with at least QWidget, const char* and WFlags as parameter and a static QString appName() matching the TARGET of the .pro
33 * 44 *
34 * Depending on the global quick launch setting this will create 45 * Depending on the global quick launch setting this will create
35 * either a main method or one for our component plugin system 46 * either a main method or one for our component plugin system
36 */ 47 */
37 48
38using namespace Opie::Core;
39OPIE_EXPORT_APP( OApplicationFactory<MainWindow> ) 49OPIE_EXPORT_APP( OApplicationFactory<MainWindow> )
40 50
41MainWindow::MainWindow(QWidget *parent, const char* name, WFlags fl ) 51MainWindow::MainWindow(QWidget *parent, const char* name, WFlags fl )
42 : QMainWindow( parent, name, fl ) { 52 : QMainWindow( parent, name, fl ) {
43 setCaption(tr("My MainWindow") ); 53 setCaption(tr("My MainWindow") );
44 54
45 m_desktopChannel = 0; 55 m_desktopChannel = 0;
46 m_loading = 0; 56 m_loading = 0;
47 57
48 initUI(); 58 initUI();
49 59
50 60
51 /* 61 /*
52 * Tab widget as central 62 * Tab widget as central
53 */ 63 */
54 m_tab = new Opie::Ui::OTabWidget(this); 64 m_tab = new Opie::Ui::OTabWidget(this);
55 65
56 setCentralWidget( m_tab ); 66 setCentralWidget( m_tab );
57 67
58 m_todoView = new PIMListView(m_tab, "Todo view" ); 68 m_todoView = new PIMListView(m_tab, "Todo view" );
59 m_tab->addTab( m_todoView,"todo/TodoList", tr("Todos") ); 69 m_tab->addTab( m_todoView,"todo/TodoList", tr("Todos") );
60 70
61 m_dateView = new PIMListView(m_tab, "Datebook view" ); 71 m_dateView = new PIMListView(m_tab, "Datebook view" );
62 m_tab->addTab( m_dateView, "datebook/DateBook", tr("Events") ); 72 m_tab->addTab( m_dateView, "datebook/DateBook", tr("Events") );
63 73
64 /* now connect the actions */ 74 /* now connect the actions */
65 /* 75 /*
66 * we connect the activated to our show 76 * we connect the activated to our show
67 * and on activation we will show a detailed 77 * and on activation we will show a detailed
68 * summary of the record 78 * summary of the record
69 */ 79 */
70 connect(m_fire, SIGNAL(activated() ), 80 connect(m_fire, SIGNAL(activated() ),
71 this, SLOT(slotShow() ) ); 81 this, SLOT(slotShow() ) );
72 82
73 /* 83 /*
74 * We will change the date 84 * We will change the date
75 */ 85 */
76 connect(m_dateAction, SIGNAL(activated() ), 86 connect(m_dateAction, SIGNAL(activated() ),
77 this, SLOT(slotDate() ) ); 87 this, SLOT(slotDate() ) );
78 88
79 /* 89 /*
80 * connect the show signal of the PIMListView 90 * connect the show signal of the PIMListView
81 * to a slot to show a dialog 91 * to a slot to show a dialog
82 */ 92 */
83 connect(m_todoView, SIGNAL(showRecord(const OPimRecord&) ), 93 connect(m_todoView, SIGNAL(showRecord(const OPimRecord&) ),
84 this, SLOT(slotShowRecord(const OPimRecord&) ) ); 94 this, SLOT(slotShowRecord(const OPimRecord&) ) );
85 connect(m_dateView, SIGNAL(showRecord(const OPimRecord&) ), 95 connect(m_dateView, SIGNAL(showRecord(const OPimRecord&) ),
86 this, SLOT(slotShowRecord(const OPimRecord&) ) ); 96 this, SLOT(slotShowRecord(const OPimRecord&) ) );
87 97
88 /* 98 /*
89 * Now comes the important lines of code for this example 99 * Now comes the important lines of code for this example
90 * We do not directly call load but delay loading until 100 * We do not directly call load but delay loading until
91 * all Events are dispatches and handled. 101 * all Events are dispatches and handled.
92 * SO we will load once our window is mapped to screen 102 * SO we will load once our window is mapped to screen
93 * to achieve that we use a QTimer::singleShot 103 * to achieve that we use a QTimer::singleShot
94 * After 10 milli seconds the timer fires and on TimerEvent 104 * After 10 milli seconds the timer fires and on TimerEvent
95 * out slot slotLoad will be called 105 * out slot slotLoad will be called
96 * Remember this a Constructor to construct your object and not 106 * Remember this a Constructor to construct your object and not
97 * to load 107 * to load
98 */ 108 */
99 QTimer::singleShot( 10, this, SLOT(slotLoad() ) ); 109 QTimer::singleShot( 10, this, SLOT(slotLoad() ) );
100} 110}
101 111
102MainWindow::~MainWindow() { 112MainWindow::~MainWindow() {
103 // again nothing to delete because Qt takes care 113 // again nothing to delete because Qt takes care
104} 114}
105 115
106 116
107void MainWindow::setDocument( const QString& /*str*/ ) { 117void MainWindow::setDocument( const QString& /*str*/ ) {
108} 118}
109 119
110 120
111void MainWindow::initUI() { 121void MainWindow::initUI() {
112 122
113 setToolBarsMovable( false ); 123 setToolBarsMovable( false );
114 124
115 QToolBar *menuBarHolder = new QToolBar( this ); 125 QToolBar *menuBarHolder = new QToolBar( this );
116 126
117 menuBarHolder->setHorizontalStretchable( true ); 127 menuBarHolder->setHorizontalStretchable( true );
118 QMenuBar *mb = new QMenuBar( menuBarHolder ); 128 QMenuBar *mb = new QMenuBar( menuBarHolder );
119 QToolBar *tb = new QToolBar( this ); 129 QToolBar *tb = new QToolBar( this );
120 130
121 QPopupMenu *fileMenu = new QPopupMenu( this ); 131 QPopupMenu *fileMenu = new QPopupMenu( this );
122 132
123 133
124 QAction *a = new QAction( tr("Quit"), Resource::loadIconSet("quit_icon"), 134 QAction *a = new QAction( tr("Quit"), Resource::loadIconSet("quit_icon"),
125 QString::null, 0, this, "quit_action" ); 135 QString::null, 0, this, "quit_action" );
126 /* 136 /*
127 * Connect quit to the QApplication quit slot 137 * Connect quit to the QApplication quit slot
128 */ 138 */
129 connect(a, SIGNAL(activated() ), 139 connect(a, SIGNAL(activated() ),
130 qApp, SLOT(quit() ) ); 140 qApp, SLOT(quit() ) );
131 a->addTo( fileMenu ); 141 a->addTo( fileMenu );
132 142
133 a = new QAction(tr("View Current"), 143 a = new QAction(tr("View Current"),
134 Resource::loadIconSet("zoom"), 144 Resource::loadIconSet("zoom"),
135 QString::null, 0, this, "view current"); 145 QString::null, 0, this, "view current");
136 /* a simple whats this online explanation of out button */ 146 /* a simple whats this online explanation of out button */
137 a->setWhatsThis(tr("Views the current record") ); 147 a->setWhatsThis(tr("Views the current record") );
138 /* or QWhatsThis::add(widget, "description" ); */ 148 /* or QWhatsThis::add(widget, "description" ); */
139 149
140 /* see the power? */ 150 /* see the power? */
141 a->addTo( fileMenu ); 151 a->addTo( fileMenu );
142 a->addTo( tb ); 152 a->addTo( tb );
143 m_fire = a; 153 m_fire = a;
144 154
145 a = new QAction(tr("Choose Date"), 155 a = new QAction(tr("Choose Date"),
146 Resource::loadIconSet("day"), 156 Resource::loadIconSet("day"),
147 QString::null, 0, this, "choose date" ); 157 QString::null, 0, this, "choose date" );
148 a->addTo( fileMenu ); 158 a->addTo( fileMenu );
149 a->addTo( tb ); 159 a->addTo( tb );
150 m_dateAction = a; 160 m_dateAction = a;
151 161
152 mb->insertItem(tr("File"), fileMenu ); 162 mb->insertItem(tr("File"), fileMenu );
153 163
154} 164}
155 165
156void MainWindow::slotLoad() { 166void MainWindow::slotLoad() {
157 /* 167 /*
158 * There is no real shared access in the PIM API 168 * There is no real shared access in the PIM API
159 * It wasn't finish cause of health problems of one 169 * It wasn't finish cause of health problems of one
160 * of the authors so we do something fancy and use QCOP 170 * of the authors so we do something fancy and use QCOP
161 * the IPC system to get a current copy 171 * the IPC system to get a current copy
162 */ 172 */
163 /* NOTES to QCOP: QCOP operates over channels and use QDataStream 173 /* NOTES to QCOP: QCOP operates over channels and use QDataStream
164 * to send data. You can check if a channel isRegistered or hook 174 * to send data. You can check if a channel isRegistered or hook
165 * yourself to that channel. A Channel is QCString and normally 175 * yourself to that channel. A Channel is QCString and normally
166 * prefix with QPE/ and then the system in example QPE/System, 176 * prefix with QPE/ and then the system in example QPE/System,
167 * QPE/Desktop a special channel is the application channel 177 * QPE/Desktop a special channel is the application channel
168 * it QPE/Application/appname this channel gets created on app 178 * it QPE/Application/appname this channel gets created on app
169 * startup by QPEApplication. QCOP is asynchronous 179 * startup by QPEApplication. QCOP is asynchronous
170 * 180 *
171 * To send you'll use QCopEnevelope 181 * To send you'll use QCopEnevelope
172 * 182 *
173 */ 183 */
174 /* 184 /*
175 * What we will do is first is get to know if either 185 * What we will do is first is get to know if either
176 * datebook or todolist are running if so we will kindly 186 * datebook or todolist are running if so we will kindly
177 * asked to save the data for us. 187 * asked to save the data for us.
178 * If neither are running we can load directly 188 * If neither are running we can load directly
179 */ 189 */
180 if (!QCopChannel::isRegistered("QPE/Application/todolist") && 190 if (!QCopChannel::isRegistered("QPE/Application/todolist") &&
181 !QCopChannel::isRegistered("QPE/Application/datebook") ) { 191 !QCopChannel::isRegistered("QPE/Application/datebook") ) {
182 m_db.load(); 192 m_db.load();
183 m_tb.load(); 193 m_tb.load();
184 return slotLoadForDay( QDate::currentDate() ); 194 return slotLoadForDay( QDate::currentDate() );
185 } 195 }
186 196
187 /* 197 /*
188 * prepare our answer machine the QCopChannel 198 * prepare our answer machine the QCopChannel
189 * QPE/Desktop will send "flushDone(QString)" when 199 * QPE/Desktop will send "flushDone(QString)" when
190 * the flush is done it emits a signal on receive 200 * the flush is done it emits a signal on receive
191 */ 201 */
192 m_desktopChannel = new QCopChannel("QPE/Desktop"); 202 m_desktopChannel = new QCopChannel("QPE/Desktop");
193 connect(m_desktopChannel, SIGNAL(received(const QCString&,const QByteArray&) ), 203 connect(m_desktopChannel, SIGNAL(received(const QCString&,const QByteArray&) ),
194 this, SLOT(slotDesktopReceive(const QCString&,const QByteArray&) ) ); 204 this, SLOT(slotDesktopReceive(const QCString&,const QByteArray&) ) );
195 /* the numberof synced channels will be set to zero */ 205 /* the numberof synced channels will be set to zero */
196 m_synced = 0; 206 m_synced = 0;
197 207
198 /* 208 /*
199 * We use {} around the QCopEnvelope because it sends its 209 * We use {} around the QCopEnvelope because it sends its
200 * data on destruction of QCopEnvelope with 210 * data on destruction of QCopEnvelope with
201 */ 211 */
202 /* check again if not present increment synced*/ 212 /* check again if not present increment synced*/
203 if ( QCopChannel::isRegistered("QPE/Application/todolist") ) { 213 if ( QCopChannel::isRegistered("QPE/Application/todolist") ) {
204 QCopEnvelope env("QPE/Application/todolist", "flush()" ); 214 QCopEnvelope env("QPE/Application/todolist", "flush()" );
205 // env << data; but we do not have any parameters here 215 // env << data; but we do not have any parameters here
206 }else 216 }else
207 m_synced++; 217 m_synced++;
208 218
209 if ( QCopChannel::isRegistered("QPE/Application/datebook") ) { 219 if ( QCopChannel::isRegistered("QPE/Application/datebook") ) {
210 QCopEnvelope env("QPE/Application/datebook", "flush()" ); 220 QCopEnvelope env("QPE/Application/datebook", "flush()" );
211 }else 221 }else
212 m_synced++; 222 m_synced++;
213 223
214 /* we will provide a wait scrren */ 224 /* we will provide a wait scrren */
215 m_loading = new Opie::Ui::OWait(this, "wait screen" ); 225 m_loading = new Opie::Ui::OWait(this, "wait screen" );
216} 226}
217 227
218void MainWindow::slotDesktopReceive(const QCString& cmd, const QByteArray& data ) { 228void MainWindow::slotDesktopReceive(const QCString& cmd, const QByteArray& data ) {
219 /* the bytearray was filled with the QDataStream now 229 /* the bytearray was filled with the QDataStream now
220 * we open it read only to get the value(s) 230 * we open it read only to get the value(s)
221 */ 231 */
222 QDataStream stream(data, IO_ReadOnly ); 232 QDataStream stream(data, IO_ReadOnly );
223 /* 233 /*
224 * we're only interested in the flushDone 234 * we're only interested in the flushDone
225 */ 235 */
226 if ( cmd == "flushDone(QString)" ) { 236 if ( cmd == "flushDone(QString)" ) {
227 QString appname; 237 QString appname;
228 stream >> appname; // get the first argument out of stream 238 stream >> appname; // get the first argument out of stream
229 if (appname == QString::fromLatin1("datebook") || 239 if (appname == QString::fromLatin1("datebook") ||
230 appname == QString::fromLatin1("todolist") ) 240 appname == QString::fromLatin1("todolist") )
231 m_synced++; 241 m_synced++;
232 } 242 }
233 243
234 /* 244 /*
235 * If we synced both we can go ahead 245 * If we synced both we can go ahead
236 * In future this is not needed anymore when we finally 246 * In future this is not needed anymore when we finally
237 * implemented X-Ref and other PIM features 247 * implemented X-Ref and other PIM features
238 */ 248 */
239 if (m_synced >= 2 ) { 249 if (m_synced >= 2 ) {
240 delete m_loading; 250 delete m_loading;
241 delete m_desktopChannel; 251 delete m_desktopChannel;
242 /* now we finally can start doing the actual loading */ 252 /* now we finally can start doing the actual loading */
243 m_tb.load(); 253 m_tb.load();
244 m_db.load(); 254 m_db.load();
245 { 255 {
246 /* tell the applications to reload */ 256 /* tell the applications to reload */
247 QCopEnvelope("QPE/Application/todolist", "reload()"); 257 QCopEnvelope("QPE/Application/todolist", "reload()");
248 QCopEnvelope("QPE/Application/datebook", "reload()"); 258 QCopEnvelope("QPE/Application/datebook", "reload()");
249 } 259 }
250 slotLoadForDay( QDate::currentDate() ); 260 slotLoadForDay( QDate::currentDate() );
251 } 261 }
252 262
253} 263}
254 264
255/* overloaded member for shortcoming of libqpe */ 265/* overloaded member for shortcoming of libqpe */
256void MainWindow::slotLoadForDay(int y, int m, int d) { 266void MainWindow::slotLoadForDay(int y, int m, int d) {
257 /* year,month, day */ 267 /* year,month, day */
258 slotLoadForDay( QDate(y, m, d ) ); 268 slotLoadForDay( QDate(y, m, d ) );
259} 269}
260 270
261void MainWindow::slotLoadForDay(const QDate& date) { 271void MainWindow::slotLoadForDay(const QDate& date) {
262 272
263 273
264 /* all todos for today including the ones without dueDate */ 274 /* all todos for today including the ones without dueDate */
265 m_todoView->set( m_tb.effectiveToDos(date, date ) ); 275 m_todoView->set( m_tb.effectiveToDos(date, date ) );
266 m_dateView->set( m_db.effectiveEvents( date, date ) ); 276 m_dateView->set( m_db.effectiveEvents( date, date ) );
267} 277}
268 278
269/* we want to show the current record */ 279/* we want to show the current record */
270void MainWindow::slotShow() { 280void MainWindow::slotShow() {
271 /* we only added PIMListViews so we can safely cast */ 281 /* we only added PIMListViews so we can safely cast */
272 PIMListView *view = static_cast<PIMListView*>(m_tab->currentWidget() ); 282 PIMListView *view = static_cast<PIMListView*>(m_tab->currentWidget() );
273 283
274 /* ask the view to send a signal */ 284 /* ask the view to send a signal */
275 view->showCurrentRecord(); 285 view->showCurrentRecord();
276 286
277} 287}
278 288
279/* as answer this slot will be called */ 289/* as answer this slot will be called */
280void MainWindow::slotShowRecord( const Opie::OPimRecord& rec) { 290void MainWindow::slotShowRecord( const Opie::OPimRecord& rec) {
281 /* got a parent but still is a toplevel MODAL dialog */ 291 /* got a parent but still is a toplevel MODAL dialog */
282 QDialog* dia = new QDialog(this,"dialog",TRUE ); 292 QDialog* dia = new QDialog(this,"dialog",TRUE );
283 QVBoxLayout *box = new QVBoxLayout( dia ); 293 QVBoxLayout *box = new QVBoxLayout( dia );
284 dia->setCaption( tr("View Record") ); 294 dia->setCaption( tr("View Record") );
285 295
286 296
287 QTextView *view = new QTextView(dia ); 297 QTextView *view = new QTextView(dia );
288 view->setText( rec.toRichText() ); 298 view->setText( rec.toRichText() );
289 box->addWidget( view ); 299 box->addWidget( view );
290 /* 300 /*
291 * execute via QPEApplication 301 * execute via QPEApplication
292 * this allows QPEApplication to make a sane decision 302 * this allows QPEApplication to make a sane decision
293 * on the size 303 * on the size
294 */ 304 */
295 dia->showMaximized(); 305 dia->showMaximized();
296 QPEApplication::execDialog( dia ); 306 QPEApplication::execDialog( dia );
297 delete dia; 307 delete dia;
298} 308}
299 309
300 310
301void MainWindow::slotDate() { 311void MainWindow::slotDate() {
302 /* 312 /*
303 * called by the action we will show a Popup 313 * called by the action we will show a Popup
304 * at the current mouse position with a DateChooser 314 * at the current mouse position with a DateChooser
305 * to select the day 315 * to select the day
306 */ 316 */
307 qWarning("slot Date"); 317 odebug << "slot Date" << oendl;
308 QPopupMenu *menu = new QPopupMenu(); 318 QPopupMenu *menu = new QPopupMenu();
309 /* A Month to select a date from TRUE for auto close */ 319 /* A Month to select a date from TRUE for auto close */
310 DateBookMonth *month = new DateBookMonth(menu, 0, true ); 320 DateBookMonth *month = new DateBookMonth(menu, 0, true );
311 connect(month, SIGNAL(dateClicked(int,int,int) ), 321 connect(month, SIGNAL(dateClicked(int,int,int) ),
312 this, SLOT(slotLoadForDay(int,int,int) ) ); 322 this, SLOT(slotLoadForDay(int,int,int) ) );
313 323
314 menu->insertItem( month ); 324 menu->insertItem( month );
315 325
316 menu->exec( QCursor::pos() ); 326 menu->exec( QCursor::pos() );
317 327
318 /* 328 /*
319 * we do not need to delete month because 329 * we do not need to delete month because
320 * we delete its parent menu 330 * we delete its parent menu
321 */ 331 */
322 332
323 delete menu; 333 delete menu;
324} 334}
325 335
326/* 336/*
327 * An anonymous namespace this symbol is only available here 337 * An anonymous namespace this symbol is only available here
328 * so truely private 338 * so truely private
329 */ 339 */
330namespace { 340namespace {
331 /* not static cause namespace does that what static would do */ 341 /* not static cause namespace does that what static would do */
332 const int RTTI = 5050; 342 const int RTTI = 5050;
333 /* 343 /*
334 * every ListView got Items. we've special pim items 344 * every ListView got Items. we've special pim items
335 * holding ownership and the pointer to a pim record 345 * holding ownership and the pointer to a pim record
336 * it can't hold a pimrecord directly because this 346 * it can't hold a pimrecord directly because this
337 * would introduce slicing... any break 347 * would introduce slicing... any break
338 */ 348 */
339 /* 349 /*
340 * A struct is a special class. Everything is public by 350 * A struct is a special class. Everything is public by
341 * default. 351 * default.
342 */ 352 */
343 struct PIMListViewItem : public QListViewItem { 353 struct PIMListViewItem : public QListViewItem {
344 /* 354 /*
345 *currently no hierachies are planed for the example 355 *currently no hierachies are planed for the example
346 * so only one constructor with a QListView as parent 356 * so only one constructor with a QListView as parent
347 */ 357 */
348 PIMListViewItem( QListView*, Opie::OPimRecord* record ); 358 PIMListViewItem( QListView*, Opie::OPimRecord* record );
349 ~PIMListViewItem(); 359 ~PIMListViewItem();
350 360
351 /* used by the QListViewItem to easily allow identifiying of different 361 /* used by the QListViewItem to easily allow identifiying of different
352 * items. Values greater than 1000 should be used */ 362 * items. Values greater than 1000 should be used */
353 int rtti()const; 363 int rtti()const;
354 Opie::OPimRecord* record()const; 364 Opie::OPimRecord* record()const;
355 365
356 private: 366 private:
357 Opie::OPimRecord* m_record; 367 Opie::OPimRecord* m_record;
358 }; 368 };
359 369
360 PIMListViewItem::PIMListViewItem( QListView *p, Opie::OPimRecord* rec ) 370 PIMListViewItem::PIMListViewItem( QListView *p, Opie::OPimRecord* rec )
361 : QListViewItem(p), m_record( rec ) { 371 : QListViewItem(p), m_record( rec ) {
362 } 372 }
363 373
364 PIMListViewItem::~PIMListViewItem() { 374 PIMListViewItem::~PIMListViewItem() {
365 /* we've the onwership so we need to delete it */ 375 /* we've the onwership so we need to delete it */
366 delete m_record; 376 delete m_record;
367 } 377 }
368 378
369 Opie::OPimRecord* PIMListViewItem::record()const { 379 Opie::OPimRecord* PIMListViewItem::record()const {
370 return m_record; 380 return m_record;
371 } 381 }
372 382
373} 383}
374 384
375 385
376PIMListView::PIMListView( QWidget* widget, const char* name, WFlags fl ) 386PIMListView::PIMListView( QWidget* widget, const char* name, WFlags fl )
377 : QListView(widget, name, fl ) 387 : QListView(widget, name, fl )
378{ 388{
379 addColumn("Summary"); 389 addColumn("Summary");
380} 390}
381 391
382PIMListView::~PIMListView() { 392PIMListView::~PIMListView() {
383 393
384} 394}
385 395
386void PIMListView::set( Opie::OPimTodoAccess::List list ) { 396void PIMListView::set( Opie::OPimTodoAccess::List list ) {
387 /* clear first and then add new items */ 397 /* clear first and then add new items */
388 clear(); 398 clear();
389 399
390 Opie::OPimTodoAccess::List::Iterator it; 400 Opie::OPimTodoAccess::List::Iterator it;
391 for (it = list.begin(); it != list.end(); ++it ) { 401 for (it = list.begin(); it != list.end(); ++it ) {
392 /* 402 /*
393 * make a new item which automatically gets added to the listview 403 * make a new item which automatically gets added to the listview
394 * and call the copy c'tor to create a new OPimTodo 404 * and call the copy c'tor to create a new OPimTodo
395 */ 405 */
396 PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimTodo( *it ) ); 406 PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimTodo( *it ) );
397 i->setText(0, (*it).summary() ); 407 i->setText(0, (*it).summary() );
398 } 408 }
399} 409}
400 410
401void PIMListView::set( const Opie::OEffectiveEvent::ValueList& lst ) { 411void PIMListView::set( const Opie::OEffectiveEvent::ValueList& lst ) {
402 /* clear first and then add items */ 412 /* clear first and then add items */
403 clear(); 413 clear();
404 414
405 Opie::OEffectiveEvent::ValueList::ConstIterator it; 415 Opie::OEffectiveEvent::ValueList::ConstIterator it;
406 for ( it = lst.begin(); it != lst.end(); ++it ) { 416 for ( it = lst.begin(); it != lst.end(); ++it ) {
407 PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimEvent( (*it).event() ) ); 417 PIMListViewItem *i = new PIMListViewItem(this, new Opie::OPimEvent( (*it).event() ) );
408 i->setText( 0, PIMListView::makeString( (*it) ) ); 418 i->setText( 0, PIMListView::makeString( (*it) ) );
409 } 419 }
410 420
411} 421}
412 422
413void PIMListView::showCurrentRecord() { 423void PIMListView::showCurrentRecord() {
414 /* it could be possible that their is no currentItem */ 424 /* it could be possible that their is no currentItem */
415 if (!currentItem() ) 425 if (!currentItem() )
416 return; 426 return;
417 427
418 /* 428 /*
419 * we only add PIMListViewItems so it is save 429 * we only add PIMListViewItems so it is save
420 * to do this case. If this would not be the case 430 * to do this case. If this would not be the case
421 * use rtti() to check in a switch() case 431 * use rtti() to check in a switch() case
422 */ 432 */
423 PIMListViewItem *item = static_cast<PIMListViewItem*>( currentItem() ); 433 PIMListViewItem *item = static_cast<PIMListViewItem*>( currentItem() );
424 434
425 /* finally you see how to emit a signal */ 435 /* finally you see how to emit a signal */
426 emit showRecord( (*item->record() ) ); 436 emit showRecord( (*item->record() ) );
427} 437}
428 438
429QString PIMListView::makeString( const Opie::OEffectiveEvent& ev ) { 439QString PIMListView::makeString( const Opie::OEffectiveEvent& ev ) {
430 QString str; 440 QString str;
431 str += ev.description(); 441 str += ev.description();
432 if ( !ev.event().isAllDay() ) { 442 if ( !ev.event().isAllDay() ) {
433 if ( ev.startDate() != ev.endDate() ) { 443 if ( ev.startDate() != ev.endDate() ) {
434 str += tr("Start ") + TimeString::timeString( ev.event().startDateTime().time() ); 444 str += tr("Start ") + TimeString::timeString( ev.event().startDateTime().time() );
435 str += " - " + TimeString::longDateString( ev.startDate() ); 445 str += " - " + TimeString::longDateString( ev.startDate() );
436 str += tr("End ") + TimeString::timeString( ev.event().endDateTime().time() ); 446 str += tr("End ") + TimeString::timeString( ev.event().endDateTime().time() );
437 str += " - " + TimeString::longDateString( ev.endDate() ); 447 str += " - " + TimeString::longDateString( ev.endDate() );
438 }else{ 448 }else{
439 str += tr("Time ") + TimeString::timeString( ev.startTime() ); 449 str += tr("Time ") + TimeString::timeString( ev.startTime() );
440 str += " - " + TimeString::timeString( ev.endTime() ); 450 str += " - " + TimeString::timeString( ev.endTime() );
441 } 451 }
442 }else 452 }else
443 str += tr(" This is an All-Day Event"); 453 str += tr(" This is an All-Day Event");
444 454
445 return str; 455 return str;
446} 456}
diff --git a/rsync/qrsync.cpp b/rsync/qrsync.cpp
index fe5f1bc..a2dbafc 100644
--- a/rsync/qrsync.cpp
+++ b/rsync/qrsync.cpp
@@ -1,110 +1,115 @@
1#include "qrsync.h" 1#include "qrsync.h"
2#include <stdio.h> 2#include <stdio.h>
3extern "C" { 3extern "C" {
4#include "rsync.h" 4#include "rsync.h"
5} 5}
6#include <stdlib.h> 6#include <stdlib.h>
7 7
8/* OPIE */
9#include <opie2/odebug.h>
10using namespace Opie::Core;
11
12/* QT */
8#include <qfile.h> 13#include <qfile.h>
9 14
10static const char *rdiffNewFile = "/tmp/rdiff/result"; 15static const char *rdiffNewFile = "/tmp/rdiff/result";
11static size_t block_len = RS_DEFAULT_BLOCK_LEN; 16static size_t block_len = RS_DEFAULT_BLOCK_LEN;
12static size_t strong_len = RS_DEFAULT_STRONG_LEN; 17static size_t strong_len = RS_DEFAULT_STRONG_LEN;
13 18
14 19
15void QRsync::generateSignature( QString baseFile, QString sigFile ) 20void QRsync::generateSignature( QString baseFile, QString sigFile )
16{ 21{
17 22
18 if ( QFile::exists( baseFile ) ) { 23 if ( QFile::exists( baseFile ) ) {
19 FILE *basis_file, *sig_file; 24 FILE *basis_file, *sig_file;
20 rs_result result; 25 rs_result result;
21 26
22 basis_file = fopen( baseFile.latin1(), "rb" ); 27 basis_file = fopen( baseFile.latin1(), "rb" );
23 sig_file = fopen( sigFile.latin1(), "wb" ); 28 sig_file = fopen( sigFile.latin1(), "wb" );
24 29
25 result = rs_sig_file(basis_file, sig_file, block_len, strong_len, 0); 30 result = rs_sig_file(basis_file, sig_file, block_len, strong_len, 0);
26 31
27 fclose( basis_file ); 32 fclose( basis_file );
28 fclose( sig_file ); 33 fclose( sig_file );
29 if (result != RS_DONE) 34 if (result != RS_DONE)
30 printf("error in rdiffGenSig: %d", result ); 35 printf("error in rdiffGenSig: %d", result );
31 } 36 }
32} 37}
33 38
34 39
35void QRsync::generateDiff( QString baseFile, QString sigFile, QString deltaFile ) 40void QRsync::generateDiff( QString baseFile, QString sigFile, QString deltaFile )
36{ 41{
37 if ( QFile::exists( baseFile ) && QFile::exists( sigFile ) ) { 42 if ( QFile::exists( baseFile ) && QFile::exists( sigFile ) ) {
38 FILE *sig_file, *new_file, *delta_file; 43 FILE *sig_file, *new_file, *delta_file;
39 rs_result result; 44 rs_result result;
40 rs_signature_t *sumset; 45 rs_signature_t *sumset;
41 46
42 sig_file = fopen(sigFile.latin1(), "rb"); 47 sig_file = fopen(sigFile.latin1(), "rb");
43 new_file = fopen(baseFile.latin1(), "rb"); 48 new_file = fopen(baseFile.latin1(), "rb");
44 delta_file = fopen(deltaFile.latin1(), "wb"); 49 delta_file = fopen(deltaFile.latin1(), "wb");
45 50
46 result = rs_loadsig_file(sig_file, &sumset, 0); 51 result = rs_loadsig_file(sig_file, &sumset, 0);
47 if (result != RS_DONE) { 52 if (result != RS_DONE) {
48 qDebug( "rdiffGenDiff: loading of sig file failed, error=%d", result ); 53 odebug << "rdiffGenDiff: loading of sig file failed, error=" << result << "" << oendl;
49 } else { 54 } else {
50 result = rs_build_hash_table(sumset); 55 result = rs_build_hash_table(sumset);
51 if ( result != RS_DONE) { 56 if ( result != RS_DONE) {
52 qDebug( "rdiffGenDiff: building of hash table failed, error=%d", result ); 57 odebug << "rdiffGenDiff: building of hash table failed, error=" << result << "" << oendl;
53 } else { 58 } else {
54 result = rs_delta_file(sumset, new_file, delta_file, 0); 59 result = rs_delta_file(sumset, new_file, delta_file, 0);
55 if ( result != RS_DONE) { 60 if ( result != RS_DONE) {
56 qDebug( "rdiffGenDiff: writing of diff file failed, error=%d", result ); 61 odebug << "rdiffGenDiff: writing of diff file failed, error=" << result << "" << oendl;
57 } 62 }
58 } 63 }
59 } 64 }
60 65
61 if ( sumset ) 66 if ( sumset )
62 rs_free_sumset( sumset ); 67 rs_free_sumset( sumset );
63 fclose( new_file ); 68 fclose( new_file );
64 fclose( delta_file ); 69 fclose( delta_file );
65 fclose( sig_file ); 70 fclose( sig_file );
66 71
67 } 72 }
68} 73}
69 74
70void QRsync::applyDiff( QString baseFile, QString deltaFile ) 75void QRsync::applyDiff( QString baseFile, QString deltaFile )
71{ 76{
72 if ( QFile::exists( baseFile ) && QFile::exists( deltaFile ) ) { 77 if ( QFile::exists( baseFile ) && QFile::exists( deltaFile ) ) {
73 FILE *basis_file, *delta_file, *new_file; 78 FILE *basis_file, *delta_file, *new_file;
74 rs_result result; 79 rs_result result;
75 80
76 basis_file = fopen(baseFile.latin1(), "rb"); 81 basis_file = fopen(baseFile.latin1(), "rb");
77 delta_file = fopen(deltaFile.latin1(), "rb"); 82 delta_file = fopen(deltaFile.latin1(), "rb");
78#ifdef Q_WS_WIN 83#ifdef Q_WS_WIN
79 new_file = fopen( (baseFile + ".new").latin1(), "wb" ); 84 new_file = fopen( (baseFile + ".new").latin1(), "wb" );
80#else 85#else
81 new_file = fopen(rdiffNewFile, "wb"); 86 new_file = fopen(rdiffNewFile, "wb");
82 #endif 87 #endif
83 88
84 result = rs_patch_file(basis_file, delta_file, new_file, 0); 89 result = rs_patch_file(basis_file, delta_file, new_file, 0);
85 90
86 fclose( basis_file ); 91 fclose( basis_file );
87 fclose( delta_file ); 92 fclose( delta_file );
88 fclose( new_file ); 93 fclose( new_file );
89 94
90 if (result != RS_DONE) { 95 if (result != RS_DONE) {
91 qDebug( "rdiffApplyDiff failed with result %d", result ); 96 odebug << "rdiffApplyDiff failed with result " << result << "" << oendl;
92 return; 97 return;
93 } 98 }
94 99
95 100
96 #ifdef Q_WS_WIN 101 #ifdef Q_WS_WIN
97 QDir dir; 102 QDir dir;
98 QFile backup = baseFile + "~"; 103 QFile backup = baseFile + "~";
99 dir.rename( baseFile, backup ); 104 dir.rename( baseFile, backup );
100 dir.rename( (baseFile + ".new"), baseFile ); 105 dir.rename( (baseFile + ".new"), baseFile );
101 dir.remove( backup ); 106 dir.remove( backup );
102#else 107#else
103 QString cmd = "mv "; 108 QString cmd = "mv ";
104 cmd += rdiffNewFile; 109 cmd += rdiffNewFile;
105 cmd += " " + baseFile; 110 cmd += " " + baseFile;
106 system( cmd.latin1() ); 111 system( cmd.latin1() );
107#endif 112#endif
108 } 113 }
109 114
110} 115}