Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 47 additions & 20 deletions include/dbe/FileInfo.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,59 @@ namespace dbe
class FileInfo;
} // namespace Ui

class FileInfo : public QWidget {
Q_OBJECT

class FileInfo {
public:
FileInfo(QString filename, QWidget* parent=0);
~FileInfo() = default;
explicit FileInfo(const QString& filename);

void keyPressEvent(QKeyEvent* event) override;
const QString& name(){return m_filename;};
const QString& short_name(){return m_short_name;};

static void show_file_info(const QString& filename);
static void setup_paths();
static QList<QUrl> get_path_urls();
static QStringList get_path_list();
static QString prune_path(QString file);

static const QString& data_path();
static void update_data_path(const QString& path);
static const QString& schema_path();
static void update_schema_path(const QString& path);
static bool match_path(const QString& file,
const QString& top_file,
const QStringList& includes);
static void parse_all_objects();
static QString check_file_includes(const QString& file);
bool check_includes();
const QString& message() const {return m_message;};
const std::map<QString, const tref>& objects() const {return m_objects;};

const std::set<QString>& missing_schema() const {return m_missing_schema;};
const std::set<QString>& missing_data() const {return m_missing_data;};

void parse_objects();

private:
static QStringList s_path_list;
static QList<QUrl> s_path_urls;
static QString s_schema_path;
static QString s_data_path;

QString m_filename;
QString m_short_name;
QString m_message;
std::map<QString, const tref> m_objects;
std::set<QString> m_missing_schema;
std::set<QString> m_missing_data;
};


class FileInfoWidget : public QWidget {
Q_OBJECT
public:
FileInfoWidget(QString filename, QWidget* parent=0);
~FileInfoWidget() = default;

void keyPressEvent(QKeyEvent* event) override;

static void show_file_info(const QString& filename);

private slots:
void accept();
Expand Down Expand Up @@ -68,26 +103,18 @@ namespace dbe
private:
void parse_objects();
void parse_includes();
bool check_includes();

Ui::FileInfo* m_ui;
std::map<QString, const tref> m_obj_map;
QString m_filename;

FileInfo m_file;
bool m_readonly{false};
QMenu* m_schema_menu{nullptr};
QMenu* m_data_menu{nullptr};
QMenu* m_object_menu{nullptr};
QUuid const m_uuid;

bool m_updating{false};

static std::map<QString, std::map<QString, const tref>> s_obj_map;
static std::map<QString, std::set<QString>> s_missing_schema_map;
static std::map<QString, std::set<QString>> s_missing_data_map;

static QStringList s_path_list;
static QList<QUrl> s_path_urls;
static QString s_schema_path;
static QString s_data_path;
};

} //namespace dbe
#endif // DBE_FILEINFO_H
6 changes: 3 additions & 3 deletions src/internal/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -440,12 +440,12 @@ bool dbe::MainWindow::slot_commit_database ( bool Exit )

if ( DialogResult )
{
FileInfo::parse_all_objects();
for (auto file : dbe::confaccessor::uncommitted_files()) {
auto message = FileInfo::check_file_includes(QString::fromStdString(file));
FileInfo info(QString::fromStdString(file));
auto message = info.message();
if (!message.isEmpty()) {
QMessageBox::warning ( 0, "Save database", message );
FileInfo::show_file_info(QString::fromStdString(file));
FileInfoWidget::show_file_info(info.name());
return false;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/structure/CustomFileView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ void dbe::CustomFileView::file_info_slot(QModelIndex index) {
index.parent() ) ).toString();
auto full_name = path + "/" + file;

FileInfo::show_file_info(full_name);
FileInfoWidget::show_file_info(full_name);
}

void dbe::CustomFileView::LaunchIncludeEditorSlot()
Expand Down
Loading
Loading