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.
161 lines
4.9 KiB
161 lines
4.9 KiB
/***************************************************************************
|
|
begin : Tue Nov 25 2003
|
|
copyright : (C) 2003 by Jeroen Wijnhout
|
|
email : Jeroen.Wijnhout@kdemail.net
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* 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 KILETOOLMANAGER_H
|
|
#define KILETOOLMANAGER_H
|
|
|
|
#include <tqobject.h>
|
|
#include <tqstringlist.h>
|
|
#include <tqptrqueue.h>
|
|
|
|
#include "kiletool.h"
|
|
|
|
class TQTimer;
|
|
class TQWidgetStack;
|
|
|
|
class TDEConfig;
|
|
class KTextEdit;
|
|
class TDEAction;
|
|
namespace KParts { class PartManager; }
|
|
|
|
class KileInfo;
|
|
namespace KileWidget { class LogMsg; class Output; }
|
|
|
|
namespace KileTool
|
|
{
|
|
class Factory;
|
|
|
|
class QueueItem
|
|
{
|
|
public:
|
|
QueueItem(Base *tool, const TQString & cfg = TQString(), bool block = false);
|
|
~QueueItem();
|
|
|
|
Base* tool() const { return m_tool; }
|
|
const TQString cfg() const { return m_cfg; }
|
|
bool shouldBlock() { return m_bBlock; }
|
|
|
|
private:
|
|
Base *m_tool;
|
|
TQString m_cfg;
|
|
bool m_bBlock;
|
|
};
|
|
|
|
class Queue : public TQPtrQueue<QueueItem>
|
|
{
|
|
public:
|
|
Base* tool() const;
|
|
const TQString cfg() const;
|
|
bool shouldBlock() const;
|
|
|
|
void enqueueNext(QueueItem *);
|
|
};
|
|
|
|
class Manager : public TQObject
|
|
{
|
|
TQ_OBJECT
|
|
|
|
|
|
public:
|
|
Manager(KileInfo *ki, TDEConfig *config, KileWidget::LogMsg *log, KileWidget::Output *output, KParts::PartManager *, TQWidgetStack *, TDEAction *, uint to);
|
|
~Manager();
|
|
|
|
public:
|
|
void initTool(Base*);
|
|
bool configure(Base*, const TQString & cfg = TQString());
|
|
bool retrieveEntryMap(const TQString & name, Config & map, bool usequeue = true, bool useproject = true, const TQString & cfg = TQString());
|
|
void saveEntryMap(const TQString & name, Config & map, bool usequeue = true, bool useproject = true);
|
|
TQString currentGroup(const TQString &name, bool usequeue = true, bool useproject = true);
|
|
|
|
void wantGUIState(const TQString &);
|
|
|
|
KParts::PartManager * partManager() { return m_pm; }
|
|
TQWidgetStack * widgetStack() { return m_stack; }
|
|
|
|
KileInfo * info() { return m_ki; }
|
|
TDEConfig * config() { return m_config; }
|
|
|
|
void setFactory(Factory* fac) { m_factory = fac; }
|
|
Factory* factory() { return m_factory; }
|
|
|
|
bool queryContinue(const TQString & question, const TQString & caption = TQString());
|
|
|
|
bool shouldBlock();
|
|
int lastResult() { return m_nLastResult; }
|
|
|
|
public slots:
|
|
void started(Base*);
|
|
void done(Base *, int);
|
|
|
|
int run(const TQString &, const TQString & = TQString(), bool insertAtTop = false, bool block = false);
|
|
int run(Base *, const TQString & = TQString(), bool insertAtTop = false, bool block = false);
|
|
|
|
int runNext(const TQString &, const TQString & = TQString(), bool block = false);
|
|
int runNext(Base *, const TQString & = TQString(), bool block = false);
|
|
|
|
int runBlocking(const TQString &, const TQString & = TQString(), bool = false);
|
|
int runNextBlocking(const TQString &, const TQString & = TQString());
|
|
|
|
void stop(); //should be a slot that stops the active tool and clears the queue
|
|
|
|
private slots:
|
|
int runNextInQueue();
|
|
void enableClear();
|
|
|
|
signals:
|
|
void requestGUIState(const TQString &);
|
|
void requestSaveAll(bool, bool);
|
|
void jumpToFirstError();
|
|
void toolStarted();
|
|
void previewDone();
|
|
|
|
private:
|
|
KileInfo *m_ki;
|
|
TDEConfig *m_config;
|
|
KileWidget::LogMsg *m_log;
|
|
KileWidget::Output *m_output;
|
|
KParts::PartManager *m_pm;
|
|
TQWidgetStack *m_stack;
|
|
TDEAction *m_stop;
|
|
Factory *m_factory;
|
|
Queue m_queue;
|
|
TQTimer *m_timer;
|
|
bool m_bClear;
|
|
int m_nLastResult;
|
|
uint m_nTimeout;
|
|
};
|
|
|
|
TQStringList toolList(TDEConfig *config, bool menuOnly = false);
|
|
TQStringList configNames(const TQString &tool, TDEConfig *config);
|
|
|
|
TQString configName(const TQString & tool, TDEConfig *);
|
|
void setConfigName(const TQString & tool, const TQString & name, TDEConfig *);
|
|
|
|
TQString groupFor(const TQString & tool, TDEConfig *);
|
|
TQString groupFor(const TQString & tool, const TQString & cfg = "Default" );
|
|
|
|
void extract(const TQString &str, TQString &tool, TQString &cfg);
|
|
TQString format(const TQString & tool, const TQString &cfg);
|
|
|
|
TQString menuFor(const TQString &tool, TDEConfig *config);
|
|
TQString iconFor(const TQString &tool, TDEConfig *config);
|
|
|
|
TQString categoryFor(const TQString &clss);
|
|
|
|
void setGUIOptions(const TQString &tool, const TQString &menu, const TQString &icon, TDEConfig *config);
|
|
}
|
|
|
|
#endif
|