Skip to content

Commit

Permalink
Merge branch 'console'
Browse files Browse the repository at this point in the history
  • Loading branch information
uglide committed Oct 14, 2013
2 parents ecca35c + f3e864e commit 0f231c6
Show file tree
Hide file tree
Showing 38 changed files with 1,172 additions and 578 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ before_script:
script:
- qmake -qt=qt5 -v
- qmake -qt=qt5
- make clean
- make -s
- cd ./../tests/
- qmake
- make clean
- make -s
- ./../bin/tests/tests -platform minimal -txt
services:
Expand Down
31 changes: 31 additions & 0 deletions redis-desktop-manager/forms/serverInfoViewTab.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>serverInfoViewTab</class>
<widget class="QWidget" name="serverInfoViewTab">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>417</width>
<height>309</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="serverName">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QListView" name="serverInfoView"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
Binary file not shown.
2 changes: 1 addition & 1 deletion redis-desktop-manager/include/connection.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class connection : public QDialog

private:
Ui::connectionDialog ui;
Main * mainForm;
MainWin * mainForm;
RedisServerItem * server;

bool inEditMode;
Expand Down
15 changes: 12 additions & 3 deletions redis-desktop-manager/include/demo.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,26 @@
class RedisKeyItem;
class Updater;

class Main : public QMainWindow
class MainWin : public QMainWindow
{
Q_OBJECT

public:
RedisConnectionsManager * connections;

Main(QWidget *parent = 0);
~Main();
MainWin(QWidget *parent = 0);
~MainWin();
private:
bool loadingInProgress;
Ui::demoClass ui;
Updater * updater;

void loadKeyTab(RedisKeyItem *);
void addTab(QString&, QWidget*);

/** @return >=0 if exist **/
int getTabIndex(QString&);

QString getConfigPath(const QString&);

void initFormButtons();
Expand All @@ -36,6 +41,8 @@ class Main : public QMainWindow
void initUpdater();
void initFilter();

QStandardItem * getSelectedItemInConnectionsTree();

private slots:
void OnAddConnectionClick();
void OnConnectionTreeClick(const QModelIndex & index);
Expand All @@ -48,6 +55,8 @@ class Main : public QMainWindow
void OnImportConnectionsClick();
void OnSetFilter();
void OnClearFilter();
void OnServerInfoOpen();
void OnConsoleOpen();
};

#endif // DEMO_H
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class RedisServerItem : public QStandardItem
RedisServerItem(RedisConnectionAbstract * c);

bool loadDatabases();
QStringList getInfo();

void reload();
void unload();
Expand Down
11 changes: 11 additions & 0 deletions redis-desktop-manager/include/redis/Command.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

#include <QtCore>

class Command
{
public:
/** @see http://redis.io/topics/protocol for more info **/
static QString getFormatted(QString command);
};

22 changes: 1 addition & 21 deletions redis-desktop-manager/include/redis/RedisConnectionAbstract.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,9 @@ class RedisConnectionAbstract
void selectDb(int dbIndex);

QStringList getKeys(QString pattern = "*");

protected:
bool connected;

enum ResponseType
{
Status, Error, Integer, Bulk, MultiBulk, Unknown
};

/** @see http://redis.io/topics/protocol for more info **/
QString prepareCommand(QString command);

QVariant parseResponse(QString response);

ResponseType getResponseType(QString r);

QString getStringResponse(QString response);

bool isFullResponseRecieved(QString r);
bool isIntReplyValid(QString r);
bool isBulkReplyValid(QString r);
bool isMultiBulkReplyValid(QString r);
bool waitForData(int ms);

int getSizeOfBulkReply(QString mb);
};

Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class RedisConnectionConfig
static const int executeTimeout = 30000;

RedisConnectionConfig(const QString & host, const QString & name = "", const int port = DEFAULT_REDIS_PORT)
: host(host), port(port), name(name), sshPort(DEFAULT_SSH_PORT)
: name(name), host(host), port(port), sshPort(DEFAULT_SSH_PORT)
{};

RedisConnectionConfig & operator = (RedisConnectionConfig & other)
Expand Down
4 changes: 2 additions & 2 deletions redis-desktop-manager/include/redis/RedisConnectionOverSsh.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ class RedisConnectionOverSsh : public QObject, public RedisConnectionAbstract
QTimer syncTimer;
bool socketConnected;

bool waitForData(int ms);

protected slots:
void OnSshConnectionError(QxtSshClient::Error);
void OnSshConnected();
void OnSocketReadyRead();
void OnAuthRequired(QList<QxtSshClient::AuthenticationMethod>);

};

53 changes: 53 additions & 0 deletions redis-desktop-manager/include/redis/Response.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#pragma once

#include <QtCore>

class TestResponse;

class Response
{
friend class TestResponse;

public:
Response();
Response(QString &);
~Response(void);

QVariant getValue();
bool isValid();

void setSource(QString&);
QString source();
void appendToSource(QString&);
void appendToSource(QByteArray&);

private:

QString responseString;

//type
enum ResponseType
{
Status, Error, Integer, Bulk, MultiBulk, Unknown
};

ResponseType getResponseType(QString);
ResponseType getResponseType(const QChar);

//parsers
QVariant parseBulk(QString response);
QStringList parseMultiBulk(QString response);
QString getStringResponse(QString response);

int getSizeOfBulkReply(QString&, int);

//validations
bool isReplyValid(QString&);

/** checks general validation rules **/
bool isReplyGeneralyValid(QString& );
bool isIntReplyValid(QString&);
bool isBulkReplyValid(QString&);
bool isMultiBulkReplyValid(QString&);
};

43 changes: 43 additions & 0 deletions redis-desktop-manager/include/widgets/consoleTab.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#pragma once

/**
Based on Console Qt widget from RedisConsole
https://github.com/ptrofimov/RedisConsole
author Petr Trofimov ([email protected])
**/

#include <QPlainTextEdit>

class RedisConnectionConfig;

class consoleTab: public QPlainTextEdit
{
Q_OBJECT

public:
consoleTab(RedisConnectionConfig &);
~consoleTab(void);
void output(QString);
void scrollDown();

protected:
void keyPressEvent(QKeyEvent *);
void mousePressEvent(QMouseEvent *);
void mouseDoubleClickEvent(QMouseEvent *);
void contextMenuEvent(QContextMenuEvent *);
private:
QString prompt;
bool isLocked;
QStringList *history;
int historyPos;

void onEnter();
void insertPrompt(bool insertNewBlock = true);
void historyAdd(QString);
void historyBack();
void historyForward();
signals:
void onCommand(QString);
void onChange(QString);
};

15 changes: 15 additions & 0 deletions redis-desktop-manager/include/widgets/serverInfoViewTab.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#pragma once

#include <QWidget>
#include "ui_serverInfoViewTab.h"

class serverInfoViewTab: public QWidget
{
Q_OBJECT
public:
serverInfoViewTab(QString, QStringList);

private:
Ui::serverInfoViewTab ui;
};

74 changes: 17 additions & 57 deletions redis-desktop-manager/redis-desktop-manager.pro
Original file line number Diff line number Diff line change
Expand Up @@ -15,59 +15,24 @@ CONFIG -= debug
CONFIG += c++11 release

SOURCES += \
source/main.cpp \
source/demo.cpp \
source/connection.cpp \
source/widgets/zsetViewTab.cpp \
source/widgets/stringViewTab.cpp \
source/widgets/listViewTab.cpp \
source/widgets/hashViewTab.cpp \
source/updater/Updater.cpp \
source/redis/RedisConnectionsManager.cpp \
source/redis/RedisConnectionOverSsh.cpp \
source/redis/RedisConnectionConfig.cpp \
source/redis/RedisConnectionAbstract.cpp \
source/redis/RedisConnection.cpp \
source/network/qxtsshtcpsocket.cpp \
source/network/qxtsshprocess.cpp \
source/network/qxtsshclient.cpp \
source/network/qxtsshchannel.cpp \
source/models/SortedSetKeyModel.cpp \
source/models/ListKeyModel.cpp \
source/models/HashKeyModel.cpp \
source/models/items/RedisServerItem.cpp \
source/models/items/RedisServerDbItem.cpp \
source/models/items/RedisKeyNamespace.cpp \
source/models/items/RedisKeyItem.cpp
$$PWD/source/main.cpp \
$$PWD/source/demo.cpp \
$$PWD/source/connection.cpp \
$$PWD/source/widgets/*.cpp \
$$PWD/source/updater/Updater.cpp \
$$PWD/source/redis/*.cpp \
$$PWD/source/network/*.cpp \
$$PWD/source/models/*.cpp \
$$PWD/source/models/items/*.cpp \

HEADERS += \
include/demo.h \
include/connection.h \
include/widgets/zsetViewTab.h \
include/widgets/stringViewTab.h \
include/widgets/listViewTab.h \
include/widgets/hashViewTab.h \
include/updater/Updater.h \
include/redis/RedisException.h \
include/redis/RedisConnectionsManager.h \
include/redis/RedisConnectionOverSsh.h \
include/redis/RedisConnectionConfig.h \
include/redis/RedisConnectionAbstract.h \
include/redis/RedisConnection.h \
include/network/qxtsshtcpsocket.h \
include/network/qxtsshprocess.h \
include/network/qxtsshclient_p.h \
include/network/qxtsshclient.h \
include/network/qxtsshchannel_p.h \
include/network/qxtsshchannel.h \
include/network/qxtnetwork.h \
include/models/SortedSetKeyModel.h \
include/models/ListKeyModel.h \
include/models/HashKeyModel.h \
include/models/items/RedisServerItem.h \
include/models/items/RedisServerDbItem.h \
include/models/items/RedisKeyNamespace.h \
include/models/items/RedisKeyItem.h
$$PWD/include/*.h \
$$PWD/include/widgets/*.h \
$$PWD/include/updater/Updater.h \
$$PWD/include/redis/*.h \
$$PWD/include/network/*.h \
$$PWD/include/models/*.h \
$$PWD/include/models/items/*.h \

release: DESTDIR = ./../bin/linux/release
debug: DESTDIR = ./../bin/linux/debug
Expand Down Expand Up @@ -124,12 +89,7 @@ INCLUDEPATH += $$PWD/source \
$$PWD/include/widgets \

FORMS += \
forms/zsetViewTab.ui \
forms/stringViewTab.ui \
forms/listViewTab.ui \
forms/hashViewTab.ui \
forms/demo.ui \
forms/connection.ui
$$PWD/forms/*.ui \

RESOURCES += \
Resources/demo.qrc
Expand Down
Binary file added redis-desktop-manager/redis-desktop-manager.rc
Binary file not shown.
Loading

0 comments on commit 0f231c6

Please sign in to comment.