diff --git a/src/resources/icons/corner_menu.svg b/src/resources/icons/corner_menu.svg
index c1a71c81..f7202eaa 100644
--- a/src/resources/icons/corner_menu.svg
+++ b/src/resources/icons/corner_menu.svg
@@ -3,7 +3,7 @@
diff --git a/src/resources/icons/corner_menu_cur.svg b/src/resources/icons/corner_menu_cur.svg
index 77a129bf..e290311b 100644
--- a/src/resources/icons/corner_menu_cur.svg
+++ b/src/resources/icons/corner_menu_cur.svg
@@ -3,7 +3,7 @@
diff --git a/src/resources/icons/corner_tablist.svg b/src/resources/icons/corner_tablist.svg
index edf92f3d..b20efa2c 100644
--- a/src/resources/icons/corner_tablist.svg
+++ b/src/resources/icons/corner_tablist.svg
@@ -5,7 +5,7 @@
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-
+
diff --git a/src/resources/icons/corner_tablist_cur.svg b/src/resources/icons/corner_tablist_cur.svg
index 1007853e..4a2770b2 100644
--- a/src/resources/icons/corner_tablist_cur.svg
+++ b/src/resources/icons/corner_tablist_cur.svg
@@ -5,7 +5,7 @@
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
-
+
diff --git a/src/resources/icons/editing_modified.svg b/src/resources/icons/editing_modified.svg
new file mode 100644
index 00000000..9ae66550
--- /dev/null
+++ b/src/resources/icons/editing_modified.svg
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/src/veditwindow.cpp b/src/veditwindow.cpp
index 1bf25137..3d92abaf 100644
--- a/src/veditwindow.cpp
+++ b/src/veditwindow.cpp
@@ -26,6 +26,7 @@ VEditWindow::VEditWindow(VNote *vnote, VEditArea *editArea, QWidget *parent)
// Explicit speficy in macOS.
setUsesScrollButtons(true);
+ setElideMode(Qt::ElideRight);
setTabsClosable(true);
setMovable(true);
setContextMenuPolicy(Qt::CustomContextMenu);
@@ -150,18 +151,18 @@ void VEditWindow::initTabActions()
void VEditWindow::setupCornerWidget()
{
- // Left corner button
+ // Left button
leftBtn = new QPushButton(QIcon(":/resources/icons/corner_tablist.svg"),
"", this);
leftBtn->setProperty("CornerBtn", true);
+ leftBtn->setToolTip(tr("Opened Notes List"));
VOpenedListMenu *leftMenu = new VOpenedListMenu(this);
leftMenu->setToolTipsVisible(true);
connect(leftMenu, &VOpenedListMenu::fileTriggered,
this, &VEditWindow::tabListJump);
leftBtn->setMenu(leftMenu);
- setCornerWidget(leftBtn, Qt::TopLeftCorner);
- // Right corner button
+ // Right button
// Actions
splitAct = new QAction(QIcon(":/resources/icons/split_window.svg"),
tr("Split"), this);
@@ -180,14 +181,25 @@ void VEditWindow::setupCornerWidget()
rightBtn = new QPushButton(QIcon(":/resources/icons/corner_menu.svg"),
"", this);
rightBtn->setProperty("CornerBtn", true);
+ rightBtn->setToolTip(tr("Menu"));
QMenu *rightMenu = new QMenu(this);
rightMenu->setToolTipsVisible(true);
rightMenu->addAction(splitAct);
rightMenu->addAction(removeSplitAct);
rightBtn->setMenu(rightMenu);
- setCornerWidget(rightBtn, Qt::TopRightCorner);
connect(rightMenu, &QMenu::aboutToShow,
this, &VEditWindow::updateSplitMenu);
+
+ // Move all buttons to the right corner.
+ QWidget *widget = new QWidget(this);
+ QHBoxLayout *layout = new QHBoxLayout();
+ layout->addWidget(leftBtn);
+ layout->addWidget(rightBtn);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
+ widget->setLayout(layout);
+
+ setCornerWidget(widget, Qt::TopRightCorner);
}
void VEditWindow::splitWindow(bool p_right)
@@ -438,8 +450,14 @@ void VEditWindow::updateTabInfo(int p_index)
setTabText(p_index, generateTabText(p_index, file->getName(),
file->isModified(), file->isModifiable()));
setTabToolTip(p_index, generateTooltip(file));
- setTabIcon(p_index, editMode ? QIcon(":/resources/icons/editing.svg") :
- QIcon(":/resources/icons/reading.svg"));
+
+ QString iconUrl(":/resources/icons/reading.svg");
+ if (editMode) {
+ iconUrl = file->isModified() ? ":/resources/icons/editing_modified.svg"
+ : ":/resources/icons/editing.svg";
+ }
+
+ setTabIcon(p_index, QIcon(iconUrl));
}
void VEditWindow::updateAllTabsSequence()
diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp
index 459c2a79..a6593ddc 100644
--- a/src/vmainwindow.cpp
+++ b/src/vmainwindow.cpp
@@ -661,8 +661,8 @@ void VMainWindow::initFileMenu()
// Import notes from files.
m_importNoteAct = newAction(QIcon(":/resources/icons/import_note.svg"),
- tr("&Import Notes From Files"), this);
- m_importNoteAct->setToolTip(tr("Import notes from external files into current folder by copy"));
+ tr("&New Notes From Files"), this);
+ m_importNoteAct->setToolTip(tr("Create notes from external files in current folder by copy"));
connect(m_importNoteAct, &QAction::triggered,
this, &VMainWindow::importNoteFromFile);
m_importNoteAct->setEnabled(false);
@@ -716,7 +716,12 @@ void VMainWindow::initFileMenu()
this);
if (ret == QMessageBox::Ok) {
+#if defined(Q_OS_MACOS) || defined(Q_OS_MAC)
+ // On macOS, it seems that we could not open that ini file directly.
+ QUrl url = QUrl::fromLocalFile(vconfig.getConfigFolder());
+#else
QUrl url = QUrl::fromLocalFile(vconfig.getConfigFilePath());
+#endif
QDesktopServices::openUrl(url);
}
});
@@ -996,7 +1001,7 @@ void VMainWindow::importNoteFromFile()
{
static QString lastPath = QDir::homePath();
QStringList files = QFileDialog::getOpenFileNames(this,
- tr("Select Files (HTML or Markdown) To Import"),
+ tr("Select Files (HTML or Markdown) To Create Notes"),
lastPath);
if (files.isEmpty()) {
return;
@@ -1012,13 +1017,15 @@ void VMainWindow::importNoteFromFile()
++failedFiles;
}
}
- QMessageBox msgBox(QMessageBox::Information, tr("Import Notes From File"),
- tr("Imported notes: %1 succeed, %2 failed.")
+
+ QMessageBox msgBox(QMessageBox::Information, tr("New Notes From Files"),
+ tr("Created notes: %1 succeed, %2 failed.")
.arg(files.size() - failedFiles).arg(failedFiles),
QMessageBox::Ok, this);
if (failedFiles > 0) {
- msgBox.setInformativeText(tr("Fail to import files maybe due to name conflicts."));
+ msgBox.setInformativeText(tr("Fail to create notes from files maybe due to name conflicts."));
}
+
msgBox.exec();
}
@@ -1555,11 +1562,12 @@ void VMainWindow::closeEvent(QCloseEvent *event)
vconfig.setMinimizeToSystemTray(0);
isExit = true;
} else {
+ event->ignore();
return;
}
}
- if (isExit) {
+ if (isExit || !m_trayIcon->isVisible()) {
if (!editArea->closeAllFiles(false)) {
// Fail to close all the opened files, cancel closing app
event->ignore();
diff --git a/src/vnote.qrc b/src/vnote.qrc
index 1d0d8a67..50e0b0b8 100644
--- a/src/vnote.qrc
+++ b/src/vnote.qrc
@@ -117,5 +117,6 @@
resources/icons/inline_code.svg
resources/icons/close_note_tb.svg
resources/icons/32x32/vnote.png
+ resources/icons/editing_modified.svg
diff --git a/src/vnotebookselector.cpp b/src/vnotebookselector.cpp
index b81420e0..f18115c7 100644
--- a/src/vnotebookselector.cpp
+++ b/src/vnotebookselector.cpp
@@ -165,8 +165,11 @@ bool VNotebookSelector::newNotebook()
QString info(tr("Please type the name of the notebook and "
"choose a folder as the Root Folder of the notebook."));
info += "\n";
- info += tr("The root folder should be used EXCLUSIVELY by VNote and "
+ info += tr("* The root folder should be used EXCLUSIVELY by VNote and "
"it is recommended to be EMPTY.");
+ info += "\n";
+ info += tr("* A previously created notebook could be imported into VNote "
+ "by choosing its root folder.");
QString defaultName;
QString defaultPath;
diff --git a/src/vopenedlistmenu.cpp b/src/vopenedlistmenu.cpp
index 0f91860e..2f2b3b29 100644
--- a/src/vopenedlistmenu.cpp
+++ b/src/vopenedlistmenu.cpp
@@ -25,9 +25,17 @@ static bool fileComp(const VOpenedListMenu::ItemInfo &a,
} else if (notebooka > notebookb) {
return false;
} else {
- QString patha = a.file->retriveRelativePath().toLower();
- QString pathb = b.file->retriveRelativePath().toLower();
- return patha < pathb;
+ QString patha = a.file->retriveBasePath();
+ QString pathb = b.file->retriveBasePath();
+#if defined(Q_OS_WIN)
+ patha = patha.toLower();
+ pathb = pathb.toLower();
+#endif
+ if (patha == pathb) {
+ return a.index < b.index;
+ } else {
+ return patha < pathb;
+ }
}
}