diff --git a/TODO b/TODO new file mode 100644 index 00000000..aa8ee445 --- /dev/null +++ b/TODO @@ -0,0 +1,60 @@ +This is an unordered list of possible todo items for Cockatrice. +Note that "improve" and "write" always also means: "document and comment" + + +Improve README.md, it is very minimalistic and technical + +Improve packaging: +* Add SSL libraries to Windows build to support https links in oracle.exe +* Improve nsis file git hash extraction, it only works if the build directory is cleared as version_string.cpp does not seem to get updated by git pull/cmake +* Fix prepareMacRelease.sh to use default installation paths for Qt and protobuf +* Add Mac compile+package howto to the documentation +* Create script/... for creating Linux packages (deb, rpm, ebuild, ...) or at least an official tarball/git tags; package maintainers dislike using git snapshots so much that they rather ignore software without stable tarballs. +* Move everything package related into one directory + +Write example init script for servatrice. + +Write a default cgi webinterface in some language for the servatrice database. Keep it simple and think about SQL-injections and other security risks - especially if you do it in PHP :-P + +Improve usermanual: +* Improve Layout, Text, Screenshots; nearly everything is still quick n dirty copy and paste. +* Add missing TODOs +* Translate the Documentation +* Include faq.txt and shortcuts.txt in usermanual, then remove them. +* Rename the picture filenames to something more meaningful. +* Create an index, lists of tables/figures/... + +Find a better place for sets.xml than doc. + +Create developer documentation: +* Create developer manual +* Add comments to code +* Describe which components exist and how they work and interact +* Describe the *.proto files +* Comment and document servatrice.sql +* Document everything!1!! +* Coding guidelines + +Fix compile warnings (CMAKE_VERBOSE_MAKEFILE, compile with clang++), this could indicate missing program functionality: +* cockatrice/src/abstractclient.cpp:72:12: warning: enumeration value 'SessionEvent_SessionEventType_SERVER_COMPLETE_LIST' not handled in switch [-Wswitch] + switch ((SessionEvent::SessionEventType) getPbExtension(event)) { + ^ +* cockatrice/Cockatrice.VanNostrand/cockatrice/src/player.cpp:1725:12: warning: 4 enumeration values not handled in switch: 'cmMoveToTopLibrary', 'cmMoveToBottomLibrary', 'cmMoveToGraveyard'... [-Wswitch] + switch (static_cast(a->data().toInt())) { + ^ +* cockatrice/src/cardzone.cpp:127:11: warning: enumeration values 'CaseTopCardsOfZone', 'CaseRevealZone', and 'CaseShuffleZone' not handled in switch [-Wswitch] + switch (gc) { + +Update SFMT library (http://www.math.sci.hiroshima-u.ac.jp/~m-mat@math.sci.hiroshima-u.ac.jp/MT/SFMT/) in common/sfmt and adapt common/rng_sfmt.cpp + +Prepare to update to Qt5, as Qt4 will die some day. See http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5 for relevant information. + +Move hardcoded URLs (especially from oracle and cockatrice) into a config file. + +Update the oracle to find all MtG extensions by itself, why the need for sets.xml when the oracle could ask the Gatherer or magiccards.info directly for this information? + +Update the oracle with some intelligence or improve it otherwise to deal with changes from the Gatherer. + +Remove cockatrice/resources/mtgforum.png as it is unused. Find other dead files or dead references to websites and files in the program code and documentation. + +Search git log for useful information/problems/bugs/... diff --git a/cockatrice/src/phasestoolbar.cpp b/cockatrice/src/phasestoolbar.cpp index 028bd425..3ea9ad91 100644 --- a/cockatrice/src/phasestoolbar.cpp +++ b/cockatrice/src/phasestoolbar.cpp @@ -39,7 +39,7 @@ void PhaseButton::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*op painter->setBrush(QColor(220 * (activeAnimationCounter / 10.0), 220 * (activeAnimationCounter / 10.0), 220 * (activeAnimationCounter / 10.0))); painter->setPen(Qt::gray); - painter->drawRect(0.5, 0.5, width - 1, width - 1); + painter->drawRect(0, 0, width - 1, width - 1); painter->save(); painter->resetTransform(); painter->drawPixmap(iconPixmap.rect().translated(round(3 * scaleFactor), round(3 * scaleFactor)), iconPixmap, iconPixmap.rect()); @@ -47,7 +47,7 @@ void PhaseButton::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*op painter->setBrush(QColor(0, 0, 0, 255 * ((10 - activeAnimationCounter) / 15.0))); painter->setPen(Qt::gray); - painter->drawRect(0.5, 0.5, width - 1, width - 1); + painter->drawRect(0, 0, width - 1, width - 1); } void PhaseButton::setWidth(double _width) diff --git a/cockatrice/src/pixmapgenerator.cpp b/cockatrice/src/pixmapgenerator.cpp index 48d3c204..e5b4a7dc 100644 --- a/cockatrice/src/pixmapgenerator.cpp +++ b/cockatrice/src/pixmapgenerator.cpp @@ -123,7 +123,7 @@ QPixmap CountryPixmapGenerator::generatePixmap(int height, const QString &countr QPainter painter(&pixmap); svg.render(&painter, QRectF(0, 0, width, height)); painter.setPen(Qt::black); - painter.drawRect(0.5, 0.5, width - 1, height - 1); + painter.drawRect(0, 0, width - 1, height - 1); pmCache.insert(key, pixmap); return pixmap; diff --git a/cockatrice/src/tab_game.cpp b/cockatrice/src/tab_game.cpp index f920b98e..17d5d33c 100644 --- a/cockatrice/src/tab_game.cpp +++ b/cockatrice/src/tab_game.cpp @@ -77,7 +77,7 @@ void ToggleButton::paintEvent(QPaintEvent *event) painter.setPen(QPen(Qt::green, 3)); else painter.setPen(QPen(Qt::red, 3)); - painter.drawRect(1.5, 1.5, width() - 3, height() - 3); + painter.drawRect(1, 1, width() - 3, height() - 3); } void ToggleButton::setState(bool _state)