You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
3.9 KiB
143 lines
3.9 KiB
#ifndef _KPILOT_PILOTCOMPONENT_H
|
|
#define _KPILOT_PILOTCOMPONENT_H
|
|
/* pilotComponent.h KPilot
|
|
**
|
|
** Copyright (C) 1998-2001 by Dan Pilone
|
|
** Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
|
|
**
|
|
** See the .cpp file for an explanation of what this file is for.
|
|
*/
|
|
|
|
/*
|
|
** 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
|
|
*/
|
|
|
|
/**
|
|
* Base class for any module to KPilot
|
|
*/
|
|
#include <tqwidget.h>
|
|
|
|
struct CategoryAppInfo;
|
|
class TQComboBox;
|
|
class TQString;
|
|
|
|
class PilotComponent : public TQWidget
|
|
{
|
|
TQ_OBJECT
|
|
|
|
friend class KPilotInstaller;
|
|
|
|
public:
|
|
PilotComponent(TQWidget* parent,
|
|
const char *id,
|
|
const TQString& dbPath);
|
|
|
|
/**
|
|
* Called when the component is shown in kpilot. It should
|
|
* load the database and populate the widgets.
|
|
*/
|
|
virtual void showComponent() {}
|
|
/**
|
|
* Called when the component is hidden in kpilot. It should
|
|
* unload the databases and clean up to save memory. This method
|
|
* can be called even if the component is not visible.
|
|
* If there are some editing dlgs open, this needs to be deferred
|
|
* until they are all closed. Then, one can explicitly call hideComponent().
|
|
*/
|
|
virtual void hideComponent() {}
|
|
|
|
/**
|
|
* Set the shown variable to true or false, then call showComponent
|
|
* or hideComponent.
|
|
*/
|
|
void showKPilotComponent( bool toShow );
|
|
|
|
|
|
/**
|
|
* Get ready for a hotsync -- write any unflushed records
|
|
* to disk, close windows, whatever. Returns false if it
|
|
* is impossible to go into a sync now (due to open windows
|
|
* or strange state.).
|
|
*
|
|
* The default implementation returns true.
|
|
*
|
|
* If the function returns false, it can also put a string
|
|
* stating the reason why into @p s. This string will be
|
|
* displayed to the user:
|
|
* "Can't start HotSync. %1"
|
|
* where %1 is replaced by s.
|
|
*/
|
|
virtual bool preHotSync(TQString &s) ;
|
|
|
|
/**
|
|
* Reload data (possibly changed by the hotsync) etc. etc.
|
|
*/
|
|
virtual void postHotSync() { } ;
|
|
|
|
|
|
protected:
|
|
/**
|
|
* Look up the selected category from the combo box in the
|
|
* Pilot's register of categories. We need this functon because
|
|
* the combo box doesn't contain any reference to the category
|
|
* ID, and we need that ID to do anything with the Pilot.
|
|
*
|
|
* If AllIsUnfiled is true, then when the user selects the
|
|
* category "All" in the combo box (always the first category),
|
|
* Unfiled (0) is returned. Otherwise if the category "All"
|
|
* is selected -1 is returned. For all other categories
|
|
* selected, their ID is returned. If nothing is selected,
|
|
* behave as if "All" is selected.
|
|
*/
|
|
int findSelectedCategory(TQComboBox *,
|
|
CategoryAppInfo *,
|
|
bool AllIsUnfiled=false);
|
|
|
|
/**
|
|
* Populate the combo box with the categories found in
|
|
* the Pilot's application categories block. Erases
|
|
* combo box's contents first.
|
|
*
|
|
* Always includes the category "All" as the first
|
|
* entry in the combo box.
|
|
*
|
|
* If info is a NULL pointer, just put "All" in the combo box.
|
|
*/
|
|
void populateCategories(TQComboBox *,
|
|
CategoryAppInfo *info=0);
|
|
|
|
void setDBPath(const TQString &path) { fDBPath = path; } ;
|
|
const TQString& dbPath() const { return fDBPath; } ;
|
|
void markDBDirty(const TQString db);
|
|
|
|
public slots:
|
|
void slotShowComponent();
|
|
|
|
signals:
|
|
void showComponent(PilotComponent *);
|
|
|
|
private:
|
|
TQString fDBPath;
|
|
protected:
|
|
bool shown;
|
|
} ;
|
|
|
|
#endif
|