New feature: Label on detail

Issue #24 resolved
Former user created an issue

All detail can have different labels.

Comments (157)

  1. Former user Account Deleted

    Add identifying labels on each pattern piece in Detail View. Labels contain: 1. Letter/Identifier 2. Pattern Piece Name 3. Pattern name or number 4. # of pieces to cut in fabric 5. # of pieces to cut in lining (if any) 6. # of pieced to cut in interfacing (if any)

  2. Former user Account Deleted

    I see that this is marked as already in the initial test build but I cant find this function available. Is it still being developed? I really love this program!

  3. Roman Telezhynskyi repo owner

    I see that this is marked as already in the initial test build but I cant find this function available. Is it still being developed?

    No, according to the guide Hacking:How To Report Valentina Bugs i recommend left this field empty. Many people don't understand what is mean.

    I use this field for marking a first version where this bug was fixed. But many use for showing bugged version.

    Instead of version field you should look at an issue status: new, open, resolved atc.

  4. Susan Spencer

    I thought we would start with something very specific, like two general sections of text made from several input fields.

    Group 1:

    • Company Name or Designer Name
    • Pattern Name
    • Pattern Number
    • Client Name
    • Date

    Group 2:

    • Pattern Piece Letter
    • Pattern Piece Name
    • "Cut " + numberToCut + " of Fabric" (if numberToCut=0 do not print)
    • "Cut " + numberToCut + " of Lining" (if numberToCut=0 do not print)
    • "Cut " + numberToCut + " of Interfacing" (if numberToCut=0 do not print)
  5. Susan Spencer

    Adding 'Text along Line or Curve' would be a separate tool in Detail. Adding Grainline would be a separate tool in Detail. Adding 'Text' to a passmark would be in the Passmark tool in Detail. Marking internal lines for Pockets or Darts would be a separate tool in Detail.

  6. Roman Telezhynskyi repo owner

    Adding 'Text along Line or Curve' would be a separate tool in Detail. Adding Grainline would be a separate tool in Detail.

    Possible.

    Marking internal lines for Pockets or Darts would be a separate tool in Detail.

    Emm. After creating you can't change anything. You should add internal paths when create a detail.

  7. Roman Telezhynskyi repo owner

    I thought we would start with something very specific, like two general sections of text made from several input fields.

    Can you make for us an image with Inkscape how do you look it. Because i still can't understand.

  8. Susan Spencer

    If the pocket and dart lines are included in the path when creating a Detail, how will the pocket and dart lines be prevented from having a seam allowance?

  9. Susan Spencer

    Question for another issue: If the pocket and dart lines are included in the path when creating a Detail, how will the pocket and dart lines be prevented from having a seam allowance?

    Relative to this issue: Yes, rotation and size are super important. To make this simple maybe we can use the font family of the Operating system's default font?

  10. Timo Virtaneva

    Hi

    I have solved in my shirt. From the pattern, I create different layouts. One for the fabric and one for interface, without seam allowance.

  11. Roman Telezhynskyi repo owner

    If the pocket and dart lines are included in the path when creating a Detail, how will the pocket and dart lines be prevented from having a seam allowance?

    You will add main path in one mode, change mode and will add internal paths.

  12. Roman Telezhynskyi repo owner

    I have solved in my shirt. From the pattern, I create different layouts. One for the fabric and one for interface, without seam allowance.

    And an image too, because i don't understand.

  13. Roman Telezhynskyi repo owner

    Yes, rotation and size are super important. To make this simple maybe we can use the font family of the Operating system's default font?

    Depend on decision we will use text or rich text component. I still don't know.

  14. Susan Spencer

    Well, the maximum character in the input field comes first. If it doesn't fit on the pattern properly the user should change the font size.

  15. Bojan Kverh

    Roman,

    Susan suggested that I implement this feature. I looked through the code a little bit and I guess this data will be somehow stored in the .val file via the VDomDocument class, but I am not sure where exactly (in which class) this data should be held during the app execution. Also, how would the user enter this data? I guess we need a separate dialog, which could be triggered by right clicking on the pattern in the Details mode, where you get a small popup with "Options" and "Delete", now we could add "Description" or something like that there. I am open to your suggestions.

  16. Susan Spencer

    A dialog is needed for the pattern data. Another dialog is needed for the pattern piece data.

    Each pattern has this data, and it appears on each pattern piece:

    • pattern designer or company - can contain letter, number, space, special characters
    • pattern name - can contain letter, number, space, special characters
    • pattern number - can contain letter, number, space, special characters

    Each patternpiece has this data, and it appears only on that patternpiece:

    • Patternpiece Letter (eg 'A') - Up to 3 characters. Can contain letters, numbers, no special characters or whitespaces, is case sensitive.
    • Patternpiece Name (eg 'Front') - Can contain letter, number, special characters, whitespaces, is case sensitive.
    • Material Type, Cut Number, Placement 3-tuple. Used to create text phrase, eg 'Cut 2 of Fabric'. Can have multiple. For a coat pattern piece example: 'Cut 2 of Fabric' then next text line is 'Cut 2 of Lining', then next line is 'Cut 1 of Interfacing', then next line is 'Cut 1 of Interlining'. For a quilting pattern piece example: 'Cut 100 of Solid Fabric 1', then next text line is 'Cut 50 of Plaid fabric', then next line is 'Cut 10 of Solid Fabric 2'
      • Material Type - {'Fabric' || 'Lining' || 'Interfacing'|| 'Interlining' || user defined}. Can be up to 15 characters, letters, numbers, special characters, whitespaces, case sensitive
      • Cut Number - Can be any integer string greater than 0, up to 3 characters. (More than 100 would be strange, but possible with quilting applications.)
      • Placement - {'Cut on Fold' || ''}. If not blank add to end of text eg 'Cut 2 of Fabric on Fold'
  17. Roman Telezhynskyi repo owner

    Hi Bojan,

    I must warn you that if our "easy" task was not so easy this task will be far from easy. :)

    Ok. I will explain my vision.

    Visual part:

    • We need two QGraphicsTextItems because we need formatted text.
    • Use html for formatting.
    • Use should have possibility to change size of label.
    • Still not sure if need to check label position. (inside/outside of detail).
    • Maybe rotation.
    • Detail is a parent of QGraphicsTextItem.

    Dialog:

    • I like idea with new tab. Because we have many fields.
    • Each field has limitation.
    • Validation fields.
    • By default fields are empty.
    • Support undo/redo command.

    XML:

    See example

    <detail closed="1" id="238" name="Detail" supplement="1" width="1" mx="0.392615" my="-0.490769">
                    <node type="NodePoint" nodeType="Contour" idObject="226" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="227" mx="0" my="0"/>
                    <node type="NodeSpline" reverse="1" nodeType="Contour" idObject="228" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="229" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="230" mx="0" my="0"/>
                    <node type="NodeSpline" reverse="0" nodeType="Contour" idObject="231" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="232" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="233" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="234" mx="0" my="0"/>
                    <node type="NodePoint" nodeType="Contour" idObject="235" mx="0" my="0"/>
                    <node type="NodeSpline" reverse="1" nodeType="Contour" idObject="236" mx="0" my="0"/>
    </detail>
    

    This is how looks like current detail in xml. Yes we have field name but don't use it.

    • See class VDetail.
    • Each field should have own attribute
    • Because fields a lot better to create tag <label> and move them inside the tag. Possible way:
    <detail>    
       <label attr1="" attr2=""/>    
       <node/>  
    </detail>  
    
    • By default detail doesn't have tag label.
    • If user make all field empty you should delete tag label.

    Format conversion

    We support special class that handle file conversion. All your changes should be possible to support with this class. That's the main reason why you will delete tag label if user did not use label.

  18. Bojan Kverh

    Thanks to both of you, Susan and Roman, for useful comments. :)

    Roman, the easy task was really easy, it took me about 30 minutes to do the programming and several hours to fight with Git/hg. :)

    So I am not afraid of programming challenge at all, although I will probably have more questions once I study the code into more detail. :)

  19. Bojan Kverh

    OK, thanks. :) I know the basic commands, so while everything goes smoothly, there's no problem. :)

  20. Bojan Kverh

    Roman, when I do some work and want to finish for the day (but the issue is not completed yet), do I only commit the files, or I also merge that to develop branch?

  21. Roman Telezhynskyi repo owner

    If i understood you correct you are talking about subversion style of working. When you use Distributed Version Control Systems (DVCS) like git or mercurial it is little bit a different story.

    Here is my recommendations for you:

    • Make a feature step by step and save your progress.
    • Make commit only if you have finished a step. Don't need to make commit for unfinished step today. You can continue tomorrow.
    • Each commit should be small as possible and contain one logical step of developing a feature. This will help me better understand your code. Sometime i see changes per each commit separately.
    • Compiler should successfully build each commit you made.
    • Make all your commits in feature branch. This mean all your changes in your local repository will be only in feature branch. When you will decide that all were done create a pull request. Merge your feature with my develop.
    • Don't forget each day sync your repository and my and merge new code in develop -> to your feature branch. Fix all possible merge conflicts.
    • You can push your feature branch to bitbucket. This will help me watch your progress and left comments. Don't hide your code until the end.
  22. Bojan Kverh

    Thanks for these recommendations, it's more or less how I intended to work as well. I did some work yesterday, implementing a class to add pattern piece data. I will commit that. Loading the new information from .val files however failed, because the app does the XML structure check against a predefined schema, which will need to be changed I guess. How did you generate these schemas?

  23. Roman Telezhynskyi repo owner

    How did you generate these schemas?

    Manually. I add part i need in new version.

  24. Bojan Kverh

    So while the pattern piece code waits for inspection, I'd like to ask a few questions about the other group of texts, which if I understand correctly, will be the same on every detail:

    1. This group has 5 parameters: companyName, patternName, patternNumber, clientName, dateOfLayout. These will be included in the VPattern class, right?

    2. Can we use any of the existing XML tags from .val file structure to save some of these 5 parameters?

    3. How will the dialog for editing these parameters be activated? Through the popup in detail view, like the detail dialog?

  25. Susan Spencer

    The pattern's XML tags should contain the information placed on each pattern (except dateOfLayout).
    Maybe enter this data using the Main Menu/Pattern Piece/Pattern Properties dialog.
    This dialog currently looks like this: PatternPropertiesDialog.png

  26. Susan Spencer

    Rotation, placement, and font size (or scaling) -- these are all that is needed to make a nice label. We don't need italics, bold, or choice of font family if it makes the development for this feature too complicated.

  27. Bojan Kverh

    Choosing font family, size and bold/italic is not difficult to do. However, I think it would be necessary to enable user to choose font for every individual line of text separately from the others. So font size would be chosen by user and not determined automatically from the label size? How about rotation, what would be rotated, just the text or entire label or both? Also, looking at the attached image, would the label still be just rectangular or arbitrary shape?

  28. Roman Telezhynskyi repo owner

    I will repeat for you Susan's words.

    We don't need italics, bold, or choice of font family if it makes the development for this feature too complicated.

    Choosing font family, size and bold/italic is not difficult to do.

    Not agree, i don't want to see Choosing font family. And other stuff (size, alignment and bold/italic) should be mandatory for some stings only. Don't try to make small editor here.

    How about rotation, what would be rotated, just the text or entire label or both?

    Rotate item with text inside it.

    Also, looking at the attached image, would the label still be just rectangular or arbitrary shape?

    Only rectangle.

  29. Bojan Kverh

    You do realize that "We don't need italics, bold, or choice of font family if it makes the development for this feature too complicated." can be interpreted in two quite different ways? I am just trying to understand the requirements without any ambiguity.

    Anyway, any suggestion to do label rotation? I mean what will user have to do to get the label rotated for certain angle.

  30. Roman Telezhynskyi repo owner

    As i told you before we need italic and centered text to be hardcoded. A user should not care about this. Same about font family. Default value will be enough. But ... .

    If you really want make option about font family you can add it to global options. And save it to settings file. But dialog Detail is not place for this.

  31. Bojan Kverh

    Don't get me wrong, hardcoded font styles are fine for me. I just didn't understand what Susan meant, so I asked for clarification.

  32. Roman Telezhynskyi repo owner

    And custom font family option in global options is really not bad idea. If we can have it why not. This could fix problems in future.

  33. Susan Spencer

    As you may notice in looking at images of patterns, the labels on a pattern can reflect a company's branding though the use of font family, size, italics, regular/slim/bold, etc. It would be nice if Valentina assisted a patternmaker with their business branding by providing ability to control 100% of the look of the labels on the pattern pieces. However, I do not wish to sacrifice the development of Valentina for a perfect vision of a perfect product. So if it is difficult, don't do it. But if it is possible, it would make Valentina a professional tool for people who make their living by making patterns. Does this info help...probably not. But this is the user viewpoint on this issue, would be great if we had this ability.

  34. Susan Spencer

    If I read the question right, you are discussing whether an individual line of text needs it's own rotation?
    Each of the two labels (pattern label and pattern piece label) should have its own placement and rotation, independent from the other. But an individual text line within a label doesn't need its own rotation.

  35. Bojan Kverh

    OK, how should the user perform rotation? When you click on the label in the detail mode, the label gets "selected" and the black dotted rectangle is drawn around it, with a small black square in the right-bottom corner for resizing. Should something similar be done for rotation?

  36. Holger Pandel

    Perhaps like it's done in Inkscape: - first click selects label and sets it into resize mode (small black square as indicator) - second click sets it to rotation mode (small black circle as indicator) - third click again back to resize mode - ...

  37. Susan Spencer

    Yes Inkscape has a nice visual solution. This would be good for setting the rotation angle to be a fixed angle.

    But in a fully scalable pattern the rotation angle may need to be relative (not fixed).
    There should also be an f(x) entry field, like PointAtDistanceAndAngleDialog.png

  38. Roman Telezhynskyi repo owner

    Stop, stop, stop. Susan, can you show us an example where such a formula needed?

  39. Holger Pandel

    I think, Susan wants to add a certain angle formula to the little yellow labels, so that they stay in the same rotation state relative to the detail part it is assigned to.

    I don't know, how pattern rotation is implemented right now, but an angle formula wouldn't really be necessary, if a pattern or detail part has its own internal top-bottom axis. I.e., this axis could be defined as a straight up-down line in relation to the root point of a pattern part. Then, if you could rotate and position a detail label in relation to this axis, it would always stay in the same position, regardless of what you do with the pattern or detail piece itself afterwards. Also, it could perhaps be much easier for Bojan to implement his label positioning code...

    Just a rough thought here, there might occur problems when trying to implement this...

  40. Roman Telezhynskyi repo owner

    I think, Susan wants to add a certain angle formula to the little yellow labels, so that they stay in the same rotation state relative to the detail part it is assigned to.

    Yes, i understand this.

    I don't know, how pattern rotation is implemented right now, but an angle formula wouldn't really be necessary, if a pattern or detail part has its own internal top-bottom axis. I.e., this axis could be defined as a straight up-down line in relation to the root point of a pattern part. Then, if you could rotate and position a detail label in relation to this axis, it would always stay in the same position, regardless of what you do with the pattern or detail piece itself afterwards. Also, it could perhaps be much easier for Bojan to implement his label positioning code...

    Something like this. A label object is child of detail object. This mean label's object always related to parent angle. By rotating detail you will rotate label too.

    All this idea about formula was unexpected for me too.

  41. Bojan Kverh

    So to sum the latest discussion up, the rotation should be done like in Inkscape, as Holger originally suggested?

  42. Roman Telezhynskyi repo owner

    So to sum the latest discussion up, the rotation should be done like in Inkscape, as Holger originally suggested?

    If you mean this

    Perhaps like it's done in Inkscape: - first click selects label and sets it into resize mode (small black square as indicator) - second click sets it to rotation mode (small black circle as indicator) - third click again back to resize mode - ...

    Yes, i like idea about square/circle.

  43. Roman Telezhynskyi repo owner

    OK, I did the rotation part, please check if this is a reasonable way to solve this problem.

    Here is what i see when just open a file with your last code. small_labels_bug.png

    All labels have strange positions and are very small.

  44. Bojan Kverh

    Of course I tested it. Is this one of the files, which come together with the code in the collection folder, so that I can try it myself?

  45. Roman Telezhynskyi repo owner

    Bugs:

    1. Moving a label move all labels.
    2. Changing size for a label change size of all labels.
    3. The same problem with rotation.

    I like the way you show rotation. But i don't like speed. This is hard to explain, but your rotation is high more quick than in Inkscape.

  46. Roman Telezhynskyi repo owner

    Of course I tested it. Is this one of the files, which come together with the code in the collection folder, so that I can try it myself?

    No, this file from issue #519.

  47. Roman Telezhynskyi repo owner

    I see only date in label, but each detail has field name i told you about. I expect to see that data there.

  48. Roman Telezhynskyi repo owner

    But i don't like speed. This is hard to explain, but your rotation is high more quick than in Inkscape.

    Look, when i rotate object in Inkscape it allow me be very close to an object (a cursor almost inside the center). But your implementation became very crazy if i move a cursor inside an object shape. Inkscape is more natty in this case.

  49. Bojan Kverh

    I suspect the rotation might be slow, because of insane amount of qDebug messages that are printed out to console after every small rotation

  50. Roman Telezhynskyi repo owner

    I suspect the rotation might be slow, because of insane amount of qDebug messages that are printed out to console after every small rotation

    No, it unpredictable. Are you call Lite Parse after each moving a lable?

  51. Bojan Kverh

    Yes, you are right, it was emitting rotation signal from mouseMoveEvent, which triggered LiteParse. I didn't notice this on simple pattern.

  52. Bojan Kverh

    When I load the pattern from #519, VToolDetail constructor gets called five times, is that normal? That's why you get five labels instead of one.

  53. Roman Telezhynskyi repo owner

    When I load the pattern from #519, VToolDetail constructor gets called five times, is that normal? That's why you get five labels instead of one.

    How many details do you see in the file? :)

  54. Bojan Kverh

    I see 5. So which class encapsulates all the VToolDetails? The pattern info label has to be moved from VToolDetails into this class.

  55. Roman Telezhynskyi repo owner

    I see 5.

    And

    VToolDetail constructor gets called five times

    Yes, all is normal.

  56. Roman Telezhynskyi repo owner

    The pattern info label has to be moved from VToolDetails into this class.

    Very, very, very bad idea.

    What about idea about two labels related to a detail you don't understand?

  57. Bojan Kverh

    Well if you have 5 details and pattern info label is a child of VToolDetail, you will get 5 pattern info labels. And 5 detail labels, when you enter some detail data. So you want each detail to have 2 labels (pattern info and detail specific data) for each detail? OK, so pattern info label size, position and rotation will have to be moved into the <detail> tag.

  58. Roman Telezhynskyi repo owner

    So you want each detail to have 2 labels (pattern info and detail specific data) for each detail?

    Yes. :)

    Why? Imagine next steps: Layout -> printing -> cutting. And each detail should fully contain this information. This data not only for screen.

  59. Bojan Kverh

    Rotation should now be better (you rotate around circle, which is painted in the middle of the label). Regarding small and misplaced labels on the particular pattern: it looks to me that QGraphicsScene on which you have the details and labels, gets scaled some time after creating detail items. This causes misplacing. And labels are small because everything else is small (the node names for example). If I know when (and where in the code) the scene gets scaled, I might be able to fix the placements and scaling.

  60. Roman Telezhynskyi repo owner

    Rotation should now be better

    Yes, exactly what i want. Thanks.

    And labels are small because everything else is small (the node names for example).

    I see. But why start positions are wrong?

    Don't worry about label size. User can fix it. But for example now it is hard to understand which label is related to detail. Can you fix it?

  61. Bojan Kverh

    I am sure I can fix that. From my observation, the qgraphicsscene has different boundingRect when labels are created than when it is displayed on the screen for the first time. I will investigate that, but it would be great if you can provide me any information about where the qgraphicsscene gets resized/scaled.

  62. Bojan Kverh

    I studied the QGraphicsItem coordinates systems and I must say that the placement of the items in this application is very weird. For example, if I write out scenePos() for VToolDetail and its patternInfo label, I get the same value (scenePos should return the actual position of the topleft point of the item in the global scene). But these two items are drawn at completely different positions on the screen. If I understand coordinate systems correctly, those two should have their topleft points drawn at the same pixel, but they do not (I also checked that there is no transformation applied to any of these items). How is this possible?

  63. Bojan Kverh

    OK, I think I found the solution. Right now, it is not possible to move the label outside its detail bounding box. If this is a problem, please let me know, so that I will fix this.

  64. Former user Account Deleted

    Roman, did you check the last commit of mine?

    No, i did not.

    Can I create a pull request?

    About what?

  65. Bojan Kverh

    This looks to be done, please let me know if there is still anything to do regarding this issue.

  66. Roman Telezhynskyi repo owner

    Hi Bojan, this issue is far from done yet. I did not check your code for quite some time. First i want to see visual part.

  67. Roman Telezhynskyi repo owner

    What is the best way for me to test this code? Should I build the feature branch?

    Exactly.

  68. Roman Telezhynskyi repo owner

    Also my mom says she need field where we can write information about size. For example additional field where pattern maker can left this information.

  69. Roman Telezhynskyi repo owner

    I have question about empty fields.

    label.png

    I don't like situation like this. To many free space inside the label. Can we do something about it?

  70. Susan Spencer

    Okay so we are adding a field to Group 1:

    • Company Name or Designer Name
    • Pattern Name
    • Pattern Number
    • Client Name
    • Size
    • Date
  71. Susan Spencer

    Roman - you would like the label information to be controlled on a per-row basis.
    So that there can be data missing yet there are no skipped rows in a label.

    Example:

    • Company Name = ''
    • Pattern Number = 'X4567'
    • Client Name = ''
    • Size = 'L'
    • Date = [option selected to hide date of layout]

    will result in this label:
    X4567
    Size L

  72. Roman Telezhynskyi repo owner

    Size

    Ok, but we need text field not combobox. I want to write something like this: "XS-40-60-45". My mom says she uses this data (40-60-45) for checking patterns on paper.

  73. Roman Telezhynskyi repo owner

    Roman - you would like the label information to be controlled on a per-row basis. So that there can be data missing yet there are no skipped rows in a label.

    Yes, exactly.

  74. Bojan Kverh

    Empty space in the pattern label has been removed now, dateOfLayout field can now be hidden, the pattern size field has been added and labels are now displayed in the Layout mode as well. Please check if anything is still missing.

  75. Roman Telezhynskyi repo owner

    labels are now displayed in the Layout mode as well.

    I see, but we don't need rectangles around label. I did not tell you because on develop stage they were useful.

  76. Bojan Kverh

    You are right, they were useful, thanks. I will just delete the code, which generates those rectangles and commit.

  77. Timo Virtaneva

    Here is the whole set including some warnings

    warning: unknown warning option '-Wunused-sanitize-argument'; did you mean '-Wunused-command-line-argument'? [-Wunknown-warning-option] ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:227:57: error: no member named 'CreateMeasurements' in 'MainWindow'; did you mean '::MainWindow::UpdateMeasurements'? connect(actionOpenTape, &QAction::triggered, this, &MainWindow::CreateMeasurements); ^~~~~~~~ ::MainWindow::UpdateMeasurements ../../../../valentina-bojan/src/app/valentina/mainwindow.h:320:24: note: '::MainWindow::UpdateMeasurements' declared here bool UpdateMeasurements(const QString &path, int size, int height); ^ ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:231:72: error: no member named 'Preferences' in 'MainWindow' connect(actionPreferences, &QAction::triggered, this, &MainWindow::Preferences); ~~^ In file included from ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:1: In file included from /Users/timo/kojan/build-Valentina-Desktop_Qt_5_6_0_clang_64bit-Debug/src/app/valentina/../../../../valentina-bojan/src/app/valentina/stable.h:47: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtGui.framework/Headers/QtGui:3: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtGui.framework/Headers/QtGuiDepends:3: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/QtCore:4: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qabstractanimation.h:37: /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobject.h:224:9: error: static_assert failed "The slot requires more arguments than the signal provides." Q_STATIC_ASSERT_X(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount), ^~~~~~~~~~~~~~~~~ /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qglobal.h:725:47: note: expanded from macro 'Q_STATIC_ASSERT_X' #define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message) ^ ~~~ ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:227:5: note: in instantiation of function template specialization 'QObject::connect<void (QAction::)(bool), bool (MainWindow::)(const QString &, int, int)>' requested here connect(actionOpenTape, &QAction::triggered, this, &MainWindow::CreateMeasurements); ^ In file included from ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:1: In file included from /Users/timo/kojan/build-Valentina-Desktop_Qt_5_6_0_clang_64bit-Debug/src/app/valentina/../../../../valentina-bojan/src/app/valentina/stable.h:47: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtGui.framework/Headers/QtGui:3: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtGui.framework/Headers/QtGuiDepends:3: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/QtCore:4: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qabstractanimation.h:37: /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobject.h:226:9: error: static_assert failed "Signal and slot arguments are not compatible." Q_STATIC_ASSERT_X((QtPrivate::CheckCompatibleArguments<typename SignalType::Arguments, typename SlotType::Arguments>::value), ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qglobal.h:725:47: note: expanded from macro 'Q_STATIC_ASSERT_X' #define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message) ^ ~~~ In file included from ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:1: In file included from /Users/timo/kojan/build-Valentina-Desktop_Qt_5_6_0_clang_64bit-Debug/src/app/valentina/../../../../valentina-bojan/src/app/valentina/stable.h:47: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtGui.framework/Headers/QtGui:3: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtGui.framework/Headers/QtGuiDepends:3: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/QtCore:4: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qabstractanimation.h:37: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobject.h:40: In file included from /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobjectdefs.h:43: /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobjectdefs_impl.h:73:55: error: no type named 'Car' in 'QtPrivate::List<>' typedef typename List_Append<List<typename L::Car>,typename List_Left<typename L::Cdr, N - 1>::Value>::Value Value; ~~^~~ /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobjectdefs_impl.h:73:69: note: in instantiation of template class 'QtPrivate::List_Left<QtPrivate::List<>, 2>' requested here typedef typename List_Append<List<typename L::Car>,typename List_Left<typename L::Cdr, N - 1>::Value>::Value Value; ^ /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobject.h:237:82: note: in instantiation of template class 'QtPrivate::List_Left<QtPrivate::List<bool>, 3>' requested here new QtPrivate::QSlotObject<Func2, typename QtPrivate::List_Left<typename SignalType::Arguments, SlotType::ArgumentCount>::Value, ^ ../../../../valentina-bojan/src/app/valentina/mainwindow.cpp:227:5: note: in instantiation of function template specialization 'QObject::connect<void (QAction::)(bool), bool (MainWindow::)(const QString &, int, int)>' requested here connect(actionOpenTape, &QAction::triggered, this, &MainWindow::CreateMeasurements); ^ 2 warnings and 5 errors generated. make[3]: [obj/mainwindow.o] Error 1 make[2]: [sub-valentina-make_first] Error 2 make[1]: [sub-app-make_first] Error 2 make: [sub-src-make_first] Error 2 22:01:02: The process "/usr/bin/make" exited with code 2. Error while building/deploying project Valentina (kit: Desktop Qt 5.6.0 clang 64bit) When executing step "Make" 22:01:02: Elapsed time: 00:09.

  78. Timo Virtaneva

    Another try. I'm not absolutely which of these is the fatal one

    valentina-bojan/src/app/valentina/mainwindow.cpp:227: error: no member named 'CreateMeasurements' in 'MainWindow'; did you mean '::MainWindow::UpdateMeasurements'? connect(actionOpenTape, &QAction::triggered, this, &MainWindow::CreateMeasurements);

    valentina-bojan/src/app/valentina/mainwindow.cpp:231: error: no member named 'Preferences' in 'MainWindow' connect(actionPreferences, &QAction::triggered, this, &MainWindow::Preferences);

    /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobject.h:224: error: static_assert failed "The slot requires more arguments than the signal provides." Q_STATIC_ASSERT_X(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount),

    /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobject.h:226: error: static_assert failed "Signal and slot arguments are not compatible." Q_STATIC_ASSERT_X((QtPrivate::CheckCompatibleArguments<typename SignalType::Arguments, typename SlotType::Arguments>::value),

    /Users/timo/Qt/5.6/clang_64/lib/QtCore.framework/Headers/qobjectdefs_impl.h:73: error: no type named 'Car' in 'QtPrivate::List<>' typedef typename List_Append<List<typename L::Car>,typename List_Left<typename L::Cdr, N - 1>::Value>::Value Value;

  79. Susan Spencer

    I built Bojan's fork, feature branch, in Qt 5.5.1 on Ubuntu 14.04 64-bit, without error. Most of the functionality is present, except these two areas:

    1. centering the text for pattern number, customer name, and date. Currently these fields are left-justified in Detail mode and Layout mode. (see attached .png files)
    2. date should be day month year. Currently the date is only the year in Detail mode and Layout moe. (see attached .png files)
  80. Roman Telezhynskyi repo owner

    @Stinde100, wait when Bojan merge my changes and try compile again. I also want hear you think about new labels.

  81. Timo Virtaneva

    Great!

    It looks stunning. This solves all pattern piece management problems and significantly enhances Valentina. All the basic stuff is included.

    You have done a super job. Thanks.

    A small suggestion, personally I would like to have an optional info field of the used measurement table in the pattern properties. I need this info for verification purposes, if I use the same printed patterns after a year or so. By checking critical measurements of the customer, I might not need to reprint the patterns.

  82. Roman Telezhynskyi repo owner

    A small suggestion, personally I would like to have an optional info field of the used measurement table in the pattern properties. I need this info for verification purposes, if I use the same printed patterns after a year or so. By checking critical measurements of the customer, I might not need to reprint the patterns.

    Can you try to explain again? Because i can't understand what exactly do you want. Should this information be printed on detail?

  83. Bojan Kverh

    Timo, I am glad that you like this feature. :) It should be no problem adding another info field to pattern properties, but just like Roman I would also like to know, if it should be printed on the detail too.

  84. Roman Telezhynskyi repo owner

    Ok, now i understand. So, we need an option to hide/show the field. But name of the field take automatically. Hide the field if measurements were not connected to pattern.

  85. Bojan Kverh

    Let me see, if I understand it correctly. :) There is a <measurement> tag in the VPattern DOM tree (which contains the file, from where the measurements are read, if I am not mistaked) and you would like to have a checkbox to display/hide this file name in pattern properties dialog. If there is no <measurement> tag, then this checkbox is not shown at all.

  86. Log in to comment