# # # patch "notes/IDEAS" # from [b9dab53549791a4316d66e2bd3d5ac38211b2a9a] # to [fa626f79a33c287861c9dc7c1e3301e6fe2a94c6] # # patch "notes/TODO" # from [ecbad979fb2a5dc9e5cf796d034be2be1b50a242] # to [ea5eaa751fa11645c142bca08911a145ef87d4a5] # # patch "src/monotone/MonotoneThread.cpp" # from [46964b25ee37338d2e3670a5751359181f39d0b1] # to [88773a0b36a1fae0b58d5663dedab7b86d413aac] # ============================================================ --- notes/IDEAS b9dab53549791a4316d66e2bd3d5ac38211b2a9a +++ notes/IDEAS fa626f79a33c287861c9dc7c1e3301e6fe2a94c6 @@ -1,6 +1,7 @@ mid- to longterm, for a list of definite This file lists some ideas what could be improved / implemented in guitone mid- to longterm, for a list of definite changes see TODO: +* better version detection for RSS * markdown-alike functionality for diff view * proper support for different text encodings (Qt already has everything, we just need to present that to the user and store the view settings in @@ -20,17 +21,13 @@ mid- to longterm, for a list of definite * add unit tests for all the internals * make file-saving rollback'able if aborted / on error * implement some properties dialog to show more info on the currently opened - workspace / database + workspace / database (needs db info command in automate) * implement drag'n'drop and proper rename support (stubs) * make coloring throughout the application configurable, find saner defaults for the currently redish/greenish diff output * make more use of typedefs to define more clearly what kind of parameters a certain method accepts. If everything is just labeled as QString this won't help the code readability a lot... -* think about moving certain UI parts which are currently displayed as dialogs - into tabs (i.e. its possible to have more than one view of the same type - opened then, f.e. two diff views, three histories). All tab views should be - attached to the main window whose database / workspace is used. * think about a dynamic sidebar which provides context actions if an item in the workspace view is marked -> better than the hidden right-click menu and fancier than a toolbar which enables / disables certain elements ============================================================ --- notes/TODO ecbad979fb2a5dc9e5cf796d034be2be1b50a242 +++ notes/TODO ea5eaa751fa11645c142bca08911a145ef87d4a5 @@ -1,6 +1,2 @@ Current TODO, for "long-term" stuff see Current TODO, for "long-term" stuff see IDEAS. -* more testing with commit functionality (seems to make problems - especially if binary files are added / edited) -* better version detection from rss - ============================================================ --- src/monotone/MonotoneThread.cpp 46964b25ee37338d2e3670a5751359181f39d0b1 +++ src/monotone/MonotoneThread.cpp 88773a0b36a1fae0b58d5663dedab7b86d413aac @@ -22,7 +22,6 @@ #include "StdioParser.h" #include "BasicIOParser.h" -#include #include MonotoneTask::MonotoneTask() @@ -221,7 +220,6 @@ void MonotoneThread::run() L(QString("thread %1: process started").arg(threadNumber)); emit started(threadNumber); - QTextStream streamProcess(process); QByteArray buffer; QByteArray output; @@ -252,8 +250,24 @@ void MonotoneThread::run() if (!processingTask) { MonotoneTask task = queue.head(); - streamProcess << task.getEncodedInput(); - streamProcess.flush(); + QByteArray in(task.getEncodedInput()); + + if (process->write(in) == -1) + { + QByteArray err; + err.append("could not write to process (stderr: "); + err.append(process->readAllStandardError()); + err.append(")"); + + task = queue.dequeue(); + task.setOutput(err); + task.setReturnCode(-1); + task.setFinished(); + + emit taskAborted(task); + continue; + } + processingTask = true; }