Skip to content

Commit

Permalink
KISS OSS Release
Browse files Browse the repository at this point in the history
  • Loading branch information
thelazyfox committed Jun 15, 2009
0 parents commit 95ce439
Show file tree
Hide file tree
Showing 327 changed files with 92,368 additions and 0 deletions.
339 changes: 339 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions config.pri
@@ -0,0 +1,17 @@

CONFIG -= debug release_and_debug
CONFIG += release

mac:CONFIG += x86 ppc
mac:CONFIG -= gnu-libiconv
unix:QMAKE_DEL_FILE=rm -rf

OBJECTS_DIR = build/obj
MOC_DIR = build/moc
UI_DIR = build/ui
RCC_DIR = build/rcc


QMAKE_DISTCLEAN += build/obj build/moc build/ui build/rcc build

INSTALL_BASE = deploy
18 changes: 18 additions & 0 deletions doc/ChangeLog.txt
@@ -0,0 +1,18 @@
KISS 1.9.0:
- CBC target was added

KISS 1.4.9:
- Fixed flipped axis problem
- Minor performance improvements on all platforms

KISS 1.4.8:
- Added better support for various versions of OpenGL

KISS 1.4.7:
- Fixed gcc.target file for linux
- Fixed srand
- Fixed fopen, now defaults to opening files with the same path as the program
- /** comments now colorize correctly
- Match case checkbox now behaves correctly
- Save as now adds .c extension on all platforms
- Font size increases now affect margin width
21 changes: 21 additions & 0 deletions doc/build.txt
@@ -0,0 +1,21 @@
KISS 3rd Party Software:
Qt
QScintilla
GLFW
GLee

Qt and QScintilla must be installed on your computer. Installing these packages is simple, but slightly different on each platform.

Qt can be found at http://www.trolltech.com
QScintilla can be found at http://riverbankcomputing.co.uk

GLFW and GLee binaries are included in the source package for convenience, as well as sources.

To build KISS, run the following commands:

cd ${KISS-SOURCE-DIR}
qmake
make
make install

After these commands are run, there should be a new directory in the KISS root directory named 'deployment'. This directory will contain the KISS binary along with the current stable targets. Have fun, and good luck!
74 changes: 74 additions & 0 deletions editor/editor.pro
@@ -0,0 +1,74 @@
#####################################################################
# Automatically generated by qmake (2.01a) Thu Aug 2 18:29:15 2007
######################################################################

include(../config.pri)

TEMPLATE = app
TARGET = KISS
DEPENDPATH += src
INCLUDEPATH += src
DESTDIR=..

macx: ICON = rc/mac_icon.icns
win32: RC_FILE = rc/kiss.rc

win32 {
INCLUDEPATH += Qsci
CONFIG -= embed_manifest_exe
}

LIBS += -lqscintilla2

win32: LIBS += -lshell32

# Input
HEADERS += src/MainWindow.h \
src/ChooseTargetDialog.h \
src/ChoosePortDialog.h \
src/EditorSettingsDialog.h \
src/TargetSettingsDialog.h \
src/FindDialog.h \
src/Target.h \
src/SourceFile.h \
src/Lexer.h \
src/LexerSpec.h \
src/LexerStyles.h \
src/Version.h

SOURCES += src/main.cpp \
src/MainWindow.cpp \
src/ChooseTargetDialog.cpp \
src/ChoosePortDialog.cpp \
src/EditorSettingsDialog.cpp \
src/TargetSettingsDialog.cpp \
src/FindDialog.cpp \
src/Target.cpp \
src/SourceFile.cpp \
src/Lexer.cpp

FORMS += ui/MainWindow.ui \
ui/ChooseTargetDialog.ui \
ui/ChoosePortDialog.ui \
ui/FindDialog.ui \
ui/EditorSettingsDialog.ui \
ui/TargetSettingsDialog.ui

RESOURCES = rc/icons.qrc

unix:QMAKE_CLEAN += src/*~

#install directives

changelog.files = ../dog/ChangeLog.txt
changelog.path = ../$${INSTALL_BASE}

target.path += ../$${INSTALL_BASE}
INSTALLS += target changelog

macx:{
install_libs.extra = sh ../scripts/osx_install_dylibs.sh ../$${INSTALL_BASE}/KISS.app QtCore QtGui
install_libs.path = ../$${INSTALL_BASE}

INSTALLS += install_libs
}
Empty file added editor/rc/icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/application_go.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/application_put.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/arrow_redo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/arrow_undo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/brick.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/brick_go.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/bricks.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/bullet_arrow_down.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/bullet_go.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/cog_go.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/cross.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/cut.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/disk.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/folder.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/link.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/page_white.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/page_white_copy.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/page_white_paste.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/page_white_put.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/ruby_blue.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/shape_flip_vertical.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/spellcheck.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/stop.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added editor/rc/icon_set/icons/tick.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,495 changes: 1,495 additions & 0 deletions editor/rc/icon_set/readme.html

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions editor/rc/icon_set/readme.txt
@@ -0,0 +1,22 @@
Silk icon set 1.3

_________________________________________
Mark James
http://www.famfamfam.com/lab/icons/silk/
_________________________________________

This work is licensed under a
Creative Commons Attribution 2.5 License.
[ http://creativecommons.org/licenses/by/2.5/ ]

This means you may use it for any purpose,
and make any changes you like.
All I ask is that you include a link back
to this page in your credits.

Are you using this icon set? Send me an email
(including a link or picture if available) to
mjames@gmail.com

Any other questions about this icon set please
contact mjames@gmail.com
35 changes: 35 additions & 0 deletions editor/rc/icons.qrc
@@ -0,0 +1,35 @@
<RCC>
<qresource prefix="/shortcuts/edit" >
<file>icon_set/icons/arrow_redo.png</file>
<file>icon_set/icons/arrow_undo.png</file>
<file>icon_set/icons/cut.png</file>
<file>icon_set/icons/page_white_copy.png</file>
<file>icon_set/icons/page_white_paste.png</file>
</qresource>
<qresource prefix="/shortcuts/file" >
<file>icon_set/icons/cross.png</file>
<file>icon_set/icons/disk.png</file>
<file>icon_set/icons/folder.png</file>
<file>icon_set/icons/page_white.png</file>
</qresource>
<qresource prefix="/shortcuts/target" >
<file>icon_set/icons/application_go.png</file>
<file>icon_set/icons/application_put.png</file>
<file>icon_set/icons/brick.png</file>
<file>icon_set/icons/brick_go.png</file>
<file>icon_set/icons/bricks.png</file>
<file>icon_set/icons/bullet_arrow_down.png</file>
<file>icon_set/icons/bullet_go.png</file>
<file>icon_set/icons/cog_go.png</file>
<file>icon_set/icons/link.png</file>
<file>icon_set/icons/page_white_put.png</file>
<file>icon_set/icons/ruby_blue.png</file>
<file>icon_set/icons/shape_flip_vertical.png</file>
<file>icon_set/icons/spellcheck.png</file>
<file>icon_set/icons/stop.png</file>
<file>icon_set/icons/tick.png</file>
</qresource>
<qresource prefix="/" >
<file>splash_screen.png</file>
</qresource>
</RCC>
1 change: 1 addition & 0 deletions editor/rc/kiss.rc
@@ -0,0 +1 @@
IDI_ICON1 ICON DISCARDABLE "rc\\windows_icon.ico"
Empty file added editor/rc/mac_icon.icns
Empty file.
Empty file added editor/rc/splash_screen.png
Empty file added editor/rc/windows_icon.ico
Empty file.
171 changes: 171 additions & 0 deletions editor/src/ChoosePortDialog.cpp
@@ -0,0 +1,171 @@
/**************************************************************************
* Copyright 2007,2008,2009 KISS Institute for Practical Robotics *
* *
* This file is part of KISS (Kipr's Instructional Software System). *
* *
* KISS is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 2 of the License, or *
* (at your option) any later version. *
* *
* KISS is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with KISS. Check the LICENSE file in the project root. *
* If not, see <http://www.gnu.org/licenses/>. *
**************************************************************************/

#include "ChoosePortDialog.h"

#include <QStringList>
#include <QString>
#include <QDir>
#include <QFileInfo>
#include <QVBoxLayout>
#include <QList>
#include <QRadioButton>
#include <QInputDialog>

#ifndef Q_OS_WIN32
#include <termios.h>
#include <fcntl.h>
#include <unistd.h>
#else
#include <windows.h>
#endif

// Constructor
ChoosePortDialog::ChoosePortDialog(QWidget *parent) : QDialog(parent)
{
setupUi(this);

// Set up the refresh button
connect(ui_refreshButton, SIGNAL(clicked()), this, SLOT(refreshPortList()));
}

// Destructor
ChoosePortDialog::~ChoosePortDialog()
{
clearPortButtonList();
}

// Clears the portButtonList, deleting the entries
// and cleaning out the ui_portGroupBox
void ChoosePortDialog::clearPortButtonList()
{
delete ui_portGroupBox->layout();

QListIterator<QRadioButton*> i(m_portButtonList);
while(i.hasNext())
delete i.next();
m_portButtonList.clear();
}

// Ugly code to check port availability
void ChoosePortDialog::refreshPortList()
{
QStringList portList;

clearPortButtonList();

#ifdef Q_OS_WIN32
/* WINDOWS ONLY */

// Sets the timeouts so that operations are non-blocking
COMMTIMEOUTS cto;
cto.ReadIntervalTimeout = MAXDWORD;
cto.ReadTotalTimeoutMultiplier = 0;
cto.ReadTotalTimeoutConstant = 0;
cto.WriteTotalTimeoutMultiplier = 0;
cto.WriteTotalTimeoutConstant = 0;


// Scan through ports 1-32
for(int i = 1;i <= 32;i++) {
QString portName = "com" + QString::number(i);
QString realPortName = "\\\\.\\com" + QString::number(i);

HANDLE handle = CreateFileA(realPortName.toLocal8Bit(),
GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, 0);

// Add the port to the list of available names if it's valid
if(handle != INVALID_HANDLE_VALUE) {
CloseHandle(handle);
portList << portName;
}
}
/* END WINDOWS ONLY */
#else
/* LINUX/MAC ONLY */
QDir devDirectory("/dev");
QStringList devListFilter;

// Determines how to look for serial port files
// depending on your platform
#ifdef Q_OS_MAC
devListFilter << "tty.*";
#else
devListFilter << "ttyS*";
#endif

// Basically the same as "ls /dev/tty.*" or "ls /dev/ttyS*"
QFileInfoList potentialPortList = devDirectory.entryInfoList(devListFilter, QDir::System | QDir::CaseSensitive);

//Check through the returned ports to see which ones might be valid
QListIterator<QFileInfo> i(potentialPortList);
while(i.hasNext()) {
QFileInfo current = i.next();
int stream = ::open(current.absoluteFilePath().toLocal8Bit(), O_RDWR | O_NDELAY);
struct termios tio;
// If I can get serial attributes then the port is good
if(tcgetattr(stream, &tio) != -1)
portList << current.absoluteFilePath();
::close(stream);
}
/* END LINUX/MAC ONLY */
#endif

// Add the ports we just found to ui_portGroupBox
ui_portGroupBox->setLayout(new QVBoxLayout());
QStringListIterator strings(portList);
for(int i = 0;strings.hasNext();i++) {
m_portButtonList.push_back(new QRadioButton(strings.next()));
ui_portGroupBox->layout()->addWidget(m_portButtonList[i]);
}
}

//Show the dialog, refresh the port list, and run the dialog
int ChoosePortDialog::exec()
{
show();
refreshPortList();
return QDialog::exec();
}

// Figure out which port was selected and return it, or nothing if none are
QString ChoosePortDialog::getSelectedPortName()
{
QListIterator<QRadioButton*> i(m_portButtonList);
while(i.hasNext()) {
QRadioButton *button = i.next();
if(button->isChecked())
return button->text();
}
return QString();
}

void ChoosePortDialog::on_ui_addPortButton_clicked(bool)
{
bool hitOk;
QString portName = QInputDialog::getText(this, "Add Port", "Port name: ", QLineEdit::Normal, QString(), &hitOk);

if(!hitOk)
return;

m_portButtonList.push_back(new QRadioButton(portName));
ui_portGroupBox->layout()->addWidget(m_portButtonList.back());
}

0 comments on commit 95ce439

Please sign in to comment.