Bridge no longer needs depends on the UI. All interaction occurs via the callback
More cleanups FossilOrigin-Name: 3d1e269fee5acd4b65025024f701319c3e993e97
This commit is contained in:
@ -4,7 +4,6 @@
|
||||
#include <LoggedProcess.h>
|
||||
#include <QTextCodec>
|
||||
#include <QDebug>
|
||||
#include <QMessageBox>
|
||||
#include <QDir>
|
||||
#include <QTemporaryFile>
|
||||
#include <QUrl>
|
||||
@ -529,7 +528,10 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi
|
||||
final_args = &run_args;
|
||||
|
||||
// Create fossil process
|
||||
LoggedProcess process(parentWidget);
|
||||
// FIXME: when we are sure this works delete this
|
||||
// LoggedProcess process(parentWidget*/);
|
||||
LoggedProcess process(0);
|
||||
|
||||
process.setWorkingDirectory(wkdir);
|
||||
|
||||
process.start(fossil, *final_args);
|
||||
@ -557,6 +559,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi
|
||||
QTextDecoder *decoder = codec->makeDecoder();
|
||||
Q_ASSERT(decoder);
|
||||
|
||||
Q_ASSERT(uiCallback);
|
||||
#ifdef QT_DEBUG
|
||||
size_t input_index = 0;
|
||||
#endif
|
||||
@ -673,7 +676,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi
|
||||
if(have_acyn_query)
|
||||
buttons |= QMessageBox::Apply;
|
||||
|
||||
QMessageBox::StandardButton res = DialogQuery(parentWidget, "Fossil", query, buttons);
|
||||
QMessageBox::StandardButton res = uiCallback->Query("Fossil", query, buttons);
|
||||
if(res==QMessageBox::Yes)
|
||||
{
|
||||
process.write(ans_yes.toLatin1());
|
||||
@ -700,7 +703,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi
|
||||
{
|
||||
log(last_line);
|
||||
QString query = ParseFossilQuery(last_line);
|
||||
QMessageBox::StandardButton res = DialogQuery(parentWidget, "Fossil", query);
|
||||
QMessageBox::StandardButton res = uiCallback->Query("Fossil", query, QMessageBox::Yes|QMessageBox::No);
|
||||
|
||||
if(res==QMessageBox::Yes)
|
||||
{
|
||||
@ -719,7 +722,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi
|
||||
{
|
||||
log(last_line);
|
||||
QString query = ParseFossilQuery(last_line);
|
||||
QMessageBox::StandardButton res = DialogQuery(parentWidget, "Fossil", query, QMessageBox::YesToAll|QMessageBox::No);
|
||||
QMessageBox::StandardButton res = uiCallback->Query("Fossil", query, QMessageBox::YesToAll|QMessageBox::No);
|
||||
if(res==QMessageBox::YesAll)
|
||||
{
|
||||
process.write(ans_always.toLatin1());
|
||||
@ -802,7 +805,9 @@ bool Bridge::startUI(const QString &httpPort)
|
||||
return true;
|
||||
}
|
||||
|
||||
fossilUI.setParent(parentWidget);
|
||||
// FIXME: when we are sure this works delete this
|
||||
//fossilUI.setParent(parentWidget);
|
||||
|
||||
fossilUI.setProcessChannelMode(QProcess::MergedChannels);
|
||||
fossilUI.setWorkingDirectory(getCurrentWorkspace());
|
||||
|
||||
|
12
src/Bridge.h
12
src/Bridge.h
@ -5,6 +5,7 @@ class QStringList;
|
||||
#include <QString>
|
||||
#include <QObject>
|
||||
#include <QProcess>
|
||||
#include <QMessageBox>
|
||||
|
||||
typedef QMap<QString, QString> stashmap_t;
|
||||
|
||||
@ -35,22 +36,20 @@ public:
|
||||
virtual void logText(const QString &text, bool isHTML)=0;
|
||||
virtual void beginProcess(const QString &text)=0;
|
||||
virtual void endProcess()=0;
|
||||
virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)=0;
|
||||
};
|
||||
|
||||
|
||||
Bridge()
|
||||
: QObject(0)
|
||||
, parentWidget(0)
|
||||
, abortOperation(false)
|
||||
, uiCallback(0)
|
||||
{
|
||||
}
|
||||
|
||||
void Init(QWidget *parent, UICallback *callback, const QString &fossPath, const QString &workspace)
|
||||
void Init(UICallback *callback, const QString &fossPath, const QString &workspace)
|
||||
{
|
||||
parentWidget = parent;
|
||||
uiCallback = callback;
|
||||
|
||||
fossilPath = fossPath;
|
||||
currentWorkspace = workspace;
|
||||
}
|
||||
@ -129,12 +128,9 @@ private:
|
||||
uiCallback->logText(text, isHTML);
|
||||
}
|
||||
|
||||
QString getFossilPath();
|
||||
|
||||
QString getFossilPath();
|
||||
|
||||
QWidget *parentWidget; // fixme
|
||||
bool abortOperation; // FIXME: No GUI for it yet
|
||||
|
||||
UICallback *uiCallback;
|
||||
QString currentWorkspace;
|
||||
QString fossilPath; // The value from the settings
|
||||
|
@ -190,7 +190,7 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP
|
||||
|
||||
uiCallback.init(this);
|
||||
// Need to be before applySettings which sets the last workspace
|
||||
bridge.Init(this, &uiCallback, "", "");
|
||||
bridge.Init(&uiCallback, "", "");
|
||||
|
||||
applySettings();
|
||||
|
||||
@ -577,8 +577,8 @@ bool MainWindow::refresh()
|
||||
setStatus("");
|
||||
enableActions(true);
|
||||
|
||||
if(!getProjectName().isEmpty())
|
||||
title += " - " + getProjectName();
|
||||
if(!bridge.getProjectName().isEmpty())
|
||||
title += " - " + bridge.getProjectName();
|
||||
|
||||
setWindowTitle(title);
|
||||
return true;
|
||||
@ -635,7 +635,7 @@ void MainWindow::scanWorkspace()
|
||||
QString fullpath = it->absoluteFilePath();
|
||||
|
||||
// Skip fossil files
|
||||
if(filename == FOSSIL_CHECKOUT1 || filename == FOSSIL_CHECKOUT2 || (!getRepositoryFile().isEmpty() && QFileInfo(fullpath) == QFileInfo(getRepositoryFile())))
|
||||
if(filename == FOSSIL_CHECKOUT1 || filename == FOSSIL_CHECKOUT2 || (!bridge.getRepositoryFile().isEmpty() && QFileInfo(fullpath) == QFileInfo(bridge.getRepositoryFile())))
|
||||
continue;
|
||||
|
||||
RepoFile *rf = new RepoFile(*it, RepoFile::TYPE_UNKNOWN, wkdir);
|
||||
@ -777,7 +777,7 @@ void MainWindow::updateDirView()
|
||||
header << tr("Folders");
|
||||
repoDirModel.setHorizontalHeaderLabels(header);
|
||||
|
||||
QStandardItem *root = new QStandardItem(QIcon(":icons/icons/My Documents-01.png"), getProjectName());
|
||||
QStandardItem *root = new QStandardItem(QIcon(":icons/icons/My Documents-01.png"), bridge.getProjectName());
|
||||
root->setData(""); // Empty Path
|
||||
root->setEditable(false);
|
||||
|
||||
@ -2189,3 +2189,9 @@ void MainWindow::MainWinUICallback::endProcess()
|
||||
mainWindow->ui->statusBar->clearMessage();
|
||||
mainWindow->progressBar->setHidden(true);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
QMessageBox::StandardButton MainWindow::MainWinUICallback::Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)
|
||||
{
|
||||
return DialogQuery(mainWindow, title, query, buttons);
|
||||
}
|
||||
|
@ -230,6 +230,8 @@ private:
|
||||
virtual void logText(const QString& text, bool isHTML);
|
||||
virtual void beginProcess(const QString& text);
|
||||
virtual void endProcess();
|
||||
virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons);
|
||||
|
||||
|
||||
private:
|
||||
class MainWindow *mainWindow;
|
||||
@ -242,7 +244,6 @@ private:
|
||||
MAX_RECENT=5
|
||||
};
|
||||
|
||||
|
||||
Ui::MainWindow *ui;
|
||||
QStandardItemModel repoFileModel;
|
||||
QStandardItemModel repoDirModel;
|
||||
@ -258,10 +259,6 @@ private:
|
||||
|
||||
MainWinUICallback uiCallback;
|
||||
Bridge bridge;
|
||||
const QString & getProjectName() const { return bridge.getProjectName(); }
|
||||
const QString & getRepositoryFile() const { return bridge.getRepositoryFile(); }
|
||||
void setRepositoryFile(const QString &filename) { bridge.setRepositoryFile(filename); }
|
||||
|
||||
|
||||
ViewMode viewMode;
|
||||
stringset_t selectedDirs; // The directory selected in the tree
|
||||
|
Reference in New Issue
Block a user