Moved UICallback and ScopedCallback to Utils

FossilOrigin-Name: 717fb7a390f81af33ad40913960a30ff9c1c7a75
This commit is contained in:
kostas
2015-04-30 11:43:31 +00:00
parent 9dff9370ce
commit dbfc4f10da
8 changed files with 47 additions and 54 deletions

View File

@ -14,29 +14,7 @@ static const unsigned char UTF8_BOM[] = { 0xEF, 0xBB, 0xBF };
// 19: [5c46757d4b9765] on 2012-04-22 04:41:15
static const QRegExp REGEX_STASH("\\s*(\\d+):\\s+\\[(.*)\\] on (\\d+)-(\\d+)-(\\d+) (\\d+):(\\d+):(\\d+)", Qt::CaseInsensitive);
#define FOSSIL_CHECKOUT1 "_FOSSIL_"
#define FOSSIL_CHECKOUT2 ".fslckout"
#define FOSSIL_EXT "fossil"
///////////////////////////////////////////////////////////////////////////////
class ScopedFossilStatus
{
public:
ScopedFossilStatus(Bridge::UICallback *callback, const QString &text) : uiCallback(callback)
{
uiCallback->beginProcess(text);
}
~ScopedFossilStatus()
{
uiCallback->endProcess();
}
private:
Bridge::UICallback *uiCallback;
};
//------------------------------------------------------------------------------
RepoStatus Bridge::getRepoStatus()
{
QStringList res;
@ -499,7 +477,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi
QString status_msg = QObject::tr("Running Fossil");
if(args.length() > 0)
status_msg = QString("Fossil %0").arg(args[0].toCaseFolded());
ScopedFossilStatus status(uiCallback, status_msg);
ScopedStatus status(uiCallback, status_msg);
// Generate args file
const QStringList *final_args = &args;

View File

@ -5,7 +5,7 @@ class QStringList;
#include <QString>
#include <QObject>
#include <QProcess>
#include <QMessageBox>
#include "Utils.h"
typedef QMap<QString, QString> stashmap_t;
@ -30,17 +30,6 @@ enum RepoStatus
class Bridge
{
public:
class UICallback
{
public:
virtual void logText(const QString &text, bool isHTML)=0;
virtual void beginProcess(const QString &text)=0;
virtual void updateProcess(const QString &text)=0;
virtual void endProcess()=0;
virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)=0;
};
Bridge()
: operationAborted(false)
, uiCallback(0)

View File

@ -116,7 +116,7 @@ private slots:
void on_tableView_customContextMenuRequested(const QPoint &pos);
private:
class MainWinUICallback : public Bridge::UICallback
class MainWinUICallback : public UICallback
{
public:
MainWinUICallback() : mainWindow(0)

View File

@ -18,5 +18,32 @@ QStringList QuotePaths(const QStringList &paths);
bool ShowExplorerMenu(HWND hwnd, const QString &path, const QPoint &qpoint);
#endif
class UICallback
{
public:
virtual void logText(const QString &text, bool isHTML)=0;
virtual void beginProcess(const QString &text)=0;
virtual void updateProcess(const QString &text)=0;
virtual void endProcess()=0;
virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)=0;
};
class ScopedStatus
{
public:
ScopedStatus(UICallback *callback, const QString &text) : uiCallback(callback)
{
uiCallback->beginProcess(text);
}
~ScopedStatus()
{
uiCallback->endProcess();
}
private:
UICallback *uiCallback;
};
#endif // UTILS_H

View File

@ -20,7 +20,7 @@ void Workspace::clearState()
}
//------------------------------------------------------------------------------
bool Workspace::scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool &abort, Bridge::UICallback &uiCallback)
bool Workspace::scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool &abort, UICallback &uiCallback)
{
QDir dir(dirPath);
@ -53,7 +53,7 @@ bool Workspace::scanDirectory(QFileInfoList &entries, const QString& dirPath, co
}
//------------------------------------------------------------------------------
void Workspace::scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QString &ignoreGlob, Bridge::UICallback &uiCallback, bool &operationAborted)
void Workspace::scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QString &ignoreGlob, UICallback &uiCallback, bool &operationAborted)
{
// Scan all workspace files
QFileInfoList all_files;

View File

@ -6,11 +6,10 @@
#include <QDir>
#include <QSet>
#include <QMap>
#include "Bridge.h"
//////////////////////////////////////////////////////////////////////////
// RepoFile
// WorkspaceFile
//////////////////////////////////////////////////////////////////////////
struct WorkspaceFile
{
@ -111,8 +110,8 @@ public:
Bridge & fossil() { return bridge; }
const Bridge & fossil() const { return bridge; }
static bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool& abort, Bridge::UICallback &uiCallback);
void scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QString &ignoreGlob, Bridge::UICallback &uiCallback, bool &operationAborted);
static bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool& abort, UICallback &uiCallback);
void scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QString &ignoreGlob, UICallback &uiCallback, bool &operationAborted);
QStandardItemModel &getFileModel() { return repoFileModel; }
QStandardItemModel &getDirModel() { return repoDirModel; }