Skip to content

Commit

Permalink
Various fixes for 4.2
Browse files Browse the repository at this point in the history
  • Loading branch information
bmcdorman committed Oct 13, 2013
1 parent e2fa630 commit dd855c4
Show file tree
Hide file tree
Showing 6 changed files with 171 additions and 165 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
add_definitions(-O3)

if(APPLE)
set(CMAKE_OSX_SYSROOT "${OSX_DEVELOPER_ROOT}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk")
message(${CMAKE_OSX_SYSROOT})
# set(CMAKE_OSX_SYSROOT "${OSX_DEVELOPER_ROOT}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk")
# message(${CMAKE_OSX_SYSROOT})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.7")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.7")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mmacosx-version-min=10.7")
Expand Down
8 changes: 2 additions & 6 deletions include/console_widget.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,8 @@ private slots:
void readStandardErr();

private:
int inputCharCount;
QTextCursor curCursorLoc;
QString cmdStr;
QStringList cmdHistory;
int histLocation;
QString tempCmd;
QString _current;
int _offset;
QProcess *m_process;
};

Expand Down
88 changes: 11 additions & 77 deletions src/console_widget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
#include <QDebug>

ConsoleWidget::ConsoleWidget(QWidget *parent)
: QTextEdit(parent), m_process(0)
: QTextEdit(parent)
, _offset(0)
, m_process(0)
{
cmdStr = "";
curCursorLoc = this->textCursor();
inputCharCount = 0;
histLocation = -1;
tempCmd = "";
setProcess(0);
}

Expand Down Expand Up @@ -39,77 +36,14 @@ QProcess *ConsoleWidget::process() const

void ConsoleWidget::keyPressEvent(QKeyEvent *event)
{
int key = event->key();
Qt::KeyboardModifiers modifiers = event->modifiers();
setTextCursor(curCursorLoc);

if(key == Qt::Key_Backspace) {
if(inputCharCount) {
--inputCharCount;
QTextEdit::keyPressEvent(event);
cmdStr.remove(inputCharCount, 1);
} else QApplication::beep();
} else if(key == Qt::Key_Delete) {
if(!curCursorLoc.atBlockEnd()) {
QTextEdit::keyPressEvent(event);
cmdStr.remove(inputCharCount, 1);
} else QApplication::beep();
} else if(key == Qt::Key_Return || key == Qt::Key_Enter) {
inputCharCount = 0;
} else if(key == Qt::Key_Left) {
if (inputCharCount) {
--inputCharCount;
QTextEdit::keyPressEvent(event);
} else QApplication::beep();
} else if(key == Qt::Key_Right) {
QTextCursor cursor = this->textCursor();
if(cursor.movePosition(QTextCursor::Right)) {
++inputCharCount;
this->setTextCursor(cursor);
} else QApplication::beep();
} else if(modifiers == Qt::ControlModifier && key == Qt::Key_C) emit abortRequested();
else if((modifiers == Qt::ControlModifier && key == Qt::Key_A) || key == Qt::Key_Home) {
inputCharCount = 0;
moveCursor(QTextCursor::StartOfLine);
} else if ((modifiers == Qt::ControlModifier && key == Qt::Key_E) || key == Qt::Key_End) {
inputCharCount = cmdStr.length();
moveCursor(QTextCursor::EndOfLine);
} else if (modifiers == Qt::ControlModifier && key == Qt::Key_K) {
moveCursor(QTextCursor::EndOfLine);
for(int i = inputCharCount; i < cmdStr.length(); ++i) {
QTextEdit::keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier));
}
cmdStr.remove(inputCharCount, cmdStr.length() - inputCharCount);
} else if (modifiers == Qt::ControlModifier && key == Qt::Key_U) {
for(int i = 0; i < inputCharCount; ++i) {
QTextEdit::keyPressEvent(new QKeyEvent(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier));
}
cmdStr.remove(0, inputCharCount);
inputCharCount = 0;
} else {
QString text = event->text();
for(int i = 0; i < text.length(); ++i) {
if (text.at(i).isPrint()) ++inputCharCount;
}
QTextEdit::keyPressEvent(event);
}

if((key == Qt::Key_Return || key == Qt::Key_Enter) && m_process) {
moveCursor(QTextCursor::End);
m_process->write(cmdStr.toAscii().data(), cmdStr.length());
m_process->write("\r\n", 2);
QTextEdit::keyPressEvent(event);
cmdHistory.push_back(cmdStr);
histLocation = -1;
cmdStr = "";
tempCmd = "";
} else {
QString input = event->text();
for(int i = 0; i < input.length(); ++i) {
if(input.at(i).isPrint()) cmdStr.insert(inputCharCount - 1, input.at(i));
}
}
curCursorLoc = textCursor();
QTextEdit::keyPressEvent(event);
if(event->modifiers() != Qt::NoModifier && event->modifiers() != Qt::ShiftModifier) return;
QString text = event->text();
// if(event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) text = "\n";

_current.insert(_current.size() + _offset, text);
m_process->write(_current.toAscii(), _current.length());
_current = QString();
}

void ConsoleWidget::readStandardOut()
Expand Down
4 changes: 2 additions & 2 deletions src/main_window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -265,8 +265,8 @@ void MainWindow::updateSettings()
QString contents = ui->console->toPlainText();
ui->console->clear();
ui->console->setTextColor(textColor);
ui->console->setCurrentFont(font);
ui->console->setFontPointSize(fontSize);
font.setPointSize(fontSize);
ui->console->setFont(font);
ui->console->setPlainText(contents);

settings.beginGroup(STORAGE);
Expand Down
6 changes: 3 additions & 3 deletions src/server_thread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ void ServerThread::run()
{
Packet p;
while(!m_stop) {
#ifdef Q_OS_WIN
#ifdef Q_OS_WIN
Sleep(1000);
#else
#else
sleep(1);
#endif
#endif
QThread::yieldCurrentThread();
if(!m_server->accept(3)) continue;
for(;;) {
Expand Down
Loading

0 comments on commit dd855c4

Please sign in to comment.