Icons

App Icon Redesign
The Big App Icon Redesign
The Big GNOME Icon Revamp – Are You a Fan?

How to get SVG thumbnails in Windows Explorer?
SVG Viewer Extension for Windows Explorer v0.1.1

FAMFAMFAM SILK ICONS
Category:Gartoon icons
GNOME Desktop icons
Tango icons
Category:Tango project/apps
Category:Software icons by theme
Category:GNOME Desktop icons
Category:GNOME Desktop icons, apps
Category:Antu icons
Category:KDE icons
Category:Crystal Project Actions Icons
Category:Human SVG apps
Category:Oxygen icons apps
Category:Oxygen icons actions
Category:Crystal Clear app icons
Category:Crystal 128 apps
Category:Crystal Project App Icons

Inkscape icons
gnome-icon-theme-yasis – YASIS (Yet Another Scalable Icon Set)

vpopmail Aliasing with valias

$ cd /usr/local/vpopmail/bin¨

$ ./valias -s domain.com
info@domain.com -> alice@xyz.org
info@domain.com -> bob@xyz.org

$ ./valias -i carol@xyz.org info@domain.com

$ ./valias -s domain.com
info@domain.com -> alice@xyz.org
info@domain.com -> bob@xyz.org
info@domain.com -> carol@xyz.org

$ ./valias -d info@domain.com

$ ./valias -i alice@xyz.org info@domain.com
$ ./valias -i carol@xyz.org info@domain.com

$ ./valias -s domain.com
info@domain.com -> alice@xyz.org
info@domain.com -> carol@xyz.org

Sublime Editor

12 Most-Wanted Sublime Text Tips and Tricks

Column Selection

Column Selection

Windows
Right Mouse Button + Shift
OR: Middle Mouse Button

Add to selection: Ctrl
Subtract from selection: Alt

Linux
Right Mouse Button + Shift

Add to selection: Ctrl
Subtract from selection: Alt

Whitespace

How to show whitespace in Sublime Text

{
    "draw_white_space": "all",
    "translate_tabs_to_spaces": true
}

Find all / Replace all

Find/Replace panel in Sublime Text disappears after Replace All
“replace all” closes the replace-bar
Don’t hide find/replace panels
How to keep the replace box remain after a replace all

Original:
	{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
		 "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
	},
	{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
		"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
	},
	{ "keys": ["ctrl+alt+enter"], "command": "replace_all", "args": {"close_panel": true},
		 "context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
	},

Modified:
	{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": false},
		 "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
	},
	{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": false},
		"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
	},
	{ "keys": ["ctrl+alt+enter"], "command": "replace_all", "args": {"close_panel": false},
		 "context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
	},

Regex

Search and Replace – Regular Expressions

Capture Group

Regular expressions and Sublime Text
Regular expression search replace in Sublime Text 2
Capturing Groups and Backreferences

CLion with MSYS2 and Qt

MinGW-w64

How to run CLion with msys2 on windows

$ pacman -S mingw-w64-x86_64-toolchain

( 1/43) installing mingw-w64-x86_64-libiconv
( 2/43) installing mingw-w64-x86_64-gmp
( 3/43) installing mingw-w64-x86_64-mpfr
( 4/43) installing mingw-w64-x86_64-mpc
( 5/43) installing mingw-w64-x86_64-libwinpthread-git
( 6/43) installing mingw-w64-x86_64-gcc-libs
( 7/43) installing mingw-w64-x86_64-bzip2
( 8/43) installing mingw-w64-x86_64-zlib
( 9/43) installing mingw-w64-x86_64-binutils
(10/43) installing mingw-w64-x86_64-headers-git
(11/43) installing mingw-w64-x86_64-crt-git
(12/43) installing mingw-w64-x86_64-isl
(13/43) installing mingw-w64-x86_64-windows-default-manifest
(14/43) installing mingw-w64-x86_64-winpthreads-git
(15/43) installing mingw-w64-x86_64-gcc
(16/43) installing mingw-w64-x86_64-gcc-ada
(17/43) installing mingw-w64-x86_64-gcc-libgfortran
(18/43) installing mingw-w64-x86_64-gcc-fortran
(19/43) installing mingw-w64-x86_64-gcc-objc
(20/43) installing mingw-w64-x86_64-expat
(21/43) installing mingw-w64-x86_64-libffi
(22/43) installing mingw-w64-x86_64-mpdecimal
(23/43) installing mingw-w64-x86_64-gettext
(24/43) installing mingw-w64-x86_64-libtre-git
(25/43) installing mingw-w64-x86_64-libsystre
(26/43) installing mingw-w64-x86_64-ncurses
(27/43) installing mingw-w64-x86_64-libtasn1
(28/43) installing mingw-w64-x86_64-p11-kit
(29/43) installing mingw-w64-x86_64-ca-certificates
(30/43) installing mingw-w64-x86_64-openssl
(31/43) installing mingw-w64-x86_64-tcl
(32/43) installing mingw-w64-x86_64-tk
(33/43) installing mingw-w64-x86_64-xz
(34/43) installing mingw-w64-x86_64-termcap
(35/43) installing mingw-w64-x86_64-readline
(36/43) installing mingw-w64-x86_64-sqlite3
(37/43) installing mingw-w64-x86_64-python3
(38/43) installing mingw-w64-x86_64-gdb
(39/43) installing mingw-w64-x86_64-libmangle-git
(40/43) installing mingw-w64-x86_64-make
(41/43) installing mingw-w64-x86_64-pkg-config
(42/43) installing mingw-w64-x86_64-tools-git
(43/43) installing mingw-w64-x86_64-winstorecompat-git
C:\Qt\Tools\mingw730_64

"C:\Program Files\JetBrains\CLion 2019.1.2\bin\cmake\win\bin\cmake.exe" -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:\Users\andreas\CLionProjects\abc
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: C:/Qt/Tools/mingw730_64/bin/gcc.exe
-- Check for working C compiler: C:/Qt/Tools/mingw730_64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Qt/Tools/mingw730_64/bin/g++.exe
-- Check for working CXX compiler: C:/Qt/Tools/mingw730_64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/andreas/CLionProjects/abc/cmake-build-debug
[Finished]

CLion Qt Support

CLion answers frequently asked questions
Support Makefile projects
Support Qt Projects
Support Autotools-based projects

CMake and Qt

Linking Qt on CLion
CMake Manual
How to use Qt in CLion
github.com/pbek/QOwnNotes/src/CMakeLists.txt
Lion + Qt

CMAKE_PREFIX_PATH

using CLion with QT

set(CMAKE_PREFIX_PATH C:/Qt/5.12.3/mingw73_64)

Verbose

Show full build output in CLion

set(CMAKE_VERBOSE_MAKEFILE ON)

DLL not found

Undefined Qt5 references in C++ using CMake (mingw) in Windows with CLion

Qt Widgets

Qt5 tutorial
Advanced Services – Qt
Advanced Services – Basic Qt

YouTube

Qt Tutorials For Beginners

Signals, Slots, Threads

How Qt Signals and Slots Work
How Qt Signals and Slots Work – Part 2 – Qt5 New Syntax
How Qt Signals and Slots Work – Part 3 – Queued and Inter Thread Connections
QMetaType knows your types
QThread: You were not doing so wrong.
Introduction to Lock-free Programming with C++ and Qt
Internals of QMutex in Qt 5
QWaitCondition: Solving the Unavoidable Race

Data initialization in C++
Can Qt’s moc be replaced by C++ reflection?
Verdigris: Qt without moc

QString

Ignore unused args in QString::arg

QMainWindow

Auto resizing qt application. (main window)
Qt: Set size of QMainWindow
How to add a custom widget to the main window in Qt Creator

QToolBar

Menus and toolbars in Qt5
QToolBar position (How to make it stay at a fixed position)
Add a QLineEdit to a qtoolbar in qtcreator (designer)

Icons

Setting the Application Icon
Create ico files (Windows Icons) – GIMP 2.8 Tutorial
How to set application icon in a Qt-based project?
QIcon::fromTheme uses GTK+’s icon cache in Qt 5.7
Yet another new set of Qt icons

Convert PNG to ICNS on Mac OS
How to manually create icns files using iconutil?
Application Icon not shown in Mac OS X Dock
cmake: set icon for a Mac OS X app
Setting the application icon for OSX in Qt Creator

Layout

Spacing and Margin

Qt Tutorial: Unit 7, Margin and Spacing
Adjust Spacing and Margins between Widgets in Layout
Set fixed margin/spacing/padding between Widgets/Layouts

Stylesheet

Customizing Qt Widgets Using Style Sheets

Button

Difference between QPushButton and QToolButton

Splitter

Customize QSplitter handle color
QSplitter – change the color of the grabbable area to make it more visible

Qt QTableView / QAbstractTableModel / QTextTable

Qt Widgets
Model/View Tutorial
Model/View Programming
Presenting SQL Data in a Table View

Example

Star Delegate Example
Spin Box Delegate Example

Documentation / Class

QTabWidget Class
QTextTable Class
QHeaderView Class (
QAbstractTableModel Class
QAbstractItemModel Class
enum Qt::ItemDataRole

Handling Selections in Item Views

when i use “QScreen *screen = QGuiApplication::primaryScreen()” ,i get nullpt

Merge cells

QTreeView merge some cells
How to merge two cells of a qtable row?

Column/Row resize

Columns auto-resize to size of QTableView

How to update QTableView on QAbstractTableModel Change
ModelView with QTableView and QItemDelegate
Using QTableView with a model
Creating QTextTable And Inserting Data
QtextTable draw your own boarders
How to change row height in QTextTable
How to disable selection highlighting in a QTableWidget
How to set row height of QTableView?
Disable selecting row or column by clicking the header in QTableWidget

Focus Rectangle / Border Selection

Hide the border of the selected cell in qtablewidget in pyqt? (WORKS!)
How to disable selection highlighting in a QTableWidget
how to change style on a selected row
QTableWidget. Disable selection completely.

Row Height / Column Width

How to set row height of QTableView?
QTableView column width

Hide Vertical Header

How to remove the vertical header in QStandardItemModel?

Hide Column

Qt hide column in QTableView

Add QWidget or custom Painting in TableView

Adding button to QTableview
Star Delegate Example
Designing Delegates

Alignment

Centering the text of a vertical header in a QTableView?

Header

How to change the header background color of a QTableView
How to change QTableWidget header color and selection color ?
QTableView/QTableWidget grid stylesheet – grid line width

Update Model

The model emits signals to indicate changes. For example, dataChanged() is emitted whenever items of data made available by the model are changed. Changes to the headers supplied by the model cause headerDataChanged() to be emitted. If the structure of the underlying data changes, the model can emit layoutChanged() to indicate to any attached views that they should redisplay any items shown, taking the new structure into account.

How to modify the data in the model and update the view when new data is received from external?
How to update a QStringListModel
New in Qt 5.11: improvements to the model/view APIs (part 1)
How to set non-selectable default text on QComboBox?
QComboBox – Select no entry
ComboBox model change does not update graphical appearance every time
The ModelView Architecture

Source

#0  PatientModel::setData () at ../DatabaseSelect/src/business/PatientModel.cpp:188
#1  QAbstractItemModel::setItemData () at itemmodels/qabstractitemmodel.cpp:1912
#2  QComboBox::insertItem () at widgets/qcombobox.cpp:2315
#3  QComboBox::insertItem () at ../../../Qt/5.12.5/gcc_64/include/QtWidgets/qcombobox.h:279
#4  QComboBox::addItem () at ../../../Qt/5.12.5/gcc_64/include/QtWidgets/qcombobox.h:272
#5  PatientListenerComboBox::patientAdded () at ../DatabaseSelect/src/presentation/PatientListenerComboBox.cpp:18
#6  Root::addPatient () at ../DatabaseSelect/src/business/Root.cpp:15
#7  MainWindow::onPatientButtonAddClicked () at ../DatabaseSelect/src/presentation/MainWindow.cpp:164
#8  MainWindow::qt_static_metacall ()::InvokeMetaMethod, _id=3, _a=0x7fffffffd590) at moc_MainWindow.cpp:106
#9  QMetaObject::activate ()
#10 QMetaObject::activate ()::staticMetaObject>,
#11 QAbstractButton::clicked () at .moc/moc_qabstractbutton.cpp:312
#12 QAbstractButtonPrivate::emitClicked () at widgets/qabstractbutton.cpp:414
#13 QAbstractButtonPrivate::click () at widgets/qabstractbutton.cpp:407
#14 QAbstractButton::mouseReleaseEvent () at widgets/qabstractbutton.cpp:1011
#15 QToolButton::mouseReleaseEvent () at widgets/qtoolbutton.cpp:622
#16 QWidget::event () at kernel/qwidget.cpp:9327
#17 QAbstractButton::event () at widgets/qabstractbutton.cpp:968
#18 QToolButton::event () at widgets/qtoolbutton.cpp:1001
#19 QApplicationPrivate::notify_helper () at kernel/qapplication.cpp:3700
#21 QCoreApplication::notifyInternal2 () at kernel/qcoreapplication.cpp:1088
#22 QCoreApplication::sendSpontaneousEvent () at kernel/qcoreapplication.cpp:1488
#23 QApplicationPrivate::sendMouseEvent ()
#24 QWidgetWindow::handleMouseEvent () at kernel/qwidgetwindow.cpp:663
#25 QWidgetWindow::event () at kernel/qwidgetwindow.cpp:281
#26 QApplicationPrivate::notify_helper () at kernel/qapplication.cpp:3700
#27 QApplication::notify () at kernel/qapplication.cpp:3446
#28 QCoreApplication::notifyInternal2 () at kernel/qcoreapplication.cpp:1088
#29 QCoreApplication::sendSpontaneousEvent () at kernel/qcoreapplication.cpp:1488
#30 QGuiApplicationPrivate::processMouseEvent () at kernel/qguiapplication.cpp:2107
#31 QGuiApplicationPrivate::processWindowSystemEvent () at kernel/qguiapplication.cpp:1842.
#32 QWindowSystemInterface::sendWindowSystemEvents () at kernel/qwindowsysteminterface.cpp:1151
#33 xcbSourceDispatch () at qxcbeventdispatcher.cpp:105
#34 g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 QEventDispatcherGlib::processEvents () at kernel/qeventdispatcher_glib.cpp:422
#38 QEventLoop::exec () at kernel/qeventloop.cpp:225
#39 QCoreApplication::exec () at kernel/qcoreapplication.cpp:1389
#40 main () at ../DatabaseSelect/src/main.cpp:55

Model

Qt/5.12.3/Src/qtbase/src/corelib/itemmodels/qabstractitemmodel.h

Qt/5.12.3/Src/qtbase/src/gui/itemmodels/qstandarditemmodel.h

class QStandardItemPrivate
{
    [...]

    QStandardItemModel *model;
    QStandardItem *parent;
    QVector<QStandardItemData> values;
    QVector<QStandardItem*> children;
    int rows;
    int columns;

    QStandardItem *q_ptr;

    [...]
};

void
QStandardItemModel::setItem(int row,
                            int column,
                            QStandardItem *item)
{
    Q_D(QStandardItemModel);
    d->root->d_func()->setChild(row, column, item, true);
}

void
QStandardItemPrivate::setChild(int row,
                               int column,
                               QStandardItem *item,
                               bool emitChanged)
{
    [...]
}

QVariant
QStandardItemModel::data(const QModelIndex &index,
                         int role) const
{
    Q_D(const QStandardItemModel);
    QStandardItem *item = d->itemFromIndex(index);
    return item ? item->data(role) : QVariant();
}

QVariant
QStandardItem::data(int role) const
{
    Q_D(const QStandardItem);
    role = (role == Qt::EditRole) ? Qt::DisplayRole : role;
    QVector<QStandardItemData>::const_iterator it;
    for (it = d->values.begin(); it != d->values.end(); ++it) {
        if ((*it).role == role)
            return (*it).value;
    }
    return QVariant();
}

void
QStandardItem::setRowCount(int rows)
{
    int rc = rowCount();
    if (rc == rows)
        return;
    if (rc < rows)
        insertRows(qMax(rc, 0), rows - rc);
    else
        removeRows(qMax(rows, 0), rc - rows);
}

void
QStandardItem::insertRows(int row,
                          const QList<QStandardItem*> &items)
{
    Q_D(QStandardItem);
    if (row < 0)
        return;
    d->insertRows(row, items);
}

bool
QStandardItemPrivate::insertRows(int row,
                                 int count,
                                 const QList<QStandardItem*> &items)
{
    [...]

    if (model)
        model->d_func()->rowsAboutToBeInserted(q, row, row + count - 1);

    [...]

    if (model)
        model->d_func()->rowsInserted(q, row, count);

    return true;
}

View

Qt/5.12.3/Src/qtbase/src/widgets/widgets/qcombobox.h

Qt/5.12.5/Src/qtbase/src/widgets/itemviews/qabstractitemview.h

/*!
    This slot is called when items with the given \a roles are changed in the
    model. The changed items are those from \a topLeft to \a bottomRight
    inclusive. If just one item is changed \a topLeft == \a bottomRight.

    The \a roles which have been changed can either be an empty container (meaning everything
    has changed), or a non-empty container with the subset of roles which have changed.
*/
void QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
    [...]
}

Qt/5.12.5/Src/qtbase/src/widgets/itemviews/qtreeview.h

/*!
  \reimp
*/
void QTreeView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
    [...]
    QAbstractItemView::dataChanged(topLeft, bottomRight, roles);
}