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.
tdenetwork/kopete/plugins/history/historydialog.h

148 lines
3.7 KiB

/*
kopetehistorydialog.h - Kopete History Dialog
Copyright (c) 2002 by Richard Stellingwerff <remenic@linuxfromscratch.org>
Copyright (c) 2004 by Stefan Gehn <metz AT gehn.net>
Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>
*************************************************************************
* *
* 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. *
* *
*************************************************************************
*/
#ifndef _HISTORYDIALOG_H
#define _HISTORYDIALOG_H
#include <tqfile.h>
#include <tqstringlist.h>
#include <kdialogbase.h>
#include <klistview.h>
#include "kopetemessage.h"
class HistoryViewer;
//class HistoryWidget;
namespace Kopete { class MetaContact; }
namespace Kopete { class XSLT; }
class HistoryLogger;
class KHTMLView;
class KHTMLPart;
class KURL;
namespace KParts { struct URLArgs; class Part; }
class KListViewDateItem;
class DMPair
{
public:
DMPair() {md = TQDate(0, 0, 0); mc = 0; }
DMPair(TQDate d, Kopete::MetaContact *c) { md = d; mc =c; }
TQDate date() const { return md; }
Kopete::MetaContact* metaContact() const { return mc; }
bool operator==(const DMPair p1) const { return p1.date() == this->date() && p1.metaContact() == this->metaContact(); }
private:
TQDate md;
Kopete::MetaContact *mc;
};
/**
* @author Richard Stellingwerff <remenic@linuxfromscratch.org>
* @author Stefan Gehn <metz AT gehn.net>
*/
class HistoryDialog : public KDialogBase
{
Q_OBJECT
TQ_OBJECT
public:
HistoryDialog(Kopete::MetaContact *mc, TQWidget* tqparent=0,
const char* name="HistoryDialog");
~HistoryDialog();
/**
* Calls init(Kopete::Contact *c) for each subcontact of the metacontact
*/
signals:
void closing();
private slots:
void slotOpenURLRequest(const KURL &url, const KParts::URLArgs &/*args*/);
// Called when a date is selected in the treeview
void dateSelected(TQListViewItem *);
void slotSearch();
// Reinitialise search
void slotSearchErase();
void slotSearchTextChanged(const TQString& txt); // To enable/disable search button
void slotContactChanged(int index);
void slotFilterChanged(int index);
void init();
void slotLoadDays();
void slotRightClick(const TQString &url, const TQPoint &point);
void slotCopy();
void slotCopyURL();
private:
enum Disabled { Prev=1, Next=2 };
void refreshEnabled( /*Disabled*/ uint disabled );
void initProgressBar(const TQString& text, int nbSteps);
void doneProgressBar();
void init(Kopete::MetaContact *mc);
void init(Kopete::Contact *c);
/**
* Show the messages in the HTML View
*/
void setMessages(TQValueList<Kopete::Message> m);
void listViewShowElements(bool s);
/**
* Search if @param item already has @param text child
*/
bool hasChild(KListViewItem* item, int month);
/**
* We show history dialog to look at the log for a metacontact. Here is this metacontact.
*/
Kopete::MetaContact *mMetaContact;
TQPtrList<Kopete::MetaContact> mMetaContactList;
// History View
KHTMLView *mHtmlView;
KHTMLPart *mHtmlPart;
HistoryViewer *mMainWidget;
Kopete::XSLT *mXsltParser;
struct Init
{
TQValueList<DMPair> dateMCList; // mc for MetaContact
} mInit;
bool mSearching;
KAction *mCopyAct;
KAction *mCopyURLAct;
TQString mURL;
};
#endif