04/05/28 02:06 UA2tlmLv
内部の技術話が続いて申し訳ないんですが・・・
いまKitaThreadViewとKitaHTMLPartクラスの機能分割作業をしているところなん
ですが、ちょっと>>821で勘違いしていたことがあったので補足します。>>821では
アクションベースにすればシグナル管理クラスはいらないみたいな感じのことを書
きましたが、よく考えてみると例えばA→B→C→D→Eみたいな親子関係のクラスが
あるとき、AからEを操作するときはまあ良いんですが、EからAを操作するときは
やっぱりシグナル管理クラスがあると楽ですね。今回の例で言うと、KitaHTMLPartから
openURLRequestシグナルを出してKitaMainWindowのslotOpenURLRequestを呼ぶまで
何重もコネクトを繰り返すのが面倒だってことなんですが。と言うわけで、例えばこんな
感じのクラスを作れば良いのではないでしょうか。
class signalCollection : public QObject
{
Q_OBJECT
static signalCollection* m_instance;
public:
signalCollection(){};
~signalCollection(){};
static signalCollection* getInstance();
signals:
void openURLRequest( const KURL& url,const KParts::URLArgs &args = KParts::URLArgs());
};
signalCollection* signalCollection::m_instance = NULL;
signalCollection* signalCollection::getInstance(){
if(!m_instance) m_instance = new signalCollection();
return m_instance;
}