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.
121 lines
3.3 KiB
121 lines
3.3 KiB
/***************************************************************************
|
|
finddialog.h - K Desktop Planetarium
|
|
-------------------
|
|
begin : Wed Jul 4 2001
|
|
copyright : (C) 2001 by Jason Harris
|
|
email : jharris@30doradus.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 FINDDIALOG_H
|
|
#define FINDDIALOG_H
|
|
|
|
#include <kdialogbase.h>
|
|
|
|
class TQVBoxLayout;
|
|
class TQHBoxLayout;
|
|
class TQGridLayout;
|
|
class TQLabel;
|
|
class TQLineEdit;
|
|
class TQComboBox;
|
|
class TQListBox;
|
|
class TQListBoxItem;
|
|
//class TQStringList;
|
|
class SkyObjectNameListItem;
|
|
|
|
/**@class FindDialog
|
|
*Dialog window for finding SkyObjects by name. The dialog contains
|
|
*a TQListBox showing the list of named objects, a TQLineEdit for filtering
|
|
*the list by name, and a TQCombobox for filtering the list by object type.
|
|
*
|
|
*@short Find Object Dialog
|
|
*@author Jason Harris
|
|
*@version 1.0
|
|
*/
|
|
|
|
class FindDialog : public KDialogBase {
|
|
Q_OBJECT
|
|
TQ_OBJECT
|
|
|
|
public:
|
|
/**Constructor. Creates all widgets and packs them in TQLayouts. Connects
|
|
*Signals and Slots. Runs initObjectList().
|
|
*/
|
|
FindDialog( TQWidget* parent = 0 );
|
|
|
|
/**Destructor
|
|
*/
|
|
~FindDialog();
|
|
|
|
/**@return the currently-selected item from the listbox of named objects
|
|
*/
|
|
SkyObjectNameListItem * currentItem() const { return currentitem; }
|
|
|
|
public slots:
|
|
/**When Text is entered in the TQLineEdit, filter the List of objects
|
|
*so that only objects which start with the filter text are shown.
|
|
*/
|
|
void filter();
|
|
|
|
/**When the selection of the object type TQComboBox is changed, filter
|
|
*the List of objects so that only objects of the selected Type are shown.
|
|
*/
|
|
void filterByType();
|
|
|
|
/**Overloading the Standard KDialogBase slotOk() to show a "sorry" message
|
|
*box if no object is selected when the user presses Ok. The window is
|
|
*not closed in this case.
|
|
*/
|
|
void slotOk();
|
|
|
|
private slots:
|
|
/**Init object list after opening dialog.
|
|
*/
|
|
void init();
|
|
|
|
/**Set the selected item in the list to the item specified.
|
|
*/
|
|
void updateSelection (TQListBoxItem *);
|
|
|
|
/**Change current filter options.
|
|
*/
|
|
void setFilter( int f );
|
|
|
|
protected:
|
|
/**Process Keystrokes. The Up and Down arrow keys are used to select the
|
|
*Previous/Next item in the listbox of named objects.
|
|
*@param e The TQKeyEvent pointer
|
|
*/
|
|
void keyPressEvent( TQKeyEvent *e );
|
|
|
|
private:
|
|
/**
|
|
*Automatically select the first item in the list
|
|
*/
|
|
void setListItemEnabled();
|
|
|
|
TQVBoxLayout *vlay;
|
|
TQHBoxLayout *hlay;
|
|
TQListBox *SearchList;
|
|
TQLineEdit *SearchBox;
|
|
TQLabel *filterTypeLabel;
|
|
TQComboBox *filterType;
|
|
|
|
SkyObjectNameListItem *currentitem;
|
|
|
|
int Filter;
|
|
};
|
|
|
|
#endif
|