import com.trolltech.qt.gui.QColor;
import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QComboBox.InsertPolicy;
+import com.trolltech.qt.gui.QCursor;
import com.trolltech.qt.gui.QDesktopServices;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QFileDialog;
private final ConfigConnectionPage connectionPage;\r
private final ConfigDebugPage debugPage;\r
private final ConfigAppearancePage appearancePage;\r
- private final ConfigShowColumnsPage columnsPage;\r
private final ConfigIndexPage indexPage;\r
private final ConfigShowEditorButtonsPage editorButtonsPage;\r
\r
appearancePage = new ConfigAppearancePage(this);\r
indexPage = new ConfigIndexPage(this);\r
debugPage = new ConfigDebugPage(this);\r
- columnsPage = new ConfigShowColumnsPage(this);\r
editorButtonsPage = new ConfigShowEditorButtonsPage(this);\r
pagesWidget.addWidget(appearancePage);\r
pagesWidget.addWidget(indexPage);\r
pagesWidget.addWidget(connectionPage);\r
- pagesWidget.addWidget(columnsPage);\r
pagesWidget.addWidget(editorButtonsPage);\r
pagesWidget.addWidget(debugPage);\r
\r
\r
Global.setSyncInterval(connectionPage.getSyncInterval());\r
\r
- Global.saveColumnVisible("dateCreated", columnsPage.showDateCreated());\r
- Global.saveColumnVisible("dateChanged", columnsPage.showDateChanged());\r
- Global.saveColumnVisible("dateSubject", columnsPage.showDateSubject());\r
- Global.saveColumnVisible("author", columnsPage.showAuthor());\r
- Global.saveColumnVisible("sourceUrl", columnsPage.showSourceUrl());\r
- Global.saveColumnVisible("synchronized", columnsPage.showSynchronized());\r
- Global.saveColumnVisible("notebook", columnsPage.showNotebook());\r
- Global.saveColumnVisible("tags", columnsPage.showTags());\r
\r
Global.saveEditorButtonsVisible("undo", editorButtonsPage.showUndo());\r
Global.saveEditorButtonsVisible("redo", editorButtonsPage.showRedo());\r
configButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());\r
configButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);\r
configButton.setIcon(new QIcon(iconPath+"synchronize.png"));\r
- \r
- QListWidgetItem columnsButton = new QListWidgetItem(contentsWidget);\r
- columnsButton.setText(tr("Hide Columns"));\r
- columnsButton.setTextAlignment(AlignmentFlag.AlignHCenter.value());\r
- columnsButton.setFlags(ItemFlag.ItemIsSelectable, ItemFlag.ItemIsEnabled);\r
- columnsButton.setIcon(new QIcon(iconPath+"show-columns.png"));\r
\r
QListWidgetItem editorButton = new QListWidgetItem(contentsWidget);\r
editorButton.setText(tr("Hide Edit Buttons"));\r
appearancePage.setTimeFormat(Global.getTimeFormat());\r
appearancePage.setStyle(Global.getStyle());\r
appearancePage.setStandardPalette(Global.useStandardPalette());\r
- \r
- columnsPage.setDateCreated(Global.isColumnVisible("dateCreated"));\r
- columnsPage.setDateSubject(Global.isColumnVisible("dateSubject"));\r
- columnsPage.setDateChanged(Global.isColumnVisible("dateChanged"));\r
- columnsPage.setAuthor(Global.isColumnVisible("author"));\r
- columnsPage.setSourceUrl(Global.isColumnVisible("sourceUrl"));\r
- columnsPage.setTags(Global.isColumnVisible("tags"));\r
- columnsPage.setSynchronized(Global.isColumnVisible("synchronized"));\r
- columnsPage.setNotebook(Global.isColumnVisible("notebook"));\r
- \r
+ \r
editorButtonsPage.setUndo(Global.isEditorButtonVisible("undo"));\r
editorButtonsPage.setRedo(Global.isEditorButtonVisible("redo"));\r
editorButtonsPage.setCut(Global.isEditorButtonVisible("cut"));\r
+++ /dev/null
-/*\r
- * This file is part of NeverNote \r
- * Copyright 2009 Randy Baumgarte\r
- * \r
- * This file may be licensed under the terms of of the\r
- * GNU General Public License Version 2 (the ``GPL'').\r
- *\r
- * Software distributed under the License is distributed\r
- * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
- * express or implied. See the GPL for the specific language\r
- * governing rights and limitations.\r
- *\r
- * You should have received a copy of the GPL along with this\r
- * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
- * or write to the Free Software Foundation, Inc.,\r
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
- *\r
-*/\r
-\r
-package cx.fbn.nevernote.dialog;\r
-\r
-import com.trolltech.qt.gui.QComboBox;\r
-import com.trolltech.qt.gui.QGroupBox;\r
-import com.trolltech.qt.gui.QHBoxLayout;\r
-import com.trolltech.qt.gui.QRadioButton;\r
-import com.trolltech.qt.gui.QVBoxLayout;\r
-import com.trolltech.qt.gui.QWidget;\r
-\r
-public class ConfigShowColumnsPage extends QWidget {\r
- private final QRadioButton showDateCreated;\r
- private final QRadioButton hideDateCreated;\r
- private final QRadioButton showDateSubject;\r
- private final QRadioButton hideDateSubject;\r
- private final QRadioButton showDateChanged;\r
- private final QRadioButton hideDateChanged;\r
- private final QRadioButton showAuthor;\r
- private final QRadioButton hideAuthor;\r
- private final QRadioButton sourceUrlShow;\r
- private final QRadioButton sourceUrlHide;\r
- private final QRadioButton showTags;\r
- private final QRadioButton hideTags;\r
- private final QRadioButton showNotebook;\r
- private final QRadioButton hideNotebook;\r
- private final QRadioButton showSynchronized;\r
- private final QRadioButton hideSynchronized;\r
-\r
- \r
- QComboBox messageCombo;\r
- public ConfigShowColumnsPage(QWidget parent) {\r
- super(parent);\r
-\r
- // Date Created Column\r
- QGroupBox dateCreatedGroup = new QGroupBox(tr("Date Created"));\r
- QHBoxLayout dateCreatedLayout = new QHBoxLayout();\r
- showDateCreated = new QRadioButton(tr("Show"));\r
- hideDateCreated = new QRadioButton(tr("Hide"));\r
- dateCreatedLayout.addWidget(showDateCreated);\r
- dateCreatedLayout.addWidget(hideDateCreated);\r
- dateCreatedLayout.setStretch(1, 100);\r
- dateCreatedGroup.setLayout(dateCreatedLayout);\r
-\r
-\r
- // Subject Date Column\r
- QGroupBox dateSubjectGroup = new QGroupBox(tr("Subject Date"));\r
- QHBoxLayout dateSubjectLayout = new QHBoxLayout();\r
- showDateSubject = new QRadioButton(tr("Show"));\r
- hideDateSubject = new QRadioButton(tr("Hide"));\r
- dateSubjectLayout.addWidget(showDateSubject);\r
- dateSubjectLayout.addWidget(hideDateSubject);\r
- dateSubjectLayout.setStretch(1, 100);\r
- dateSubjectGroup.setLayout(dateSubjectLayout);\r
-\r
-\r
- // Title Column\r
- QGroupBox sourceUrlGroup = new QGroupBox(tr("Source URL"));\r
- QHBoxLayout sourceUrlLayout = new QHBoxLayout();\r
- sourceUrlShow = new QRadioButton(tr("Show"));\r
- sourceUrlHide = new QRadioButton(tr("Hide"));\r
- sourceUrlLayout.addWidget(sourceUrlShow);\r
- sourceUrlLayout.addWidget(sourceUrlHide);\r
- sourceUrlLayout.setStretch(1, 100);\r
- sourceUrlGroup.setLayout(sourceUrlLayout);\r
-\r
- // Author Column\r
- QGroupBox authorGroup = new QGroupBox(tr("Author"));\r
- QHBoxLayout authorLayout = new QHBoxLayout();\r
- showAuthor = new QRadioButton(tr("Show"));\r
- hideAuthor = new QRadioButton(tr("Hide"));\r
- authorLayout.addWidget(showAuthor);\r
- authorLayout.addWidget(hideAuthor);\r
- authorLayout.setStretch(1, 100);\r
- authorGroup.setLayout(authorLayout);\r
-\r
- \r
- // Date Changed Column\r
- QGroupBox dateChangedGroup = new QGroupBox(tr("Date Changed"));\r
- QHBoxLayout dateChangedLayout = new QHBoxLayout();\r
- showDateChanged = new QRadioButton(tr("Show"));\r
- hideDateChanged = new QRadioButton(tr("Hide"));\r
- dateChangedLayout.addWidget(showDateChanged);\r
- dateChangedLayout.addWidget(hideDateChanged);\r
- dateChangedLayout.setStretch(1, 100);\r
- dateChangedGroup.setLayout(dateChangedLayout);\r
-\r
- // Notebook Column\r
- QGroupBox notebookGroup = new QGroupBox(tr("Notebook"));\r
- QHBoxLayout notebookLayout = new QHBoxLayout();\r
- showNotebook = new QRadioButton(tr("Show"));\r
- hideNotebook = new QRadioButton(tr("Hide"));\r
- notebookLayout.addWidget(showNotebook);\r
- notebookLayout.addWidget(hideNotebook);\r
- notebookLayout.setStretch(1, 100);\r
- notebookGroup.setLayout(notebookLayout);\r
-\r
- // Tags Column\r
- QGroupBox tagsGroup = new QGroupBox(tr("Tags"));\r
- QHBoxLayout tagsLayout = new QHBoxLayout();\r
- showTags = new QRadioButton(tr("Show"));\r
- hideTags = new QRadioButton(tr("Hide"));\r
- tagsLayout.addWidget(showTags);\r
- tagsLayout.addWidget(hideTags);\r
- tagsLayout.setStretch(1, 100);\r
- tagsGroup.setLayout(tagsLayout);\r
-\r
- // Synchronized Column\r
- QGroupBox synchronizedGroup = new QGroupBox(tr("Synchronized Indicator"));\r
- QHBoxLayout syncLayout = new QHBoxLayout();\r
- showSynchronized = new QRadioButton(tr("Show"));\r
- hideSynchronized = new QRadioButton(tr("Hide"));\r
- syncLayout.addWidget(showSynchronized);\r
- syncLayout.addWidget(hideSynchronized);\r
- syncLayout.setStretch(1, 100);\r
- synchronizedGroup.setLayout(syncLayout);\r
- \r
- QVBoxLayout mainLayout = new QVBoxLayout();\r
- mainLayout.addWidget(dateCreatedGroup);\r
- mainLayout.addWidget(dateChangedGroup);\r
- mainLayout.addWidget(dateSubjectGroup);\r
- mainLayout.addWidget(notebookGroup);\r
- mainLayout.addWidget(tagsGroup);\r
- mainLayout.addWidget(sourceUrlGroup);\r
- mainLayout.addWidget(authorGroup);\r
- mainLayout.addWidget(synchronizedGroup);\r
- mainLayout.addStretch(1);\r
- setLayout(mainLayout);\r
- }\r
- \r
- public void setDateCreated(boolean value) {\r
- if (value)\r
- showDateCreated.click();\r
- else\r
- hideDateCreated.click();\r
- }\r
- \r
- public void setDateSubject(boolean value) {\r
- if (value)\r
- showDateSubject.click();\r
- else\r
- hideDateSubject.click();\r
- }\r
-\r
- public void setDateChanged(boolean value) {\r
- if (value)\r
- showDateChanged.click();\r
- else\r
- hideDateChanged.click();\r
- }\r
-\r
- public void setAuthor(boolean value) {\r
- if (value)\r
- showAuthor.click();\r
- else\r
- hideAuthor.click();\r
- }\r
-\r
- public void setSourceUrl(boolean value) {\r
- if (value)\r
- sourceUrlShow.click();\r
- else\r
- sourceUrlHide.click();\r
- }\r
- public void setNotebook(boolean value) {\r
- if (value)\r
- showNotebook.click();\r
- else\r
- hideNotebook.click();\r
- }\r
- public void setTags(boolean value) {\r
- if (value)\r
- showTags.click();\r
- else\r
- hideTags.click();\r
- }\r
- public void setSynchronized(boolean value) {\r
- if (value)\r
- showSynchronized.click();\r
- else\r
- hideSynchronized.click();\r
- }\r
- \r
- public boolean showDateCreated() {\r
- return showDateCreated.isChecked();\r
- }\r
- public boolean showDateChanged() {\r
- return showDateChanged.isChecked();\r
- }\r
- public boolean showDateSubject() {\r
- return showDateSubject.isChecked();\r
- }\r
- public boolean showAuthor() {\r
- return showAuthor.isChecked();\r
- }\r
- public boolean showSourceUrl() {\r
- return sourceUrlShow.isChecked();\r
- }\r
- public boolean showTags() {\r
- return showTags.isChecked();\r
- }\r
- public boolean showSynchronized() {\r
- return showSynchronized.isChecked();\r
- }\r
- public boolean showNotebook() {\r
- return showNotebook.isChecked();\r
- }\r
-\r
-\r
-\r
-\r
-\r
-\r
-}
\ No newline at end of file
import com.trolltech.qt.core.QByteArray;\r
import com.trolltech.qt.core.QModelIndex;\r
import com.trolltech.qt.core.Qt;\r
+import com.trolltech.qt.core.Qt.Orientation;\r
import com.trolltech.qt.core.Qt.SortOrder;\r
import com.trolltech.qt.gui.QAbstractItemView;\r
import com.trolltech.qt.gui.QAction;\r
import com.trolltech.qt.gui.QDragEnterEvent;\r
import com.trolltech.qt.gui.QDropEvent;\r
import com.trolltech.qt.gui.QFontMetrics;\r
-import com.trolltech.qt.gui.QHeaderView;\r
import com.trolltech.qt.gui.QKeyEvent;\r
import com.trolltech.qt.gui.QKeySequence.StandardKey;\r
import com.trolltech.qt.gui.QMenu;\r
\r
\r
\r
- public QHeaderView header;\r
+ public TableViewHeader header;\r
int fontHeight;\r
public Signal1<String> rowChanged;\r
public Signal0 resetViewport;\r
\r
public TableView(ApplicationLogger l, ListManager m) {\r
logger = l;\r
- header = horizontalHeader();\r
+ header = new TableViewHeader(Orientation.Horizontal,this);\r
+ setHorizontalHeader(header);\r
header.setMovable(true);\r
+ header.subjectDateAction.toggled.connect(this, "toggleSubjectDate(Boolean)");\r
+ header.createdDateAction.toggled.connect(this, "toggleCreationDate(Boolean)");\r
+ header.changedDateAction.toggled.connect(this, "toggleChangedDate(Boolean)");\r
+ header.authorAction.toggled.connect(this, "toggleAuthor(Boolean)");\r
+ header.urlAction.toggled.connect(this, "toggleSourceUrl(Boolean)");\r
+ header.tagsAction.toggled.connect(this, "toggleTags(Boolean)");\r
+ header.notebookAction.toggled.connect(this, "toggleNotebook(Boolean)");\r
+ header.synchronizedAction.toggled.connect(this, "toggleSynchronized(Boolean)");\r
\r
noteSignal = new NoteSignal();\r
setAcceptDrops(true);\r
return verticalScrollBar().value();\r
}\r
*/\r
+ \r
+ public void toggleSubjectDate(Boolean toggle) {\r
+ Global.saveColumnVisible("dateSubject", toggle);\r
+ setColumnHidden(Global.noteTableSubjectDatePosition, !toggle);\r
+ }\r
+ \r
+ public void toggleChangedDate(Boolean toggle) {\r
+ Global.saveColumnVisible("dateChanged", toggle);\r
+ setColumnHidden(Global.noteTableChangedPosition, !toggle);\r
+ }\r
+ \r
+ \r
+ public void toggleCreationDate(Boolean toggle) {\r
+ Global.saveColumnVisible("dateCreated", toggle);\r
+ setColumnHidden(Global.noteTableCreationPosition, !toggle);\r
+ }\r
+ \r
+ public void toggleSourceUrl(Boolean toggle) {\r
+ Global.saveColumnVisible("sourceUrl", toggle);\r
+ setColumnHidden(Global.noteTableSourceUrlPosition, !toggle);\r
+ }\r
+ \r
+ public void toggleAuthor(Boolean toggle) {\r
+ Global.saveColumnVisible("author", toggle);\r
+ setColumnHidden(Global.noteTableAuthorPosition, !toggle);\r
+ }\r
+ \r
+ public void toggleNotebook(Boolean toggle) {\r
+ Global.saveColumnVisible("notebook", toggle);\r
+ setColumnHidden(Global.noteTableNotebookPosition, !toggle);\r
+ }\r
+ \r
+ public void toggleTags(Boolean toggle) {\r
+ Global.saveColumnVisible("tags", toggle);\r
+ setColumnHidden(Global.noteTableTagPosition, !toggle);\r
+ }\r
+ \r
+ public void toggleSynchronized(Boolean toggle) {\r
+ Global.saveColumnVisible("synchronized", toggle);\r
+ setColumnHidden(Global.noteTableSynchronizedPosition, !toggle);\r
+ }\r
}\r
--- /dev/null
+package cx.fbn.nevernote.gui;\r
+\r
+import com.trolltech.qt.core.Qt.Orientation;\r
+import com.trolltech.qt.gui.QAction;\r
+import com.trolltech.qt.gui.QContextMenuEvent;\r
+import com.trolltech.qt.gui.QHeaderView;\r
+import com.trolltech.qt.gui.QMenu;\r
+import com.trolltech.qt.gui.QWidget;\r
+\r
+import cx.fbn.nevernote.Global;\r
+\r
+public class TableViewHeader extends QHeaderView {\r
+ public QMenu contextMenu;\r
+ public QAction createdDateAction;\r
+ public QAction changedDateAction;\r
+ public QAction subjectDateAction;\r
+ public QAction tagsAction;\r
+ public QAction notebookAction;\r
+ public QAction synchronizedAction;\r
+ public QAction authorAction;\r
+ public QAction urlAction;\r
+ \r
+\r
+ public TableViewHeader(Orientation orientation, QWidget parent) {\r
+ super(orientation, parent);\r
+ \r
+ contextMenu = new QMenu();\r
+\r
+ createdDateAction = new QAction(this);\r
+ createdDateAction.setText(tr("Date Created"));\r
+ createdDateAction.setCheckable(true);\r
+ createdDateAction.setChecked(Global.isColumnVisible("dateCreated"));\r
+ contextMenu.addAction(createdDateAction);\r
+ \r
+ changedDateAction = new QAction(this);\r
+ changedDateAction.setText(tr("Date Changed"));\r
+ changedDateAction.setCheckable(true);\r
+ changedDateAction.setChecked(Global.isColumnVisible("dateChanged"));\r
+ contextMenu.addAction(changedDateAction);\r
+ \r
+ subjectDateAction = new QAction(this);\r
+ subjectDateAction.setText(tr("Subject Date"));\r
+ subjectDateAction.setCheckable(true);\r
+ subjectDateAction.setChecked(Global.isColumnVisible("dateSubject"));\r
+ contextMenu.addAction(subjectDateAction);\r
+ \r
+ tagsAction = new QAction(this);\r
+ tagsAction.setText(tr("Tags"));\r
+ tagsAction.setCheckable(true);\r
+ tagsAction.setChecked(Global.isColumnVisible("tags"));\r
+ contextMenu.addAction(tagsAction);\r
+ \r
+ notebookAction = new QAction(this);\r
+ notebookAction.setText(tr("Notebook"));\r
+ notebookAction.setCheckable(true);\r
+ notebookAction.setChecked(Global.isColumnVisible("notebook"));\r
+ contextMenu.addAction(notebookAction);\r
+ \r
+ synchronizedAction = new QAction(this);\r
+ synchronizedAction.setText(tr("Synchronized"));\r
+ synchronizedAction.setCheckable(true);\r
+ synchronizedAction.setChecked(Global.isColumnVisible("synchronized"));\r
+ contextMenu.addAction(synchronizedAction);\r
+ \r
+ authorAction = new QAction(this);\r
+ authorAction.setText(tr("Author"));\r
+ authorAction.setCheckable(true);\r
+ authorAction.setChecked(Global.isColumnVisible("author"));\r
+ contextMenu.addAction(authorAction);\r
+ \r
+ urlAction = new QAction(this);\r
+ urlAction.setText(tr("Source URL"));\r
+ urlAction.setCheckable(true);\r
+ urlAction.setChecked(Global.isColumnVisible("sourceUrl"));\r
+ contextMenu.addAction(urlAction);\r
+ \r
+ }\r
+ \r
+ @Override\r
+ public void contextMenuEvent(QContextMenuEvent event) {\r
+ contextMenu.exec(event.globalPos());\r
+ }\r
+}\r