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.
234 lines
5.5 KiB
234 lines
5.5 KiB
/*********
|
|
*
|
|
* This file is part of BibleTime's source code, http://www.bibletime.info/.
|
|
*
|
|
* Copyright 1999-2006 by the BibleTime developers.
|
|
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
|
|
*
|
|
**********/
|
|
|
|
|
|
|
|
#ifndef CMAININDEX_H
|
|
#define CMAININDEX_H
|
|
|
|
//BibleTime includes
|
|
#include "cindexitem.h"
|
|
|
|
#include "backend/cswordmoduleinfo.h"
|
|
#include "frontend/displaywindow/cdisplaywindow.h"
|
|
|
|
#include "util/cpointers.h"
|
|
|
|
//TQt includes
|
|
#include <tqwidget.h>
|
|
#include <tqtimer.h>
|
|
#include <tqtooltip.h>
|
|
|
|
//KDE includes
|
|
#include <tdeaction.h>
|
|
#include <tdelistview.h>
|
|
|
|
class CSearchDialog;
|
|
|
|
/** The class which manages all bookmarks and modules. The modules are put into own, fixed subfolders sorted by language.
|
|
* @author The BibleTime team
|
|
*/
|
|
class CMainIndex : public TDEListView {
|
|
Q_OBJECT
|
|
|
|
|
|
class ToolTip : public TQToolTip {
|
|
public:
|
|
ToolTip(CMainIndex* parent);
|
|
virtual ~ToolTip() {}
|
|
/**
|
|
* Displays a tooltip for position p using the getToolTip() function of CGroupManagerItem
|
|
*/
|
|
virtual void maybeTip( const TQPoint &pos);
|
|
|
|
private:
|
|
CMainIndex* m_mainIndex;
|
|
};
|
|
|
|
public:
|
|
CMainIndex(TQWidget *parent);
|
|
virtual ~CMainIndex();
|
|
|
|
void initTree();
|
|
/**
|
|
* Opens the searchdialog using the given modules using the given search text.
|
|
*/
|
|
void emitModulesChosen( ListCSwordModuleInfo modules, TQString key );
|
|
/**
|
|
* Saves the bookmarks to disk
|
|
*/
|
|
void saveBookmarks();
|
|
/**
|
|
* Reloads the main index's Sword dependend things like modules
|
|
*/
|
|
void reloadSword();
|
|
|
|
public slots:
|
|
/**
|
|
* Opens the searchdialog for the selected modules.
|
|
*/
|
|
void searchInModules();
|
|
|
|
protected: // Protected methods
|
|
/**
|
|
* Reimplementation. Adds the given group to the tree.
|
|
*/
|
|
virtual void addGroup( const CItemBase::Type type, const TQString language);
|
|
/**
|
|
* Initialize the SIGNAL<->TQT_SLOT connections
|
|
*/
|
|
void initConnections();
|
|
/**
|
|
* Reimplementation. Returns the drag object for the current selection.
|
|
*/
|
|
virtual TQDragObject* dragObject();
|
|
/**
|
|
* Reimplementation from TDEListView. Returns true if the drag is acceptable for the listview.
|
|
*/
|
|
virtual bool acceptDrag( TQDropEvent* event ) const;
|
|
/**
|
|
* Returns the correct TDEAction object for the given type of action.
|
|
*/
|
|
TDEAction* const action( const CItemBase::MenuAction type ) const;
|
|
/**
|
|
* Reimplementation. Takes care of movable items.
|
|
*/
|
|
virtual void startDrag();
|
|
/**
|
|
* Reimplementation to support the items dragEnter and dragLeave functions.
|
|
*/
|
|
virtual void contentsDragMoveEvent( TQDragMoveEvent* event );
|
|
/**
|
|
* Reimplementation.
|
|
*/
|
|
virtual void contentsDragLeaveEvent( TQDragLeaveEvent* e );
|
|
TQRect drawItemHighlighter(TQPainter* painter, TQListViewItem * item );
|
|
/** Read settings like open groups or scrollbar position and restore them
|
|
*/
|
|
void readSettings();
|
|
/** Save settings like roups close/open status to the settings file.
|
|
*/
|
|
void saveSettings();
|
|
/** Reimplementation.
|
|
*/
|
|
virtual void polish();
|
|
|
|
protected slots: // Protected slots
|
|
/**
|
|
* Is called when an item was clicked/double clicked.
|
|
*/
|
|
void slotExecuted( TQListViewItem* );
|
|
void dropped( TQDropEvent*, TQListViewItem*, TQListViewItem*);
|
|
/**
|
|
* Shows the context menu at the given position.
|
|
*/
|
|
void contextMenu(TDEListView*, TQListViewItem*, const TQPoint&);
|
|
/**
|
|
* Adds a new subfolder to the current item.
|
|
*/
|
|
void createNewFolder();
|
|
/**
|
|
* Opens a dialog to change the current folder.
|
|
*/
|
|
void changeFolder();
|
|
/**
|
|
* Exports the bookmarks being in the selected folder.
|
|
*/
|
|
void exportBookmarks();
|
|
/**
|
|
* Changes the current bookmark.
|
|
*/
|
|
void changeBookmark();
|
|
/**
|
|
* Import bookmarks from a file and add them to the selected folder.
|
|
*/
|
|
void importBookmarks();
|
|
/**
|
|
* Deletes the selected entries.
|
|
*/
|
|
void deleteEntries();
|
|
/**
|
|
* Prints the selected bookmarks.
|
|
*/
|
|
void printBookmarks();
|
|
/**
|
|
* Shows information about the current module.
|
|
*/
|
|
void aboutModule();
|
|
/**
|
|
* Unlocks the current module.
|
|
*/
|
|
void unlockModule();
|
|
void autoOpenTimeout();
|
|
/**
|
|
* Is called when items should be moved.
|
|
*/
|
|
void moved( TQPtrList<TQListViewItem>& items, TQPtrList<TQListViewItem>& afterFirst, TQPtrList<TQListViewItem>& afterNow);
|
|
/**
|
|
* Opens a plain text editor window to edit the modules content.
|
|
*/
|
|
void editModulePlain();
|
|
/**
|
|
* Opens an HTML editor window to edit the modules content.
|
|
*/
|
|
void editModuleHTML();
|
|
|
|
private:
|
|
CSearchDialog* m_searchDialog;
|
|
ToolTip* m_toolTip;
|
|
bool m_itemsMovable;
|
|
TQListViewItem* m_autoOpenFolder;
|
|
TQTimer m_autoOpenTimer;
|
|
|
|
/**
|
|
* Initializes the view.
|
|
*/
|
|
void initView();
|
|
/**
|
|
* Returns true if more than one netry is supported by this action type.
|
|
* Returns false for actions which support only one entry, e.g. about module etc.
|
|
*/
|
|
const bool isMultiAction( const CItemBase::MenuAction type ) const;
|
|
|
|
struct Actions {
|
|
TDEAction* newFolder;
|
|
TDEAction* changeFolder;
|
|
|
|
TDEAction* changeBookmark;
|
|
TDEAction* importBookmarks;
|
|
TDEAction* exportBookmarks;
|
|
TDEAction* printBookmarks;
|
|
|
|
TDEAction* deleteEntries;
|
|
|
|
TDEActionMenu* editModuleMenu;
|
|
TDEAction* editModulePlain;
|
|
TDEAction* editModuleHTML;
|
|
|
|
TDEAction* searchInModules;
|
|
TDEAction* unlockModule;
|
|
TDEAction* aboutModule;
|
|
}
|
|
m_actions;
|
|
TDEPopupMenu* m_popup;
|
|
|
|
signals:
|
|
/**
|
|
* Is emitted when a module should be opened,
|
|
*/
|
|
void createReadDisplayWindow( ListCSwordModuleInfo, const TQString& );
|
|
/**
|
|
* Is emitted when a write window should be created.
|
|
*/
|
|
void createWriteDisplayWindow( CSwordModuleInfo*, const TQString&, const CDisplayWindow::WriteWindowType& );
|
|
void signalSwordSetupChanged();
|
|
};
|
|
|
|
#endif
|