{"action":"created","comment":{"url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/comments/60218319","id":60218319,"diff_hunk":"@@ -0,0 +1,122 @@\n+/****************************************************************************\n+**\n+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).\n+** Contact: http://www.qt-project.org/legal\n+**\n+** This file is part of the QtGui module of the Qt Toolkit.\n+**\n+** $QT_BEGIN_LICENSE:LGPL$\n+** Commercial License Usage\n+** Licensees holding valid commercial Qt licenses may use this file in\n+** accordance with the commercial license agreement provided with the\n+** Software or, alternatively, in accordance with the terms contained in\n+** a written agreement between you and Digia.  For licensing terms and\n+** conditions see http://qt.digia.com/licensing.  For further information\n+** use the contact form at http://qt.digia.com/contact-us.\n+**\n+** GNU Lesser General Public License Usage\n+** Alternatively, this file may be used under the terms of the GNU Lesser\n+** General Public License version 2.1 as published by the Free Software\n+** Foundation and appearing in the file LICENSE.LGPL included in the\n+** packaging of this file.  Please review the following information to\n+** ensure the GNU Lesser General Public License version 2.1 requirements\n+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n+**\n+** In addition, as a special exception, Digia gives you certain additional\n+** rights.  These rights are described in the Digia Qt LGPL Exception\n+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.\n+**\n+** GNU General Public License Usage\n+** Alternatively, this file may be used under the terms of the GNU\n+** General Public License version 3.0 as published by the Free Software\n+** Foundation and appearing in the file LICENSE.GPL included in the\n+** packaging of this file.  Please review the following information to\n+** ensure the GNU General Public License version 3.0 requirements will be\n+** met: http://www.gnu.org/copyleft/gpl.html.\n+**\n+**\n+** $QT_END_LICENSE$\n+**\n+****************************************************************************/\n+\n+#ifndef QZLIBREADER_H\n+#define QZLIBREADER_H\n+\n+\n+//\n+//  W A R N I N G\n+//  -------------\n+//\n+// This file is not part of the Qt API.  It exists for the convenience\n+// of the QZipReader class.  This header file may change from\n+// version to version without notice, or even be removed.\n+//\n+// We mean it.\n+//\n+\n+#include <QtCore/qdatetime.h>\n+#include <QtCore/qfile.h>\n+#include <QtCore/qstring.h>\n+\n+QT_BEGIN_NAMESPACE\n+\n+class QZLibReaderPrivate;\n+\n+class Q_GUI_EXPORT QZLibReader\n+{\n+public:\n+    QZLibReader(const QString &fileName, QIODevice::OpenMode mode = QIODevice::ReadOnly );\n+\n+    explicit QZLibReader(QIODevice *device);\n+    ~QZLibReader();\n+\n+    QIODevice* device() const;\n+\n+    bool isReadable() const;\n+    bool exists() const;\n+\n+    struct Q_GUI_EXPORT FileInfo\n+    {\n+        FileInfo();\n+        FileInfo(const FileInfo &other);\n+        ~FileInfo();\n+        FileInfo &operator=(const FileInfo &other);\n+        bool isValid() const;\n+        QString filePath;\n+        uint isDir : 1;\n+        uint isFile : 1;\n+        uint isSymLink : 1;\n+        QFile::Permissions permissions;\n+        uint crc32;\n+        qint64 size;\n+        QDateTime lastModified;\n+        void *d;\n+    };\n+\n+    QList<FileInfo> fileInfoList() const;\n+    int count() const;\n+\n+    FileInfo entryInfoAt(int index) const;\n+    QByteArray fileData(const QString &fileName) const;\n+    bool extractAll(const QString &destinationDir) const;\n+\n+    enum Status {\n+        NoError,\n+        FileReadError,\n+        FileOpenError,\n+        FilePermissionsError,\n+        FileError\n+    };\n+\n+    Status status() const;\n+\n+    void close();\n+\n+private:\n+    QZLibReaderPrivate *d;\n+    Q_DISABLE_COPY(QZLibReader)\n+};\n+\n+QT_END_NAMESPACE\n+\n+#endif // QZLIBREADER_H","path":"src/xlsx/qzlibreader.h","position":122,"original_position":122,"commit_id":"62c41adb7b7dcfac0ad773e85e7fa4990736ff0f","original_commit_id":"62c41adb7b7dcfac0ad773e85e7fa4990736ff0f","user":{"login":"VSRonin","id":1579576,"avatar_url":"https://avatars.githubusercontent.com/u/1579576?v=3","gravatar_id":"","url":"https://api.github.com/users/VSRonin","html_url":"https://github.com/VSRonin","followers_url":"https://api.github.com/users/VSRonin/followers","following_url":"https://api.github.com/users/VSRonin/following{/other_user}","gists_url":"https://api.github.com/users/VSRonin/gists{/gist_id}","starred_url":"https://api.github.com/users/VSRonin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VSRonin/subscriptions","organizations_url":"https://api.github.com/users/VSRonin/orgs","repos_url":"https://api.github.com/users/VSRonin/repos","events_url":"https://api.github.com/users/VSRonin/events{/privacy}","received_events_url":"https://api.github.com/users/VSRonin/received_events","type":"User","site_admin":false},"body":"No need to import a file part of Qt sources","created_at":"2016-04-19T12:06:55Z","updated_at":"2016-04-19T12:06:55Z","html_url":"https://github.com/VSRonin/QtXlsxWriter/pull/1#discussion_r60218319","pull_request_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/comments/60218319"},"html":{"href":"https://github.com/VSRonin/QtXlsxWriter/pull/1#discussion_r60218319"},"pull_request":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1","id":66992286,"html_url":"https://github.com/VSRonin/QtXlsxWriter/pull/1","diff_url":"https://github.com/VSRonin/QtXlsxWriter/pull/1.diff","patch_url":"https://github.com/VSRonin/QtXlsxWriter/pull/1.patch","issue_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues/1","number":1,"state":"open","locked":false,"title":"Backport to Qt4.8","user":{"login":"olegyurchenko","id":16589828,"avatar_url":"https://avatars.githubusercontent.com/u/16589828?v=3","gravatar_id":"","url":"https://api.github.com/users/olegyurchenko","html_url":"https://github.com/olegyurchenko","followers_url":"https://api.github.com/users/olegyurchenko/followers","following_url":"https://api.github.com/users/olegyurchenko/following{/other_user}","gists_url":"https://api.github.com/users/olegyurchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/olegyurchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olegyurchenko/subscriptions","organizations_url":"https://api.github.com/users/olegyurchenko/orgs","repos_url":"https://api.github.com/users/olegyurchenko/repos","events_url":"https://api.github.com/users/olegyurchenko/events{/privacy}","received_events_url":"https://api.github.com/users/olegyurchenko/received_events","type":"User","site_admin":false},"body":"For my old Qt4 project I make QtXlsxWriter simple and dirty Qt4 backport:\r\n* Insert QStringLiteral macro\r\n* Replace qt private classes QZipReader & QZipWriter to their copies QZlibReader & QZlibWriter\r\n* Few not significant changes \r\n","created_at":"2016-04-19T10:10:01Z","updated_at":"2016-04-19T12:06:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"264864369c3e229848e7fb962c4faec57ac36072","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1/commits","review_comments_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1/comments","review_comment_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/comments{/number}","comments_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues/1/comments","statuses_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/statuses/62c41adb7b7dcfac0ad773e85e7fa4990736ff0f","head":{"label":"olegyurchenko:qt4.8backport","ref":"qt4.8backport","sha":"62c41adb7b7dcfac0ad773e85e7fa4990736ff0f","user":{"login":"olegyurchenko","id":16589828,"avatar_url":"https://avatars.githubusercontent.com/u/16589828?v=3","gravatar_id":"","url":"https://api.github.com/users/olegyurchenko","html_url":"https://github.com/olegyurchenko","followers_url":"https://api.github.com/users/olegyurchenko/followers","following_url":"https://api.github.com/users/olegyurchenko/following{/other_user}","gists_url":"https://api.github.com/users/olegyurchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/olegyurchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olegyurchenko/subscriptions","organizations_url":"https://api.github.com/users/olegyurchenko/orgs","repos_url":"https://api.github.com/users/olegyurchenko/repos","events_url":"https://api.github.com/users/olegyurchenko/events{/privacy}","received_events_url":"https://api.github.com/users/olegyurchenko/received_events","type":"User","site_admin":false},"repo":{"id":49482473,"name":"QtXlsxWriter","full_name":"olegyurchenko/QtXlsxWriter","owner":{"login":"olegyurchenko","id":16589828,"avatar_url":"https://avatars.githubusercontent.com/u/16589828?v=3","gravatar_id":"","url":"https://api.github.com/users/olegyurchenko","html_url":"https://github.com/olegyurchenko","followers_url":"https://api.github.com/users/olegyurchenko/followers","following_url":"https://api.github.com/users/olegyurchenko/following{/other_user}","gists_url":"https://api.github.com/users/olegyurchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/olegyurchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olegyurchenko/subscriptions","organizations_url":"https://api.github.com/users/olegyurchenko/orgs","repos_url":"https://api.github.com/users/olegyurchenko/repos","events_url":"https://api.github.com/users/olegyurchenko/events{/privacy}","received_events_url":"https://api.github.com/users/olegyurchenko/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/olegyurchenko/QtXlsxWriter","description":".xlsx file reader and writer for Qt5","fork":true,"url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter","forks_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/forks","keys_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/teams","hooks_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/hooks","issue_events_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/issues/events{/number}","events_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/events","assignees_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/assignees{/user}","branches_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/branches{/branch}","tags_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/tags","blobs_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/git/refs{/sha}","trees_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/statuses/{sha}","languages_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/languages","stargazers_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/stargazers","contributors_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/contributors","subscribers_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/subscribers","subscription_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/subscription","commits_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/commits{/sha}","git_commits_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/git/commits{/sha}","comments_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/comments{/number}","issue_comment_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/issues/comments{/number}","contents_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/contents/{+path}","compare_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/merges","archive_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/downloads","issues_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/issues{/number}","pulls_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/pulls{/number}","milestones_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/milestones{/number}","notifications_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/labels{/name}","releases_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/releases{/id}","deployments_url":"https://api.github.com/repos/olegyurchenko/QtXlsxWriter/deployments","created_at":"2016-01-12T07:18:11Z","updated_at":"2016-01-12T07:18:12Z","pushed_at":"2016-01-12T07:34:34Z","git_url":"git://github.com/olegyurchenko/QtXlsxWriter.git","ssh_url":"git@github.com:olegyurchenko/QtXlsxWriter.git","clone_url":"https://github.com/olegyurchenko/QtXlsxWriter.git","svn_url":"https://github.com/olegyurchenko/QtXlsxWriter","homepage":"http://qtxlsx.debao.me","size":1989,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"VSRonin:master","ref":"master","sha":"ad90b6a2c21b300138ceb9fe9030a5917230f92d","user":{"login":"VSRonin","id":1579576,"avatar_url":"https://avatars.githubusercontent.com/u/1579576?v=3","gravatar_id":"","url":"https://api.github.com/users/VSRonin","html_url":"https://github.com/VSRonin","followers_url":"https://api.github.com/users/VSRonin/followers","following_url":"https://api.github.com/users/VSRonin/following{/other_user}","gists_url":"https://api.github.com/users/VSRonin/gists{/gist_id}","starred_url":"https://api.github.com/users/VSRonin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VSRonin/subscriptions","organizations_url":"https://api.github.com/users/VSRonin/orgs","repos_url":"https://api.github.com/users/VSRonin/repos","events_url":"https://api.github.com/users/VSRonin/events{/privacy}","received_events_url":"https://api.github.com/users/VSRonin/received_events","type":"User","site_admin":false},"repo":{"id":30245547,"name":"QtXlsxWriter","full_name":"VSRonin/QtXlsxWriter","owner":{"login":"VSRonin","id":1579576,"avatar_url":"https://avatars.githubusercontent.com/u/1579576?v=3","gravatar_id":"","url":"https://api.github.com/users/VSRonin","html_url":"https://github.com/VSRonin","followers_url":"https://api.github.com/users/VSRonin/followers","following_url":"https://api.github.com/users/VSRonin/following{/other_user}","gists_url":"https://api.github.com/users/VSRonin/gists{/gist_id}","starred_url":"https://api.github.com/users/VSRonin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VSRonin/subscriptions","organizations_url":"https://api.github.com/users/VSRonin/orgs","repos_url":"https://api.github.com/users/VSRonin/repos","events_url":"https://api.github.com/users/VSRonin/events{/privacy}","received_events_url":"https://api.github.com/users/VSRonin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/VSRonin/QtXlsxWriter","description":".xlsx file reader and writer for Qt5","fork":true,"url":"https://api.github.com/repos/VSRonin/QtXlsxWriter","forks_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/forks","keys_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/teams","hooks_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/hooks","issue_events_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues/events{/number}","events_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/events","assignees_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/assignees{/user}","branches_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/branches{/branch}","tags_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/tags","blobs_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/git/refs{/sha}","trees_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/statuses/{sha}","languages_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/languages","stargazers_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/stargazers","contributors_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/contributors","subscribers_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/subscribers","subscription_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/subscription","commits_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/commits{/sha}","git_commits_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/git/commits{/sha}","comments_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/comments{/number}","issue_comment_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues/comments{/number}","contents_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/contents/{+path}","compare_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/merges","archive_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/downloads","issues_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues{/number}","pulls_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls{/number}","milestones_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/milestones{/number}","notifications_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/labels{/name}","releases_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/releases{/id}","deployments_url":"https://api.github.com/repos/VSRonin/QtXlsxWriter/deployments","created_at":"2015-02-03T14:05:03Z","updated_at":"2016-04-19T10:22:54Z","pushed_at":"2016-04-19T10:10:02Z","git_url":"git://github.com/VSRonin/QtXlsxWriter.git","ssh_url":"git@github.com:VSRonin/QtXlsxWriter.git","clone_url":"https://github.com/VSRonin/QtXlsxWriter.git","svn_url":"https://github.com/VSRonin/QtXlsxWriter","homepage":"http://qtxlsx.debao.me","size":2026,"stargazers_count":2,"watchers_count":2,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1"},"html":{"href":"https://github.com/VSRonin/QtXlsxWriter/pull/1"},"issue":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues/1"},"comments":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/VSRonin/QtXlsxWriter/statuses/62c41adb7b7dcfac0ad773e85e7fa4990736ff0f"}}}}