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.
ksystemlog/ksystemlog/src/view.h

191 lines
4.4 KiB

/***************************************************************************
* Copyright (C) 2005 by Nicolas Ternisien *
* nicolas.ternisien@gmail.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; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef VIEW_H
#define VIEW_H
//TQt includes
#include <tqwidget.h>
#include <tqdatetime.h>
//KDE includes
#include <ktoolbarbutton.h>
#include <kicondialog.h>
#include <klistview.h>
//For compatibility with old versions of KDE
#include <tdeversion.h>
//The filter is activated only if KDE version >= 3.3
#if defined(TDE_MAKE_VERSION) && (TDE_VERSION >= TDE_MAKE_VERSION(3,3,0))
#include "logLineFilter.h"
#endif
#include <tdeconfig.h>
#include <ksystemlogiface.h>
#include <tdeparts/part.h>
#include "globals.h"
#include "logListItem.h"
#include "logManager.h"
#include "logViewColumn.h"
#include "logViewColumns.h"
class ViewToolTip;
/**
* This is the main view class for KSystemLog.
* This class is encapsulated in a LogManager, with a Reader (in a standard LogManager)
*
*
* @short Main view
* @author Nicolas Ternisien <nicolas.ternisien@gmail.com>
* @version 0.1
*/
class View : public TQWidget, public KSystemLogInterface {
Q_OBJECT
public:
/**
* Default constructor
*/
View(TQWidget *parent);
/**
* Destructor
*/
virtual ~View();
void clearLogList();
void addElement(TQStringList* entries, TQPixmap* icon=NULL);
void addElementAtEnd(TQStringList* entries, TQPixmap* icon=NULL);
void setColumns(LogViewColumns* list);
void setFirstItemSelected();
void setLastItemSelected();
void setLastItemVisible();
void setFirstItemVisible();
void toggleFilterBar();
LogListItem* getFirstSelectedItem();
LogListItem* getLastSelectedItem();
int getItemCount();
void setSortEnabled(bool enabled);
void setLogManager(LogManager* manager);
bool isTooltipEnabled();
TDEListView* getLogList();
void saveConfig();
/**
* Delete the "count" first items
*/
void deleteOldItems(int count);
/**
* Print this view to any medium -- paper or not
*/
void print(TQPainter *, int height, int width);
/**
* Method from DCOP Interface
*/
virtual void openURL(TQString url);
private:
void initLogList();
void initSearchFilter(TQWidget* filterBox);
signals:
/**
* Use this signal to change the content of the statusbar
*/
void changeStatusbar(const TQString& text);
/**
* Use this signal to change the content of the caption
*/
void changeCaption(const TQString& text);
private slots:
void slotOnURL(const TQString& url);
void slotSetTitle(const TQString& title);
void changeColumnFilter(int column);
void updateList();
void updateSearchFilter();
private:
LogViewColumns* columns;
ViewToolTip* toolTip;
bool firstLoad;
LogManager* logManager;
/**
* Central table
*/
TDEListView* table;
#if defined(TDE_MAKE_VERSION) && (TDE_VERSION >= TDE_MAKE_VERSION(3,3,0))
TQHBox* filterBar;
TDEToolBarButton* clearSearch;
/**
* Search line (inherits from TDEListViewSearchLine)
*/
LogLineFilter* search;
/**
* Filter of the column list
*/
TQComboBox* searchFilter;
#endif
};
#endif // VIEW_H